Advertisement
Guest User

Untitled

a guest
Dec 29th, 2016
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 5.00 KB | None | 0 0
  1. <?php
  2. // recupero il contenuto inviato da Telegram
  3. $content = file_get_contents("php://input");
  4. // converto il contenuto da JSON ad array PHP
  5. $update = json_decode($content, true);
  6. // se la richiesta è null interrompo lo script
  7. if(!$update)
  8. {
  9.   exit;
  10. }
  11. // assegno alle seguenti variabili il contenuto ricevuto da Telegram
  12. $message = isset($update['message']) ? $update['message'] : "";
  13. $messageId = isset($message['message_id']) ? $message['message_id'] : "";
  14. $chatId = isset($message['chat']['id']) ? $message['chat']['id'] : "";
  15. $firstname = isset($message['from']['first_name']) ? $message['from']['first_name'] : "";
  16. $lastname = isset($message['chat']['last_name']) ? $message['chat']['last_name'] : "";
  17. $username = isset($message['chat']['username']) ? $message['chat']['username'] : "";
  18. $date = isset($message['date']) ? $message['date'] : "";
  19. $text = isset($message['text']) ? $message['text'] : "";
  20. // pulisco il messaggio ricevuto togliendo eventuali spazi prima e dopo il testo
  21. $text = trim($text);
  22. // converto tutti i caratteri alfanumerici del messaggio in minuscolo
  23. $text = strtolower($text);
  24. // mi preparo a restitutire al chiamante la mia risposta che è un oggetto JSON
  25. // imposto l'header della risposta
  26. header("Content-Type: application/json");
  27.  
  28. // echo json_encode(array('chat_id' => $chatId, "text" => "Ho ricevuto firstname [$firstname] e ho ricevuto questi dati:\n".print_r($update, true), "method" => "sendMessage")); exit();
  29.  
  30. $response = '';
  31. //INSERIRE QUI LA LOGICA DEL BOT
  32. if (strpos($text, "!") === 0) {
  33.    
  34.     if(strpos(!$text, "!start") === 0 || $text=="!ciao")
  35.     {
  36.         $response = "Ciao $firstname, benvenuto!";
  37.     }
  38.     elseif($text=="!domanda 1")
  39.     {
  40.         $response = "risposta 1";
  41.     }
  42.     elseif($text=="!domanda 2")
  43.     {
  44.         $response = "risposta 2";
  45.     }
  46.     elseif(trim($text) == "!quote")
  47.     {
  48.         //inserire query php per quote
  49.         //////////////////////////////////////////////////////////////////////////////
  50.        
  51.             $servername = "localhost";
  52.             $username   = "lospaturno";
  53.             $password   = "stocazzo";
  54.             $dbname     = "my_lospaturno";
  55.  
  56.             // Create connection
  57.             $conn = new mysqli($servername, $username, $password, $dbname);
  58.             // Check connection
  59.             if ($conn->connect_error) {
  60.                 die("Connection failed: " . $conn->connect_error);
  61.             }
  62.  
  63.             $sql = "SELECT quote, user FROM quote ORDER BY RAND() LIMIT 1;";
  64.             $result = $conn->query($sql);
  65.            
  66.             while ($row = $result->fetch_assoc()) {
  67.                     $response.= "\"".$row["quote"]."\" (added by ".$row["user"].")";
  68.                 }
  69.             $conn->close();
  70.     }
  71.    
  72.     // se inizia per quote (ma con la condizione precedente è escluso che sia solo quote) 
  73.     elseif (strpos($text, "!quote ") === 0 ) {
  74.         //elabora la chiave di ricerca trimmando e poi splittando dove c'è il primo spazio
  75.         $text=trim("$text");
  76.         list($comando, $search) = split(" ", $text, 2);
  77.            
  78.             $servername = "localhost";
  79.             $username = "lospaturno";
  80.             $password = "stocazzo";
  81.             $dbname   = "my_lospaturno";
  82.  
  83.             // Create connection
  84.             $conn = new mysqli($servername, $username, $password, $dbname);
  85.             // Check connection
  86.             if ($conn->connect_error) {
  87.                 die("Connection failed: " . $conn->connect_error);
  88.             }
  89.  
  90.             $sql = "SELECT quote, user FROM quote WHERE quote LIKE '%$search%' ORDER BY RAND() LIMIT 1 ";
  91.             $result = $conn->query($sql);
  92.            
  93.             if (mysqli_num_rows($result)=== 0) {
  94.                 $response = "Nessuna citazione trovata con quella parola";
  95.             }
  96.             else {
  97.                 while ($row = $result->fetch_assoc()) {
  98.                     $response.= "\"".$row["quote"]."\" (added by ".$row["user"].")";
  99.                 }
  100.             }
  101.             $conn->close();
  102.        
  103.     }
  104.         //////////////////////////////////////////////////////////////////////////////
  105.     //codice per aggiungere i quote
  106.     elseif (strpos($text, "!addquote ") === 0 ) {
  107.         $text=trim("$text");
  108.         list($comando, $frase) = split(" ", $text, 2);
  109.            
  110.         $servername = "localhost";
  111.         $username   = "lospaturno";
  112.         $password   = "stocazzo";
  113.         $dbname     = "my_lospaturno";
  114.         // Create connection
  115.         $conn = new mysqli($servername, $username, $password, $dbname);
  116.         // Check connection
  117.         if ($conn->connect_error) {
  118.             die("Connection failed: " . $conn->connect_error);
  119.         }
  120.        
  121.         $stmt = $conn->prepare("INSERT INTO quote (quote, name) VALUES (?,?)");
  122.         $stmt->bind_param("ss", $frase, $firstname);
  123.         $risultatoquery = $stmt->execute();
  124.         if($risultatoquery == true) {
  125.             $response = "questa me la segno";
  126.         } else {
  127.             $response = "eh? non ho capito";
  128.         }
  129.         $stmt->close();
  130.         $conn->close();
  131.     }
  132.    
  133.    
  134.     else
  135.     {
  136.         $response = "Comando non valido!"; 
  137.     }    
  138.  
  139. }
  140. elseif($text=="chi?") {
  141.     $response = "Stocazzo!";
  142. }
  143.  
  144.  
  145. // la mia risposta è un array JSON composto da chat_id, text, method
  146. // chat_id mi consente di rispondere allo specifico utente che ha scritto al bot
  147. // text è il testo della risposta
  148. $parameters = array('chat_id' => $chatId, "text" => $response);
  149. // method è il metodo per l'invio di un messaggio (cfr. API di Telegram)
  150. $parameters["method"] = "sendMessage";
  151. // converto e stampo l'array JSON sulla response
  152. echo json_encode($parameters);
  153.  
  154. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement