The Bothfather e come creare un BOT che funga da motore di ricerca

Spesso nell’ambito informatico sentiamo parlare di BOT (che non hanno a che fare niente con i buoni ordinari del tesoro) in diverse occasioni e, per lo più, negative per cui molti di noi associano questa parola senza conoscerne il reale significato a qualcosa di fastidioso; in realtà un BOT può essere anche qualcosa di divertente con cui giocherellare un po’.

Iniziamo, quindi, dando al BOT una definizione che si rispetti: BOT è una contrazione della parola robot che tutti noi conosciamo ma, la perdita del suo suffisso “ro” ci suggerisce che non siamo di fronte a quello che il linguaggio comune intende come robot; il BOT, infatti, non ha un corpo meccanico visibile ma è un software, o programma, che porta a termine operazioni automatizzate. Questi può ripetere dei compiti, o task, in modo ripetuto e meccanico oppure eseguire dei comandi di fronte a dei dati input. Esistono, ovviamente, diversi tipi di BOT disegnati per differenti operazioni, vediamone alcuni giusto per farcene un’idea:

  • Web crawlers o spiders, questo BOT vengono utilizzati normalmente dai siti di ricerca come per esempio Google e scannerizzano regolarmente la rete in cerca di siti web permettendone l’indicizzazione.
  • Chat room BOTS, questi BOT invece controllano le frasi scritte dagli utenti via chat e rispondono a certi input con azioni automatiche. Per esempio, se l’utente utilizza una parolaccia o un insulto contenuti nel dizionario conosciuto dal BOT questi potrebbe inviargli un messaggio automatico avvertendolo di non utilizzare un linguaggio inappropriato oppure cacciandolo direttamente dalla chat. Logicamente più il software risulta elaborato a livello di programmazione, più il BOT potrebbe apparire umano.
  • BOT “cattivi”, quelli a cui accennavamo prima, sono BOT che portano a termine azioni fastidiose o dannose. Per esempio, inviano e-mail o sms di spam pubblicitario in automatico ai nostri indirizzi; oppure, i DoS BOTS che inviano talmente tante richieste ad un sito da intasarlo e mandarlo in tilt; oppure, ancora, i Botnets, ovvero un gruppo di computer infetti, tutti controllati dalla stessa fonte (un hacker), che vengono utilizzati come BOT per inviare ad altri spam, o virus, o per duplicare siti web, o altro ancora.

Ma veniamo al dunque e concentriamoci su The Botfather di Telegram. Come già avremo intuito stiamo parlando di un BOT, o meglio il Padrino dei BOT di Telegram: questi, infatti, ci permette di creare un nostro personale BOT con cui interagire e far interagire altre persone su Telegram. Ci sono vari motivi per cui avremo voglia di creare un BOT e tante possibilità che possiamo inventarci relative a come e quando utilizzarlo; per esempio, potremmo aggiungerne uno a qualche gruppo di Telegram particolarmente attivo ed usarlo per inviare messaggi fuori contesto o per fare il pappagallo e ripetere frasi altrui (qui un articolo in inglese che spiega come creare quest’ultimo). Ora, vedremo passo passo come impostarne uno ed in specifico la nostra idea è quella di descrivere come creare un BOT per la ricerca di contenuti all’interno di un sito, nel nostro caso ovviamente utilizzeremo il nostro blog come pretesto.

Per farlo ci sono tre diverse fasi che dobbiamo seguire: la creazione del BOT su Telegram, l’impostazione di Google API e dell’identità di quanto in oggetto, e l’impostazione del sistema operativo. Ricordiamo inoltre che Google per le sue API ha imposto un limite di 100 ricerche con piano gratuito, oltre questo sarà necessario pagare.

PRIMA PARTE: CREAZIONE DEL BOT SU TELEGRAM

  1. Apriamo Telegram sul nostro smartphone oppure con l’applicazione web (qui) e selezioniamo in alto a destra (oppure nella colonna di sinistra a seconda della versione che stiamo utilizzando) l’icona per la ricerca. Comparirà una barra sottostante dove scriveremo botfather: selezioniamo la prima scelta (quella con l’avatar riportato all’inizio di questo post) cliccandoci sopra.
  2. Si aprirà, quindi, una finestra di chat dove ci verrà spiegato in inglese cosa possiamo fare con il BOT di telegram ovvero: “BotFather è il bot prescelto per controllarli tutti. Usalo per creare nuovi account bot e gestire i tuoi bots esistenti”; sotto ci vengono dati due link di cui il primo ci spiegherà un po’ di cose sui bot di telegram e come usarli, mentre il secondo è un manuale API, ovvero per l’interfaccia di programmazione dell’applicazione in questione; ci viene dato anche il contatto per il supporto e per domande relative a tale manuale.
    Clicchiamo in basso al centro su Start per iniziare a creare il nostro personale BOT.
  3. BotFather ci fornirà così un elenco di comandi che ci suggeriranno come procedere per iniziare ad impostarlo e che riportiamo nell’immagine sottostante. La lista qui sotto riportata potremo revisionarla ogni qualvolta desideriamo inserendo il comando:
    /help

  4. Iniziamo allora a creare il nostro nuovo bot inviando il seguente comando:
    /newbot

    The BotFather ci risponderà richiedendoci, gentilmente, di dare un nome al nostro BOT; noi logicamente l’abbiamo chiamato CodexSprawl. Dopodiché dovremo sceglierne un nome utente che non sia necessariamente lo stesso del nome del BOT: ricordiamoci, qui, che il nome utente dovrà necessariamente finire con la parola bot; noi abbiamo usato CodexSprawl_bot come mostrato nell’immagine sottostante.
    A questo punto ci verrà dato un indirizzo URL dove troveremo il nostro BOT (qui il nostro: t.me/CodexSprawl_bot), l’indirizzo dell’interfaccia HTTPS API che vedremo come utilizzare tra poco ed una chiave alfanumerica scritta in rosso che ci servirà più tardi! (oscurata nell’immagine sottostante)

  5. Con i comandi /setdescription e /setabouttext sarà possibile aggiungere una descrizione del nostro bot e di chi lo ha creato.

SECONDA PARTE: IMPOSTAZIONE DI GOOGLE API E CONSEGNA DI UN’IDENTITÀ AL BOT

  1. Andiamo sul sito https://cse.google.it/cse/ e, in alto a destra, clicchiamo sul tasto “Crea un motore di ricerca personalizzato”. Qui potremo inserire il nome del o dei siti su cui cercare che, nel nostro specifico caso è il presente codexsprawl.wordpress.com, impostare la lingua preferita ed il nome del nostro motore di ricerca (Wintermute). Inoltre, come mostrato nell’immagine sottostante sulla destra sarà possibile configurare ulteriormente il nostro motore di ricerca andando sulla colonna di sinistra e selezionando prima “Modifica motore di ricerca” e successivamente “Configurazione” dove troveremo ID del motore di ricerca: cliccandovi ci verrà data una chiave che ci servirà successivamente!
  2. Adesso andiamo sul sito https://developers.google.com/custom-search/json-api/v1/overview per accedere al JSON API.
    Per chi non lo sapesse API è l’acronimo di Application Programming Interface (Applicazione per la programmazione dell’interfaccia) ed è uno strumento per sviluppatori che permette e semplifica, appunto, la programmazione delle proprie applicazioni attraverso un’interfaccia grafica. JSON API serve proprio a recuperare e visualizzare dei risultati di ricerca Google personalizzati. Scrolliamo la pagina ed andiamo a cliccare su Get a key (Prendi una chiave).
  3. Si aprirà allora una finestrella che ci dirà di abilitare l’API per la ricerca personalizzata (Enable Custom Search API) invitandoci ad accettare i termini di contratto che dopo averli eventualmente controllati confermeremo cliccando su Yes e Next.
  4. A questo punto ci verrà data la nostra lunga chiave alfanumerica, nell’immagine qui sotto oscurata, che potremo copiare automaticamente cliccando sulla piccola icona a destra segnalata nell’immagine sottostante da una freccia rossa.
  5. Se non abbiamo alcun software come Visual Studio per la modifica dei codici sorgente possiamo scaricare il semplice Notepad++ da qui ed installarlo.
    Fatto questo, andiamo nella cartella in cui abbiamo posizionato la cartella decompressa google-search-telegram-bot-master (nel nostro caso Downloads\google-search-telegram-bot-master\google-search-telegram-bot-master) ed apriamo con Notepad++ il file config come mostrato nell’immagine sottostante.
  6. Una volta avuto accesso al file config modifichiamo alcune linee aggiungendo/incollando tra le virgolette già predisposte le varie chiavi alfanumeriche qui in lista e come mostrato nell’immagine sottostante:
    • telegram_bot_token, ovvero la chiave scritta in rosso dataci dal bot in telegram al momento della sua creazione;
    • google_api_key, cioè la chiave alfanumerica che ci viene data su CSE nella sezione Informazioni di Base, cliccando su ID del motore di ricerca.
    • search_engine_ID, che sarebbe la chiave che abbiamo ottenuto da JSON API al punto 3 di questa sezione.

TERZA PARTE: IMPOSTAZIONE DA TERMINALE

Per concludere scarichiamo qui l’Unofficial Google Search Telegram Bot di nkming2 che, gentilmente, ha messo a disposizione online il proprio lavoro ricordandoci che le ricerche non possono superare il numero di 100 a causa di un limite imposto da Google stesso.
Per scaricare il piccolo programma basterà andare a destra cliccando sul tasto verde “Clone or download” (clona o scarica) e selezionare Download ZIP.Questa applicazione necessita della presenza di Python 3 per cui, se non l’abbiamo già installata nel nostro computer, sarà ora di farlo cliccando qui e di Telepot qui(che scaricheremo posizionando, per comodità, la cartella decompressa all’interno di quella di google-search-telegram-bot-master).

  1. Decomprimiamo i files appena scaricato di Unofficial Google Search Telegram Bot e di Telepot: cliccando con il tasto destro del mouse sulla cartella diamogli il comando di estrarre tutto; scegliamo/controlliamo la cartella in cui questi verrà localizzato e clicchiamo su Extract (Estrai).
  2. Andiamo sul nostro terminale, per aprire la cartella decompressa se siamo su Windows 10 basterà cercare CMD o Command Promt nella barra accanto allo Start in basso a sinistra.
  3. Accediamo alla cartella con il comando cd e, direttamente, al file con il comando:
    cd Downloads\google-search-telegram-bot-master

    Dove Downloads ed il nome del file coincideranno con quelli selezionati durante l’estrazione della cartella avvenuta poco prima.

  4. Lavorando su Windows, e dipendentemente dalla versione di Python che stiamo utilizzando potremmo trovare dei problemi di dipendenze che, purtroppo, sono difficili da prevedere, come il non riconoscimento dei comandi Python, e che richiedono un po’ di pazienza e prove per trovare la giusta “formula” e continuare il nostro percorso. Nel nostro specifico caso stiamo usando la versione di Python 3.6.5. Abbiamo aggiornato la versione nuova di PIP (Python Package Index) che ci aiuta a gestire i pacchetti di Python in ambiente Windows con il seguente comando su CMD:
    py -m pip install --upgrade pip

  5. Se non l’abbiamo ancora fatto scarichiamo Telepot qui, decomprimiamo la cartella e posizioniamola dentro a quella di google-search-telegram-bot-master. Poi, su cmd scriviamo il seguente comando:
    py -m pip install telepot

  6. Ora installiamo anche la libreria Requests di Python allo stesso modo, con il seguente comando:
    py -m pip install requests

  7. A questo punto controlliamo la directory in cui ci troviamo con dir, se non ci troviamo ancora all’interno della cartella google-search-telegram-bot usiamo il seguente comando:
    cd google-search-telegram-bot-master
  8. Dopodiché utilizzando setup.py installando -e . stando attenti a non dimenticare di lo spazio ed il punto accanto alla e così da permetterci di installare tutte le dipendenze necessarie:
    py -m pip install -e .
  9. A questo punto aggiungiamo il comando:
    set PYTHONPATH=src

  10. Dopodiché, facendo attenzione ad utilizzare il doppio underscore (ovvero _ ) scriviamo:
    py src/app/__init__.py

Se in questo ultimo passaggio non si presentano errori il nostro Bot, finalmente, è funzionante! Buon divertimento!

NOTA BENE: per mantenere il BOT sempre on-line sarà necessario avere il computer acceso e attivo sul terminale; per riavviare il BOT, nel caso il pc si fosse spento, dovremo riutilizzare i comand al punto 9 e 10, ovvero:

set PYTHONPATH=src
py src/app/__init__.py dalla solita directory

Il BOT che abbiamo appena creato può essere trovato sulla ricerca di Telegram scrivendovi CodexSprawl, il suo nome è Wintermute e l’icona presente è la stessa del nostro blog, oppure a questo indirizzo: t.me/CodexSprawl_bot.

Share the love

Comincia la discussione

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.