LeAlternativeBot-Telegram/mybot.php

204 lines
11 KiB
PHP
Raw Normal View History

2021-02-17 16:03:03 +01:00
<?php
include("Telegram.php");
// Set the bot TOKEN
$bot_id = "BOT_TOKEN_DA_INSERIRE";
// Instances the class
$telegram = new Telegram($bot_id);
date_default_timezone_set("Europe/Rome");
$data = $telegram->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 <b>LeAlternative</b> è semplicissimo. Taggalo in qualunque chat, ad esempio @LeAlternativeBot <i>testoricerca</i>', 'parse_mode' => 'HTML'], ['type' => 'article', 'id' => '2', 'title' => 'Manda in chat i modi per seguire LeAlternative', 'message_text' => "<b>LeAlternative</b> è 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 <b>LeAlternative</b>: https://www.lealternative.net/\n📣 <b>Canale</b>: @LeAlternative\n💬 <b>Gruppo</b>: @LeAlternativeGruppoufficiale\n\nProva il nostro <b>bot</b>, scrivi @LeAlternativeBot <i>testodiricerca</i>",'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' => "
<b>Ciao,</b>\nquesto bot funziona in maniera differente! Prova a taggarlo all'interno di <b>qualunque chat di Telegram</b>. Ti basterà scrivere @LeAlternativeBot <i>testodiricerca</i> e vedrai apparire magicamente i risultati!\n\n📣 <b>Canale</b>: @LeAlternative\n💬 <b>Gruppo</b>: @LeAlternativeGruppoufficiale\n🤖 Codice sorgente di questo bot: <a href=\"https://www.lealternative.net\">Gitea.it</a>
",
'reply_markup' =>json_encode([
'inline_keyboard'=>[
[
['text'=>'Provami','switch_inline_query' => 'Alternative a '],
]
]]),
'parse_mode' => 'HTML',
'disable_web_page_preview' => true
);
$telegram->sendMessage($content);
}
?>