entities)) return null; foreach ($messaggio->entities as $entity) { if ($entity->type == "bot_command") { if ($NoOffset == true and $entity->offset != 0) return null; //~ if (DEBUG) botlog("[II] Comando: ".$entity->offset. " ".$messaggio->text); //return substr($messaggio->text, $entity->offset, $entity->length); $ret['command'] = substr($messaggio->text, $entity->offset, $entity->length); $ret['options'] = substr($messaggio->text, $entity->length+$entity->offset+1); info("Command: $ret[command]"); return $ret; } } return null; } /**** Telegram query functions ****/ // return a message object, null if is error function sendMessage($chat_id, $text, $parse_mode = null, $disable_web_preview = false, $disable_notification = false, $reply_to_message_id = null, $reply_markup = null) { $query = API_URL.API_TOKEN."/sendMessage?chat_id=".$chat_id. "&text=".urlencode($text); if ($parse_mode != null) $query .= "&parse_mode=$parse_mode"; if ($reply_markup != null) $query .= "&reply_markup=$reply_markup"; if ($disable_web_preview != false) $query .= "&disable_web_preview=$disable_web_preview"; if ($disable_notification != false) $query .= "&disable_notification=$disable_notification"; if ($reply_to_message_id != null) $query .= "&reply_to_message_id=$reply_to_message_id"; if ($reply_markup != null) $query .= "&reply_markup=$reply_markup"; $answer = file_get_contents($query); if ($answer === false) warning("Something is wrong in sendMessage - chat_id: $chat_id - text: $text"); return $answer; } // function forwardMessage($chat_id, $from_chat_id, $message_id, $disable_notification = false) { $query = API_URL . API_TOKEN . "/forwardMessage?" . "chat_id=".urlencode($chat_id) . "&from_chat_id=" . urlencode($from_chat_id) . "&message_id=" . urlencode($message_id); if ($disable_notification != null) $query .= "&disable_notification=$disable_notification"; $answer = file_get_contents($query); if ($answer === false) warning("Something is wrong in forwardMessage - chat_id: $chat_id - message_id: $message_id"); return $answer; } // omitted "inline parameters", for inline bot funtions (not used here) function editMessageText($chat_id, $message_id, $text, $parse_mode = null, $disable_web_page_preview = false, $reply_markup = null) { $query = API_URL . API_TOKEN . "/editMessageText?" . "chat_id=".urlencode($chat_id) . "&message_id=" . urlencode($message_id). "&text=" . urlencode($text); if ($disable_web_page_preview != null) $query .= "&disable_web_page_preview=$disable_web_page_preview"; if ($reply_markup != null) $query .= "&reply_markup=$reply_markup"; $answer = file_get_contents($query); if ($answer === false) warning("Something is wrong in editMessageText - chat_id: $chat_id - message_id: $message_id"); return $answer; } // function deleteMessage($chat_id, $message_id) { $query = API_URL . API_TOKEN . "/deleteMessage?" . "chat_id=".urlencode($chat_id) . "&message_id=" . urlencode($message_id); $answer = file_get_contents($query); if ($answer === false) warning("Something is wrong in deleteMessage - chat_id: $chat_id - message_id: $message_id"); return $answer; } function sendPhoto ($chat_id, $photo, $caption = null, $reply_markup = null, $disable_notification = false, $reply_to_message_id = null ) { $query = API_URL . API_TOKEN . "/sendPhoto?" . "chat_id=".urlencode($chat_id) . "&photo=" . urlencode($photo); $query .= "&disable_notification=$disable_notification"; if ($reply_to_message_id != null) $query .= "&reply_to_message_id=$disable_web_page_preview"; if ($reply_markup != null) $query .= "&reply_markup=$reply_markup"; if ($caption != null) $query .= "&caption=$caption"; $answer = file_get_contents($query); } // Makes the calendar inline keyboard function getCalendarTab ($month, $year) { $container = array(); $riga = array(); $days = array("L", "M", "M", "G", "V", "S", "D"); for ($i = 0; $i < 7; $i++) { $element = array( "text" => "$days[$i]", "callback_data" => "null" ); $riga[] = $element; } $container[] = $riga; $riga = array(); $daysInMonth = cal_days_in_month (CAL_GREGORIAN , $month , $year); $date = $year."-".$month; $isCurrentMonth = date('nY') == $month.$year; $startingDay = $isCurrentMonth ? date('j') : 1; if (DEBUG) botlog("[II] First day: ".$date.'-'.$startingDay."\n"); $firstDay = date("N", strtotime($date.'-'.$startingDay)); // blank buttons for ($i = 1; $i < $firstDay; $i++) { $element = array( "text" => " ", "callback_data" => "null" ); $riga[] = $element; } for ($numDay = $startingDay; $numDay <= $daysInMonth; $numDay++, $i++) { //if ($today <= $numDay) { $element = array( "text" => "$numDay", "callback_data" => "$numDay" ); //} //else { /* $element = array( "text" => " ", "callback_data" => "null" );*/ //} $riga[] = $element; if ($i >= 7) { $container[] = $riga; $riga = array(); $i = 0; } } // empty buttons for (; $i > 1 and $i <= 7; $i++) { $element = array( "text" => " ", "callback_data" => "null" ); $riga[] = $element; } if (!empty($riga)) { $container[] = $riga; } $container[] = array( $isCurrentMonth ? array( "text" => " ", "callback_data" => "null" ) : array( "text" => "<", "callback_data" => "<" ), array( "text" => "$EMOJI_X Annulla", "callback_data" => MSG_ABORT ), array( "text" => ">", "callback_data" => ">" )); return $container; } function not_authorized($chatID) { $query = API_URL . API_TOKEN . '/sendMessage?' . 'chat_id=' . urlencode($chatID) . "&text=".urlencode("Utente non autorizzato\nhttps://www.youtube.com/watch?v=HO8ctP_QNZc"); file_get_contents($query); die(); } function wrong_action($chatID) { $query = API_URL . API_TOKEN . '/sendMessage?' . 'chat_id=' . urlencode($chatID) . "&text=Azione non corretta"; file_get_contents($query); die(); } ?>