From 3a7cd8ebdad1a28afdbf68b5b43d33468fea6bdc Mon Sep 17 00:00:00 2001 From: Pierre-Lin Bonnemaison Date: Tue, 22 Sep 2015 20:12:59 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20des=20accus=C3=A9s=20de=20reception?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- controllers/discussions.php | 1 + controllers/internalConsole.php | 23 ++++++++++++++++++++++- createDatabase.sql | 1 + templates/discussions/show.php | 2 +- templates/sendeds/showAll.php | 2 ++ 5 files changed, 27 insertions(+), 2 deletions(-) diff --git a/controllers/discussions.php b/controllers/discussions.php index d1be75c..127b0da 100755 --- a/controllers/discussions.php +++ b/controllers/discussions.php @@ -85,6 +85,7 @@ 'date' => htmlspecialchars($sended['at']), 'text' => htmlspecialchars($sended['content']), 'type' => 'sended', + 'delivered' => ($sended['delivered'] ? true : false), ); } diff --git a/controllers/internalConsole.php b/controllers/internalConsole.php index cd14c54..a0afaf1 100755 --- a/controllers/internalConsole.php +++ b/controllers/internalConsole.php @@ -239,12 +239,33 @@ //On gère les SMS STOP if (trim($text) == 'STOP') { - echo 'STOP SMS detected ' . $number; + echo 'STOP SMS detected ' . $number . "\n"; $this->wlog('STOP SMS detected ' . $number); $db->insertIntoTable('sms_stop', ['number' => $number]); continue; } + //On gère les accusés de reception + if (trim($text) == 'Delivered') + { + echo 'Delivered SMS for ' . $number . "\n"; + $this->wlog('Delivered SMS for ' . $number); + + //On récupère les SMS par encore validé, uniquement sur les dernières 24h + $now = new DateTime(); + $interval = new DateInterval('P1D'); + $sinceDate = $now->sub($interval)->format('Y-m-d H:i:s'); + + if (!$sendeds = $db->getFromTableWhere('sendeds', ['target' => $number, 'delivered' => false, '>at' => $sinceDate], 'at', false, 1)) + { + continue; + } + + $db->updateTableWhere('sendeds', ['delivered' => true], ['id' => $sendeds[0]['id']]); + echo "Sended SMS id " . $sendeds[0]['id'] . " to delivered status\n"; + continue; + } + if (!$number) { $this->wlog('Invalid phone number in file "' . $dir); diff --git a/createDatabase.sql b/createDatabase.sql index aeecfe6..2586787 100755 --- a/createDatabase.sql +++ b/createDatabase.sql @@ -27,6 +27,7 @@ CREATE TABLE IF NOT EXISTS sendeds at DATETIME NOT NULL, target VARCHAR(12) NOT NULL, content VARCHAR(1000) NOT NULL, + delivered BOOLEAN NOT NULL DEFAULT FALSE, PRIMARY KEY (id) ); diff --git a/templates/discussions/show.php b/templates/discussions/show.php index 5222b1d..4ec68ba 100755 --- a/templates/discussions/show.php +++ b/templates/discussions/show.php @@ -86,7 +86,7 @@ '
' + '
' + '
' + message.text + '
' + - '
' + message.date + '
' + + '
' + message.date + (message.delivered ? ' ' : '' ) + '
' + '
' + '
'; break; diff --git a/templates/sendeds/showAll.php b/templates/sendeds/showAll.php index 63fa145..dffd754 100755 --- a/templates/sendeds/showAll.php +++ b/templates/sendeds/showAll.php @@ -42,6 +42,7 @@ Numéro Message Date + Delivré @@ -54,6 +55,7 @@ +