diff --git a/mybot.php b/mybot.php new file mode 100644 index 0000000..000506f --- /dev/null +++ b/mybot.php @@ -0,0 +1,204 @@ +getData(); +$query = $data['inline_query']['query']; +$user = $data['inline_query']['from']; +$queryid = $data['inline_query']['id']; +$inline_query_id = $telegram->Inline_Query_ID(); +$inline_query_text = $telegram->Inline_Query_Text(); +$msgType = $telegram->getUpdateType(); +$text = $telegram->Text(); +$chat_id = $telegram->ChatID(); + + + +if($msgType == 'inline_query'){ + + if(!empty($inline_query_text)){ + + $results = array( + array( + "type" => "article", + "id" => "1", + "title" => "Alternative a Google Search", + "message_text" => "Come alternativa a Google consigliamo *DuckDuckGo*, *Swisscows* e *Startpage*. Leggi il nostro articolo: [Alternative a Google Search](https://t.me/iv?url=https://www.lealternative.net/2019/10/18/alternative-a-google-search/&rhash=27fd4bba8b34fa\)", + "parse_mode" => "markdown", + "url" => "https://www.lealternative.net/2019/10/18/alternative-a-google-search/", + "thumb_url" => "https://www.lealternative.net/wp-content/uploads/2019/10/alternativeagooglesearch2.jpg.webp", + "description" => "Motori di ricerca alternativi" + ), + array( + "type" => "article", + "id" => "2", + "title" => "Alternative a Google Chrome", + "message_text" => "Come alternativa a Google Chrome su desktop consigliamo *Firefox* e *Brave*. Su Android meglio usare *Bromite*, *Firefox*, *Brave* oppure *DuckDuckGo Browser*. Su iOS potete provare *Firefox*, *DuckDuckGo Browser*, *Brave* e *SnowHaze*. Leggi il nostro articolo: [Alternative a Google Chrome](https://t.me/iv?url=https://www.lealternative.net/2019/10/21/alternative-a-google-chrome/&rhash=27fd4bba8b34fa)", + "parse_mode" => "markdown", + "url" => "https://www.lealternative.net/2019/10/21/alternative-a-google-chrome/", + "thumb_url" => "https://www.lealternative.net/wp-content/uploads/2019/10/alternativeagooglechrome2.jpg.webp", + "description" => "Browser alternativi" + ), + array( + "type" => "article", + "id" => "3", + "title" => "Alternative a YouTube", + "message_text" => "Puoi vedere YouTube privatamente con *NewPipe* su Android. Puoi usare *FreeTube* su desktop e il sito *Invidious* sul web. Prova anche l'alternative decentralizzata a YouTube chiamata *PeerTube*! Leggi il nostro articolo: [Alternative a Youtube](https://t.me/iv?url=https://www.lealternative.net/2019/10/22/alternative-a-youtube/&rhash=27fd4bba8b34fa)", + "parse_mode" => "markdown", + "url" => "https://www.lealternative.net/2019/10/22/alternative-a-youtube/", + "thumb_url" => "https://www.lealternative.net/wp-content/uploads/2019/10/alternativeayoutube2.jpg.webp", + "description" => "YouTube e video sharing" + ), + array( + "type" => "article", + "id" => "4", + "title" => "Alternative a Google Translate", + "message_text" => "Non esiste solo Google Translate. Puoi provare *DeepL*, *LibreTranslate* e *Tatoeba*. Leggi il nostro articolo: [Alternative a Google Traduttore](https://t.me/iv?url=https://www.lealternative.net/2019/10/24/alternative-a-google-traduttore/&rhash=27fd4bba8b34fa)", + "parse_mode" => "markdown", + "url" => "https://www.lealternative.net/2019/10/24/alternative-a-google-traduttore/", + "thumb_url" => "https://www.lealternative.net/wp-content/uploads/2019/10/alternativeagoogletraduttore2.jpg.webp", + "description" => "Traduzioni" + ), + array( + "type" => "article", + "id" => "5", + "title" => "Alternative a Google Maps", + "message_text" => "Prova qualcosa di diverso da Google Maps come *OsmAND*, *Magic Earth* oppure le mappe su *DuckDuckGo*. Per i mezzi pubblici pubblici prova *CityMapper* e *Moovit*. Per la bici? Prova *Naviki*! Leggi il nostro articolo: [Alternative a Google Maps](https://t.me/iv?url=https://www.lealternative.net/2019/10/25/alternative-a-google-maps/&rhash=27fd4bba8b34fa)", + "parse_mode" => "markdown", + "url" => "https://www.lealternative.net/2019/10/25/alternative-a-google-maps/", + "thumb_url" => "https://www.lealternative.net/wp-content/uploads/2019/10/alternativeagooglemaps2.jpg.webp", + "description" => "Mappe e viaggi" + ), + array( + "type" => "article", + "id" => "6", + "title" => "Alternative a Gmail", + "message_text" => "Esistono email sicure e private come ad esempio *ProtonMail*, *Tutanota* oppure *Posteo*. Leggi il nostro articolo: [Alternative a Gmail](https://t.me/iv?url=https://www.lealternative.net/2019/10/28/alternative-a-gmail/&rhash=27fd4bba8b34fa)", + "parse_mode" => "markdown", + "url" => "https://www.lealternative.net/2019/10/28/alternative-a-gmail/", + "thumb_url" => "https://www.lealternative.net/wp-content/uploads/2019/10/alternativeagmail2-1.jpg.webp", + "description" => "Email" + ), + array( + "type" => "article", + "id" => "7", + "title" => "Alternative a Google Drive", + "message_text" => "Esistono tantissime alternative a Google Drive! Queste secondo noi le migliore: *Tresorit*, *Mega*, *Sync*, *Nextcloud*, *kDrive*, *Koofr*. Leggi il nostro articolo: [Alternative a Google Drive](https://t.me/iv?url=https://www.lealternative.net/2019/10/29/alternative-a-google-drive/&rhash=27fd4bba8b34fa)", + "parse_mode" => "markdown", + "url" => "https://www.lealternative.net/2019/10/29/alternative-a-google-drive/", + "thumb_url" => "https://www.lealternative.net/wp-content/uploads/2019/10/alternativeagoogledrive2.jpg.webp", + "description" => "File in cloud" + ), + array( + "type" => "article", + "id" => "8", + "title" => "Alternative a Google Password Manager", + "message_text" => "I password manager sono fondamentali per la sicurezza online. Prova *Bitwarden*, *Keepass* oppure *Firefox Lockwise*. Leggi il nostro articolo: [Alternative a Google Password Manager](https://t.me/iv?url=https://www.lealternative.net/2019/10/31/alternative-a-google-password-manager/&rhash=27fd4bba8b34fa)", + "parse_mode" => "markdown", + "url" => "https://www.lealternative.net/2019/10/31/alternative-a-google-password-manager/", + "thumb_url" => "https://www.lealternative.net/wp-content/uploads/2019/10/alternativeagooglepassword2.jpg.webp", + "description" => "Password al sicuro" + ), + array( + "type" => "article", + "id" => "9", + "title" => "Alternative a Google Authenticator", + "message_text" => "Oltre a una password sicura è fondamentale l'autenticazione a due fattori. Quale applicazione utilizzare per la 2FA? Prova *Aegis* e *andOTP*! Leggi il nostro articolo: [Alternative a Google Authenticator](https://t.me/iv?url=https://www.lealternative.net/2019/11/01/alternative-a-google-authenticator/&rhash=27fd4bba8b34fa)", + "parse_mode" => "markdown", + "url" => "https://www.lealternative.net/2019/11/01/alternative-a-google-authenticator/", + "thumb_url" => "https://www.lealternative.net/wp-content/uploads/2019/11/alternativeagoogleauthenticator2-1.jpg.webp", + "description" => "Autenticazione a due fattori" + ), + array( + "type" => "article", + "id" => "10", + "title" => "Alternative a Google Keep", + "message_text" => "Sono tante le applicazioni per prendere appunti in sicurezza. Prova *Standard Notes*, *Carnet*, *Simplenote* oppure *Joplin*. Leggi il nostro articolo: [Alternative a Google Keep](https://t.me/iv?url=https://www.lealternative.net/2019/11/04/alternative-a-google-keep/&rhash=27fd4bba8b34fa)", + "parse_mode" => "markdown", + "url" => "https://www.lealternative.net/2019/11/04/alternative-a-google-keep/", + "thumb_url" => "https://www.lealternative.net/wp-content/uploads/2019/11/alternativeagooglekeep2.jpg.webp", + "description" => "Prendere appunti e creare note" + ) + ); + + // INIZIO MODIFICHE FRANCESCO + //definiamo un nuovo array vuoto + $resultfiltered = []; + + // Guida veloce array PHP: https://www.selectallfromdual.com/blog/5013/gli-array-in-php + // Ciclo l'array $result e inserisco il valore di ogni elemento in $value + foreach ($results as $value) { + + //verifica se nel title dell'elemento dell'array è contenuto il valore che abbiamo inserito + if (strpos(strtoupper($value["title"]), strtoupper($inline_query_text)) !== false +or +strpos(strtoupper($value["description"]), strtoupper($inline_query_text)) !== false +or +strpos(strtoupper($value["message_text"]), strtoupper($inline_query_text)) !== false +) { + //se la nostra $inline_query_text è contenuta nel title del singolo elemento dell'array, allora inseriamo $value nel nostro nuovo array + array_push($resultfiltered, $value); + } + + } + + + //$results = json_encode($results); + $results = json_encode($resultfiltered); + + // così ad occhio dovrebbe funzionare :) + // FINE MODIFICHE FRANCESCO + + + + + + + $content = array('inline_query_id' => $inline_query_id, "results" => $results); + $telegram->answerInlineQuery($content); + } + +} + +if ($query != null && $query != '' || $query == '') +{ + + { + switch ($query) + { + case '': + $results = json_encode([['type' => 'article', 'id' => '1', 'title' => 'Istruzioni per usare il bot', 'message_text' => 'Usare il bot LeAlternative è semplicissimo. Taggalo in qualunque chat, ad esempio @LeAlternativeBot testoricerca', 'parse_mode' => 'HTML'], ['type' => 'article', 'id' => '2', 'title' => 'Manda in chat i modi per seguire LeAlternative', 'message_text' => "LeAlternative è un progetto ambizioso che vuole aiutare chiunque a trovare alternative etiche. È adatto a chiunque, non bisogna avere conoscenze tecniche e suggeriamo sempre e solo alternative alla portata di tutti.\n\n🌐 Sito LeAlternative: https://www.lealternative.net/\n📣 Canale: @LeAlternative\n💬 Gruppo: @LeAlternativeGruppoufficiale\n\nProva il nostro bot, scrivi @LeAlternativeBot testodiricerca",'parse_mode' => 'HTML','disable_web_page_preview' => true]]); + $content = ['inline_query_id' => $queryid, 'results' => $results, 'cache_time' => 1, 'is_personal' => 'true', 'next_offset' => '', ]; + $reply = $telegram->answerInlineQuery($content); + break; + } + } +} + + +if ($text == '/start') + { + $content = array( + 'chat_id' => $chat_id, + 'text' => " +Ciao,\nquesto bot funziona in maniera differente! Prova a taggarlo all'interno di qualunque chat di Telegram. Ti basterà scrivere @LeAlternativeBot testodiricerca e vedrai apparire magicamente i risultati!\n\n📣 Canale: @LeAlternative\n💬 Gruppo: @LeAlternativeGruppoufficiale\n🤖 Codice sorgente di questo bot: Gitea.it +", +'reply_markup' =>json_encode([ +'inline_keyboard'=>[ +[ + ['text'=>'Provami','switch_inline_query' => 'Alternative a '], +] + ]]), +'parse_mode' => 'HTML', +'disable_web_page_preview' => true + ); + $telegram->sendMessage($content); + } +?> \ No newline at end of file