New function for message listing
This commit is contained in:
parent
f626fbe632
commit
d889e59a31
143
main.php
143
main.php
|
@ -100,89 +100,39 @@ if (isset ($row->callback_query)) {
|
||||||
case STATE_IDLE:
|
case STATE_IDLE:
|
||||||
switch ($callback_data){
|
switch ($callback_data){
|
||||||
case MSG_DELETE:
|
case MSG_DELETE:
|
||||||
|
|
||||||
|
// remove current message
|
||||||
$sql = new mysqli('localhost', MYSQL_USER, MYSQL_PASSWORD, MYSQL_DB);
|
$sql = new mysqli('localhost', MYSQL_USER, MYSQL_PASSWORD, MYSQL_DB);
|
||||||
$IDdelete = $mc->get($chatID.MC_DELETE_SCHEDULED_ID) or error("No ID to delete");
|
$IDdelete = $mc->get($chatID.MC_DELETE_SCHEDULED_ID) or error("No ID to delete");
|
||||||
$sql->query("DELETE FROM ".MYSQL_TABLE." WHERE ID=$IDdelete")
|
$sql->query("DELETE FROM ".MYSQL_TABLE." WHERE ID=$IDdelete")
|
||||||
or error("Can't make the query, SQL error ".$sql->error);
|
or error("Can't make the query, SQL error ".$sql->error);
|
||||||
|
|
||||||
$numbers = $sql->query("SELECT COUNT(*) FROM ".MYSQL_TABLE);
|
$sql->close();
|
||||||
$numbers = $numbers->fetch_array()[0];
|
|
||||||
info("Number of pages: $numbers");
|
|
||||||
$offset = $mc->get($chatID.MC_LIST_NUMBER);
|
$offset = $mc->get($chatID.MC_LIST_NUMBER);
|
||||||
|
|
||||||
if ($numbers == 0) {
|
if ($offset > 0) {
|
||||||
editMessageText($chatID, $inlineID, "Non ce n'è più");
|
|
||||||
$sql->close();
|
|
||||||
die();
|
|
||||||
}
|
|
||||||
elseif ($offset > 0) {
|
|
||||||
$offset--;
|
$offset--;
|
||||||
}
|
}
|
||||||
//~ die();
|
|
||||||
break;
|
break;
|
||||||
case '>':
|
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);
|
$offset = $mc->get($chatID.MC_LIST_NUMBER);
|
||||||
// gestire meglio qui
|
$offset++; // nobody cares if goes over # of programmed messages
|
||||||
$offset++;
|
|
||||||
break;
|
break;
|
||||||
case '<':
|
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);
|
$offset = $mc->get($chatID.MC_LIST_NUMBER);
|
||||||
// gestire meglio qui
|
if ($offset > 0)
|
||||||
$offset--;
|
$offset--;
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
if (DEBUG) warning("Callback request is not accepted in status $status");
|
if (DEBUG) warning("Callback request is not accepted in status $status");
|
||||||
die();
|
die();
|
||||||
}
|
}
|
||||||
|
|
||||||
$query = $sql->query("SELECT DATE_FORMAT(DateTime,'%d/%m/%Y ore %H') as DateTimeFormat,Text,Author,ID FROM ".MYSQL_TABLE."
|
$archivedMsg = navigateMsgArchive($offset, $mc, $chatID);
|
||||||
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();
|
|
||||||
|
|
||||||
|
$answer = editMessageText($chatID, $inlineID, $archivedMsg['text'],
|
||||||
$kbd = new InlineKbd;
|
"HTML", false, $archivedMsg['kbd'] );
|
||||||
$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<i>$row[Author]</i>"; // 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 = json_decode($answer);
|
$answer = json_decode($answer);
|
||||||
|
|
||||||
$mc->set($chatID.MC_LIST_NUMBER, $offset)
|
$mc->set($chatID.MC_LIST_NUMBER, $offset)
|
||||||
|
@ -218,28 +168,8 @@ if (isset ($row->callback_query)) {
|
||||||
$msg = $mc->get($chatID.MC_FORWARD_MSG)
|
$msg = $mc->get($chatID.MC_FORWARD_MSG)
|
||||||
or error("Can't forward message\n");
|
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);
|
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
|
// Remove kbd
|
||||||
$text = "Invio effettuato correttamente";
|
$text = "Invio effettuato correttamente";
|
||||||
editMessageText($chatID, $inlineID, $text);
|
editMessageText($chatID, $inlineID, $text);
|
||||||
|
@ -256,10 +186,6 @@ if (isset ($row->callback_query)) {
|
||||||
// destroy saved message?
|
// destroy saved message?
|
||||||
$text = "Invio annullato correttamente";
|
$text = "Invio annullato correttamente";
|
||||||
editMessageText($chatID, $inlineID, $text);
|
editMessageText($chatID, $inlineID, $text);
|
||||||
//~ $url = API_URL.API_TOKEN."/editMessageText?chat_id=".($chatID).
|
|
||||||
//~ "&message_id=".$inlineID .
|
|
||||||
//~ "&text=".urlencode($text);
|
|
||||||
//~ file_get_contents($url);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case MSG_SCHEDULE:
|
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 ();
|
$mc->set($chatID.MC_DATE_MSG, $currentTab) or $mc->replace($chatID.MC_DATE_MSG, $currentTab) or die ();
|
||||||
|
|
||||||
$text="Quando vuoi inviare il messaggio?";
|
$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);
|
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)
|
$mc->set($chatID.MC_INLINE_ID, $inlineID) or $mc->replace($chatID.MC_INLINE_ID, $inlineID)
|
||||||
or error("Something is wrong with memcached");
|
or error("Something is wrong with memcached");
|
||||||
// == end ==
|
// == end ==
|
||||||
|
@ -529,46 +449,9 @@ elseif (isset($row->message)) {
|
||||||
|
|
||||||
case '/list':
|
case '/list':
|
||||||
|
|
||||||
$sql = new mysqli('localhost', MYSQL_USER, MYSQL_PASSWORD, MYSQL_DB);
|
$archivedMsg = navigateMsgArchive(0, $mc, $chatID);
|
||||||
$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();
|
|
||||||
}
|
|
||||||
|
|
||||||
$query = $sql->query("SELECT DATE_FORMAT(DateTime,'%d/%m/%Y ore %H') as DateTimeFormat,ChatID, MessageID,Text,Author,ID FROM ".MYSQL_TABLE."
|
$answer = sendMessage($chatID, $archivedMsg['text'], "HTML", false, false, null, $archivedMsg['kbd']);
|
||||||
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<i>$row[Author]</i>"; // NOME CANALE ".API_CHANNEL_ID."?";
|
|
||||||
}
|
|
||||||
else
|
|
||||||
$text="Non testo puro";
|
|
||||||
|
|
||||||
|
|
||||||
$answer = sendMessage($chatID, $text, "HTML", false, false, null, $kbd->getKeyboard());
|
|
||||||
$answer = json_decode($answer);
|
$answer = json_decode($answer);
|
||||||
// Should forward the message if is not pure text
|
// Should forward the message if is not pure text
|
||||||
//forwardMessage($chatID, $row['ChatID'], $row['MessageID']);
|
//forwardMessage($chatID, $row['ChatID'], $row['MessageID']);
|
||||||
|
|
56
shared.php
56
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<i>$row[Author]</i>"; // NOME CANALE ".API_CHANNEL_ID."?";
|
||||||
|
}
|
||||||
|
else
|
||||||
|
$text="Non testo puro";
|
||||||
|
|
||||||
|
return array( "text" => $text,
|
||||||
|
"kbd" => $kbd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function not_authorized($chatID) {
|
function not_authorized($chatID) {
|
||||||
$query = API_URL . API_TOKEN . '/sendMessage?' .
|
$query = API_URL . API_TOKEN . '/sendMessage?' .
|
||||||
'chat_id=' . urlencode($chatID) .
|
'chat_id=' . urlencode($chatID) .
|
||||||
|
|
Loading…
Reference in New Issue