diff --git a/main.php b/main.php
index 0421474..b11ad7b 100644
--- a/main.php
+++ b/main.php
@@ -100,89 +100,39 @@ if (isset ($row->callback_query)) {
case STATE_IDLE:
switch ($callback_data){
case MSG_DELETE:
+
+ // remove current message
$sql = new mysqli('localhost', MYSQL_USER, MYSQL_PASSWORD, MYSQL_DB);
$IDdelete = $mc->get($chatID.MC_DELETE_SCHEDULED_ID) or error("No ID to delete");
$sql->query("DELETE FROM ".MYSQL_TABLE." WHERE ID=$IDdelete")
or error("Can't make the query, SQL error ".$sql->error);
- $numbers = $sql->query("SELECT COUNT(*) FROM ".MYSQL_TABLE);
- $numbers = $numbers->fetch_array()[0];
- info("Number of pages: $numbers");
+ $sql->close();
+
$offset = $mc->get($chatID.MC_LIST_NUMBER);
- if ($numbers == 0) {
- editMessageText($chatID, $inlineID, "Non ce n'è più");
- $sql->close();
- die();
- }
- elseif ($offset > 0) {
+ if ($offset > 0) {
$offset--;
}
- //~ die();
break;
case '>':
- $sql = new mysqli('localhost', MYSQL_USER, MYSQL_PASSWORD, MYSQL_DB);
- $numbers = $sql->query("SELECT COUNT(*) FROM ".MYSQL_TABLE);
- $numbers = $numbers->fetch_array()[0];
- info("Number of pages: $numbers");
$offset = $mc->get($chatID.MC_LIST_NUMBER);
- // gestire meglio qui
- $offset++;
+ $offset++; // nobody cares if goes over # of programmed messages
break;
case '<':
- $sql = new mysqli('localhost', MYSQL_USER, MYSQL_PASSWORD, MYSQL_DB);
- $numbers = $sql->query("SELECT COUNT(*) FROM ".MYSQL_TABLE);
- $numbers = $numbers->fetch_array()[0];
- info("Number of pages: $numbers");
$offset = $mc->get($chatID.MC_LIST_NUMBER);
- // gestire meglio qui
- $offset--;
+ if ($offset > 0)
+ $offset--;
break;
default:
if (DEBUG) warning("Callback request is not accepted in status $status");
die();
}
- $query = $sql->query("SELECT DATE_FORMAT(DateTime,'%d/%m/%Y ore %H') as DateTimeFormat,Text,Author,ID FROM ".MYSQL_TABLE."
- ORDER BY DateTime ASC LIMIT 1 OFFSET $offset") or error("Can't make the query, SQL error ".$sql->error);
-
- //while($row = $query->fetch_assoc()) {
- $row = $query->fetch_assoc();
- $mc->set($chatID.MC_DELETE_SCHEDULED_ID, $row['ID'])
- or $mc->replace($chatID.MC_DELETE_SCHEDULED_ID, $row['ID']);
- //~ $query = API_URL . API_TOKEN . '/forwardMessage?' .
- //~ 'chat_id=' . urlencode($chatID) .
- //~ '&from_chat_id=' . urlencode($row['ChatID']) .
- //~ '&message_id=' . urlencode($row['MessageID']);
- //~ $answer = file_get_contents($query);
- //~ $answer = json_decode($answer);
- $sql->close();
+ $archivedMsg = navigateMsgArchive($offset, $mc, $chatID);
-
- $kbd = new InlineKbd;
- $kbd->insertItem($row['DateTimeFormat'], "null");
- $kbd->pushLine();
- if ($offset > 0)
- $kbd->insertItem("<","<");
- else
- $kbd->insertItem(" ","null");
- $kbd->insertItem("$EMOJI_THUMBSDOWN Canc",MSG_DELETE);
- if ($offset < $numbers-1)
- $kbd->insertItem(">",">");
- else
- $kbd->insertItem(" ","null");
- $kbd->pushLine();
-
- $text="$row[Text]\n$row[Author]"; // NOME CANALE ".API_CHANNEL_ID."?";
-
- //~ $query = API_URL.API_TOKEN."/editMessageText?chat_id=".($chatID).
- //~ "&message_id=".$inlineID.
- //~ "&text=".urlencode($text).
- //~ "&parse_mode=".urlencode("Markdown").
- //~ "&reply_markup=".$reply;
- //~ $answer = file_get_contents($query);
- $answer = editMessageText($chatID, $inlineID, $text,
- "HTML", false, $kbd->getKeyboard() );
+ $answer = editMessageText($chatID, $inlineID, $archivedMsg['text'],
+ "HTML", false, $archivedMsg['kbd'] );
$answer = json_decode($answer);
$mc->set($chatID.MC_LIST_NUMBER, $offset)
@@ -218,28 +168,8 @@ if (isset ($row->callback_query)) {
$msg = $mc->get($chatID.MC_FORWARD_MSG)
or error("Can't forward message\n");
-
- //~ $query = API_URL . API_TOKEN . '/sendmessage?' .
- //~ 'chat_id=' . urlencode(API_CHANNEL_ID) .
- //~ '&text='.urlencode($msg->message->text."\n_".$msg->message->chat->username."_").
- //~ "&parse_mode=".urlencode("Markdown"); //bah, un isset un ce lo vedrei male
- //~ $result = file_get_contents($query);
-
- // A new test
forwardMessage(API_CHANNEL_ID, $msg->message->chat->id, $msg->message->message_id, true);
- /*
- if (isset($msg->message->text)) {
- $result = sendMessage(API_CHANNEL_ID,
- $msg->message->text."\n_".$msg->message->chat->username."_",
- "Markdown");
- if(DEBUG) botlog("[LOG] $result\n");
- }
- elseif (isset($msg->message->photo)) {
- sendPhoto(API_CHANNEL_ID,$msg->message->photo[0]->file_id,
- isset($msg->message->caption) ? $msg->message->caption : null);
- }
- */
// Remove kbd
$text = "Invio effettuato correttamente";
editMessageText($chatID, $inlineID, $text);
@@ -256,10 +186,6 @@ if (isset ($row->callback_query)) {
// destroy saved message?
$text = "Invio annullato correttamente";
editMessageText($chatID, $inlineID, $text);
- //~ $url = API_URL.API_TOKEN."/editMessageText?chat_id=".($chatID).
- //~ "&message_id=".$inlineID .
- //~ "&text=".urlencode($text);
- //~ file_get_contents($url);
break;
case MSG_SCHEDULE:
@@ -276,14 +202,8 @@ if (isset ($row->callback_query)) {
$mc->set($chatID.MC_DATE_MSG, $currentTab) or $mc->replace($chatID.MC_DATE_MSG, $currentTab) or die ();
$text="Quando vuoi inviare il messaggio?";
- //~ $url = API_URL.API_TOKEN."/editMessageText?chat_id=".($chatID).
- //~ "&message_id=".$inlineID .
- //~ "&text=".urlencode($text).
- //~ "&reply_markup=".$reply;
editMessageText($chatID, $inlineID, $text, "HTML", false, $reply);
- //~ file_get_contents($url);
-
$mc->set($chatID.MC_INLINE_ID, $inlineID) or $mc->replace($chatID.MC_INLINE_ID, $inlineID)
or error("Something is wrong with memcached");
// == end ==
@@ -529,46 +449,9 @@ elseif (isset($row->message)) {
case '/list':
- $sql = new mysqli('localhost', MYSQL_USER, MYSQL_PASSWORD, MYSQL_DB);
- $numbers = $sql->query("SELECT COUNT(*) FROM ".MYSQL_TABLE);
- $numbers = $numbers->fetch_array()[0];
- if ($numbers == 0) {
- $query = API_URL.API_TOKEN."/sendmessage?chat_id=".($chatID).
- "&text=Nessun messaggio programmato";
- $answer = file_get_contents($query);
- die();
- }
+ $archivedMsg = navigateMsgArchive(0, $mc, $chatID);
- $query = $sql->query("SELECT DATE_FORMAT(DateTime,'%d/%m/%Y ore %H') as DateTimeFormat,ChatID, MessageID,Text,Author,ID FROM ".MYSQL_TABLE."
- ORDER BY DateTime ASC LIMIT 1") or error("Can't make the query, SQL error ".$sql->error);
-
- //while($row = $query->fetch_assoc()) {
- $row = $query->fetch_assoc();
- $mc->set($chatID.MC_DELETE_SCHEDULED_ID, $row['ID'])
- or $mc->replace($chatID.MC_DELETE_SCHEDULED_ID, $row['ID']);;
-
- $sql->close();
-
- $kbd = new InlineKbd;
- $kbd->insertItem($row['DateTimeFormat'], "null");
- $kbd->pushLine();
- $kbd->insertItem(" ","null");
- $kbd->insertItem("$EMOJI_THUMBSDOWN Canc", MSG_DELETE);
- if ($numbers > 1)
- $kbd->insertItem(">", ">");
- else
- $kbd->insertItem("","null");
- $kbd->pushLine();
-
-
- if ($row['Text'] != ''){
- $text="$row[Text]\n$row[Author]"; // NOME CANALE ".API_CHANNEL_ID."?";
- }
- else
- $text="Non testo puro";
-
-
- $answer = sendMessage($chatID, $text, "HTML", false, false, null, $kbd->getKeyboard());
+ $answer = sendMessage($chatID, $archivedMsg['text'], "HTML", false, false, null, $archivedMsg['kbd']);
$answer = json_decode($answer);
// Should forward the message if is not pure text
//forwardMessage($chatID, $row['ChatID'], $row['MessageID']);
diff --git a/shared.php b/shared.php
index 2dd0f1e..c7edf52 100644
--- a/shared.php
+++ b/shared.php
@@ -189,6 +189,62 @@
}
+ // Function used to get an archived message
+ // and make an appropriate keyboard
+
+ // -- I dont' like so much --
+ function navigateMsgArchive ($msgNumber, $mc, $chatID) {
+ $sql = new mysqli('localhost', MYSQL_USER, MYSQL_PASSWORD, MYSQL_DB);
+ $numbers = $sql->query("SELECT COUNT(*) FROM ".MYSQL_TABLE);
+ $numbers = $numbers->fetch_array()[0];
+ if ($numbers == 0) {
+ return array( "text" => "Nessun messaggio programmato",
+ "kbd" => null);
+ $sql->close();
+ //~ $query = API_URL.API_TOKEN."/sendmessage?chat_id=".($chatID).
+ //~ "&text=Nessun messaggio programmato";
+ //~ $answer = file_get_contents($query);
+ //~ die();
+ }
+ else {
+ $query = $sql->query("SELECT DATE_FORMAT(DateTime,'%d/%m/%Y ore %H') as DateTimeFormat,ChatID, MessageID,Text,Author,ID FROM ".MYSQL_TABLE."
+ ORDER BY DateTime ASC LIMIT 1 OFFSET $msgNumber") or error("Can't make the query, SQL error ".$sql->error);
+
+ //while($row = $query->fetch_assoc()) {
+ $row = $query->fetch_assoc();
+
+ $mc->set($chatID.MC_DELETE_SCHEDULED_ID, $row['ID'])
+ or $mc->replace($chatID.MC_DELETE_SCHEDULED_ID, $row['ID']);
+
+ $sql->close();
+
+ $kbd = new InlineKbd;
+ $kbd->insertItem($row['DateTimeFormat'], "null");
+ $kbd->pushLine();
+ if ($msgNumber == 0)
+ $kbd->insertItem(" ","null");
+ else
+ $kbd->insertItem("<","<");
+ $kbd->insertItem("Rimuovi", MSG_DELETE);
+ if ($numbers - $msgNumber > 1)
+ $kbd->insertItem(">", ">");
+ else
+ $kbd->insertItem(" ","null");
+ $kbd->pushLine();
+ $kbd = $kbd->getKeyboard();
+
+
+ if ($row['Text'] != ''){
+ $text="$row[Text]\n$row[Author]"; // NOME CANALE ".API_CHANNEL_ID."?";
+ }
+ else
+ $text="Non testo puro";
+
+ return array( "text" => $text,
+ "kbd" => $kbd);
+ }
+ }
+
function not_authorized($chatID) {
$query = API_URL . API_TOKEN . '/sendMessage?' .
'chat_id=' . urlencode($chatID) .