{"message"}->{"text"}); if ($command_list[0] == $command || $command_list[0] == $command . "@" . $bot_name) { return True; } else { return False; } } // Send code back to the sender. function send_code($post_message, $reply=false) { global $decoded; global $bot_api; global $chat_id; $url = 'https://api.telegram.org/bot' . $bot_api . '/sendMessage'; $post_msg = array('chat_id' => $chat_id, 'text' => '```\n ' . $post_message . '```', 'parse_mode' => 'markdown' ); if ($reply != false) { if ($reply === true){ $post_msg['reply_to_message_id'] = $decoded->{'message'}->{'message_id'}; } else { $post_msg['reply_to_message_id'] = $reply; } } $options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($post_msg) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); } // Send text back to the sender. function send_text($post_message, $reply=false) { global $decoded; global $bot_api; global $chat_id; $url = 'https://api.telegram.org/bot' . $bot_api . '/sendMessage'; $post_msg = array('chat_id' => $chat_id, 'text' =>$post_message ); if ($reply != false) { if ($reply === true){ $post_msg['reply_to_message_id'] = $decoded->{'message'}->{'message_id'}; } else { $post_msg['reply_to_message_id'] = $reply; } } $options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($post_msg) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); } // Send html back to the sender. function send_html($post_message, $reply=false) { global $decoded; global $bot_api; global $chat_id; $url = 'https://api.telegram.org/bot' . $bot_api . '/sendMessage'; $post_msg = array('chat_id' => $chat_id, 'text' =>$post_message, 'parse_mode' => 'html'); if ($reply != false) { if ($reply === true){ $post_msg['reply_to_message_id'] = $decoded->{'message'}->{'message_id'}; } else { $post_msg['reply_to_message_id'] = $reply; } } $options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($post_msg) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); } // Send gif back to the sender. function send_gif($gif_url, $reply=false) { global $decoded; global $bot_api; global $chat_id; $url = 'https://api.telegram.org/bot' . $bot_api . '/sendAnimation'; $post_msg = array('chat_id' => $chat_id, 'animation' => $gif_url ); if ($reply != false) { if ($reply === true){ $post_msg['reply_to_message_id'] = $decoded->{'message'}->{'message_id'}; } else { $post_msg['reply_to_message_id'] = $reply; } } $options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($post_msg) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); return $result; } function forward_message($to_chat_id) { global $decoded; global $bot_api; global $chat_id; $message_id = $decoded->{"message"}->{"message_id"}; $url = 'https://api.telegram.org/bot' . $bot_api . '/forwardMessage'; $post_msg = array('chat_id' => $to_chat_id, 'message_id' => $message_id, 'from_chat_id' => $chat_id); $options = array( 'http' => array( 'header' => "Content-type: application/x-www-form-urlencoded\r\n", 'method' => 'POST', 'content' => http_build_query($post_msg) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); } // Generates random words function rand_words($onewordmode) { global $command_list; if($onewordmode == 1){ $num = 1; } else { if (isset($command_list[1])) { $num = $command_list[1]; } else { $num = 10; } } $num++; $words = array(); if (is_integer($num)) { if ($num > 50) { send_text("Too many words.", true); return; } $wordlist = file("/usr/share/dict/words"); for ($word=1; $word < $num; $word++) { $words[] = $wordlist[rand(0,count($wordlist))]; } send_text(implode(' ', $words)); } else { send_text("Ever heard of numbers?", true); } } function rand_question() { $questions = file('rand_questions.txt'); $question = $questions[rand(0,count($questions))]; send_text($question); } function media_wiki($base_url) { global $command_list; $search_query = ""; for ($i=1; $i < count($command_list); $i++) { $search_query .= $command_list[$i]; if ($i < count($command_list) - 1) { $search_query .= " "; } } if (preg_match('/^\s*$/', $search_query)) { send_text('Missing search query'); return; } $url = $base_url . "?action=opensearch&format=json&search=" . urlencode($search_query); $a = json_decode(file_get_contents($url)); $names = $a[1]; $urls = $a[3]; if (count($names) == 0) { send_text("No result found", true); return false; } $text = "Results\n"; for ($i = 0 ; $i < count($names) ; $i++){ $text .= "" . $names[$i] . "\n"; } send_html($text); } function coin() { $random = rand(0,1); if ($random == 1) { send_text('Heads', true); } else { send_text('Tails', true); } } function get_gif($force) { if ($force){ $param = "yes"; } else { $param = "no"; } $url = "https://yesno.wtf/api?force=" . $param; $result = file_get_contents($url); $json = json_decode($result); $image_url = $json->{"image"}; return $image_url; } function yes_or_no() { global $command_list; if (!isset($command_list[1])){ send_text('You know, you also have to ask the question.', true); return false; } $yes_replies = array("Yes", "Yep", "Yeah", "Yus", "Ja", "Ya", "Aye", "Ay", "Oui"); $no_replies = array("No", "Nopes", "Nu", "Nah", "Nein", "Naw", "Nay", "Yesn't"); $random = rand(0,1); $random2 = rand(0, 10); if ($random == 1) { $yes = $yes_replies[array_rand($yes_replies)]; send_text($yes, true); if ($random2 == 5){ send_gif(get_gif(True)); } } else { $no = $no_replies[array_rand($no_replies)]; send_text($no, true); if ($random2 == 33){ send_gif(get_gif(False)); } } } // Kill yourself function kys() { global $decoded; global $bot_name; global $command_list; $kys = file('kys.txt'); $random_kys = $kys[rand(0,count($kys)-1)]; if ($decoded->{'message'}->{'reply_to_message'}->{'from'}->{'username'} == $bot_name){ send_text("I can't be killed.", true); return; } if (isset($decoded->{'message'}->{'reply_to_message'})) { if (isset($decoded->{'message'}->{'reply_to_message'}->{'from'}->{'username'})){ $username = '@' . $decoded->{'message'}->{'reply_to_message'}->{'from'}->{'username'}; $random_kys = preg_replace('/##name##/', $username, $random_kys); } else { $first_name = $decoded->{'message'}->{'reply_to_message'}->{'from'}->{'first_name'}; $random_kys = preg_replace('/##name##/', $first_name, $random_kys); } send_text($random_kys); } elseif (isset($command_list[1])){ $username = $command_list[1]; if ($username == "@quadnite_bot" || $username == "Quadnite" || $username == "quadnite"){ send_text("I can't be killed.", true); } else { $random_kys = preg_replace('/##name##/', $username, $random_kys); send_text($random_kys); } } else { send_text("Do you want to kill yourself?\nIf no, reply to someone with /kys to kill them or run /kys username/name.\nYou can suggest more /kys replies using /feedback", true); } } // Insult function send_insult() { global $decoded; global $bot_name; global $command_list; $insults = file('insults.txt'); $random_insult = $insults[rand(0,count($insults)-1)]; if ($decoded->{'message'}->{'reply_to_message'}->{'from'}->{'username'} == $bot_name){ send_text("Watch who you talk to.", true); return; } if (isset($decoded->{'message'}->{'reply_to_message'})) { if (isset($decoded->{'message'}->{'reply_to_message'}->{'from'}->{'username'})){ $username = '@' . $decoded->{'message'}->{'reply_to_message'}->{'from'}->{'username'}; $random_insult = preg_replace('/##name##/', $username, $random_insult); } else { $first_name = $decoded->{'message'}->{'reply_to_message'}->{'from'}->{'first_name'}; $random_insult = preg_replace('/##name##/', $first_name, $random_insult); } send_text($random_insult); } elseif (isset($command_list[1])){ $username = $command_list[1]; if ($username == "@quadnite_bot" || $username == "Quadnite" || $username == "quadnite"){ send_text("Watch who you talk to.", true); } else { $random_insult = preg_replace('/##name##/', $username, $random_insult); send_text($random_insult); } } else { send_text("Do you want to insult yourself?\nIf no, reply to someone with /insult to insult them or run /insult username/name.\nYou can suggest more /kys replies using /feedback", true); } } function feedback(){ global $command_list; if (isset($command_list[1])){ forward_message(-1001168939936); send_text("Thank you for the feedback"); } else { send_text("To send feedback type in /feedback followed by the feedback", true); } } // Sends back JSON function json() { global $var; $pretty_json = json_encode(json_decode($var), JSON_PRETTY_PRINT); send_text($pretty_json); } // Start Message function start() { send_text('Hi, I am Quadnite. If you are chatting with me in private, you are most likely doing it wrong. Add me to a group for fun. To give feedback, use /feedback'); } function rate() { send_html('Vote for me on Telegram Directory!'); } function help() { send_html('You can either check /commands for a short overview or check the Help Page.'); } function commands() { send_text(file_get_contents('command_list.txt')); } function weebify() { global $decoded; global $command_list; if(count($command_list) <= 1){ send_text("Need text to weebify. Send /weebify text", true); return; } $letters = array( "a" => "卂", "b" => "乃", "c" => "匚", "d" => "刀", "e" => "乇", "f" => "下", "g" => "厶", "h" => "卄", "i" => "工", "j" => "丁", "k" => "长", "l" => "乚", "m" => "从", "n" => "𠘨", "o" => "口", "p" => "尸", "q" => "㔿", "r" => "尺", "s" => "丂", "t" => "丅", "u" => "凵", "v" => "リ", "w" => "山", "x" => "乂", "y" => "丫", "z" => "乙" ); $chars = str_split(preg_replace('/^\/[^ ]+ /', '', strtolower($decoded->{"message"}->{"text"}))); $text = ""; foreach($chars as $char){ if(key_exists($char, $letters)) { $text .= $letters[$char]; } else { $text .= $char; } } send_text($text, true); } function absurdify() { global $decoded; global $command_list; if(count($command_list) <= 1){ send_text("Need text to absurdify. Send /absurdify text", true); return; } $chars = str_split(preg_replace('/^\/[^ ]+ /', '', strtolower($decoded->{"message"}->{"text"}))); $text = ""; foreach($chars as $char){ if (rand(0,1) == 0){ $text .= strtolower($char); } else { $text .= strtoupper($char); } } send_text($text, true); } // Get JSON from post, store it and decode it. $var = file_get_contents('php://input'); $decoded = json_decode($var); // Store the chat ID $chat_id = $decoded->{"message"}->{"chat"}->{"id"}; $modules = array( array( "command" => "/start", "function" => "start();" ), array( "command" => "/word", "function" => "rand_words(1);" ), array( "command" => "/words", "function" => "rand_words(0);" ), array( "command" => "/question", "function" => "rand_question();" ), array( "command" => "/arch_wiki", "function" => "media_wiki('https://wiki.archlinux.org/api.php');" ), array( "command" => "/wiki", "function" => "media_wiki('https://en.wikipedia.org/w/api.php');" ), array( "command" => "/coin", "function" => "coin();" ), array( "command" => "/is", "function" => "yes_or_no();" ), array( "command" => "/are", "function" => "yes_or_no();" ), array( "command" => "/can", "function" => "yes_or_no();" ), array( "command" => "/will", "function" => "yes_or_no();" ), array( "command" => "/shall", "function" => "yes_or_no();" ), array( "command" => "/was", "function" => "yes_or_no();" ), array( "command" => "/does", "function" => "yes_or_no();" ), array( "command" => "/did", "function" => "yes_or_no();" ), array( "command" => "/should", "function" => "yes_or_no();" ), array( "command" => "/do", "function" => "yes_or_no();" ), array( "command" => "/kys", "function" => "kys();" ), array( "command" => "/json", "function" => "json();" ), array( "command" => "/help", "function" => "help();" ), array( "command" => "/insult", "function" => "send_insult();" ), array( "command" => "/feedback", "function" => "feedback();" ), array( "command" => "/rate", "function" => "rate();" ), array( "command" => "/commands", "function" => "commands();" ), array( "command" => "/weebify", "function" => "weebify();" ), array( "command" => "/absurdify", "function" => "absurdify();" ) ); if (!isset($decoded->{"message"}->{"text"})){ exit(); } if (isset($decoded->{"message"}->{"pinned_message"})){ exit(); } $command_list = explode(" ", $decoded->{"message"}->{"text"}); foreach ($modules as $module ) { if (check_command($module["command"])) { eval($module["function"]); exit(); } } ?>