DokuWikiBot: tra telegram e DokuWiki

DokuWikiBot: un framework per creare Bot Telegram

DokuWikiBot è un framework Open Source che permette di creare un Bot Telegram in pochissimo tempo, prelevando i dati dal CMS DokuWiki.

Cos’è DokuWiki

DokuWiki è un CMS Open Source, rilasciato sotto GPL2. Questo cms è stato realizzato per creare siti di documentazione come enciclopedie, manuali e guide, il nome deriva dalla filosofia Wiki che è stata d’ispirazione anche per Wikipedia.

DokuWiki

 

Il Codice Sorgente

License_icon-gpl-4.svgL’intero Framework è sviluppato in con il linguaggio di programmazione PHP OOP, ed è rilasciato sotto GPL3.

 

Come creare un Bot telegram con DokuWikiBot

Il Codice è suddiviso in 4 file e per funzionare deve essere inserito nello stesso hosting di un installazione di DokuWiki.
Dopo l’inserimento basta semplicemente modificare il file config.php e il bot è pronto per essere utilizzato.
Il Bot ricerca nelle pagine di DokuWiki le tabelle e realizza delle ricerche personalizzate su di esse. Vediamo il procedimento nel dettaglio:

1° passo

Creare il bot telegram da https://web.telegram.org/BotFather

9ff2f2f01c4bd1b013

 

Dopo aver inserito il nome del Bot e il Nick vi verrà inviato un messaggio con su scritto:
Use this token to access the HTTP API: <token-bot>

2° Passo

 

Prendere i 4 file e trasferiteli nel vostro Host.

Due cose importanti:

  • l’host deve utilizzare il protocollo sicuro per lo scambio di dati: SSL;
  • sullo stesso host deve risiedere l’istallazione di DokuWiki.

3° Passo

Connettersi all’indirizzo:
https://api.telegram.org/bot<token-bot>/setwebhook?url=<directory_file>/telegram.php

sostituendo <directory_file> con l’indirizzo dove risiedono i file di dokuwikibot e <token-bot> con il token ricavato all’inizio.

Da questo momento il bot appena creato si interfaccerà direttamente con i file appena caricati sul host.

4° Passo

PHPModificare config.php: 

define(‘BOT_TOKEN’, ‘Qua inserisci il tuo token ricavato all’inizio‘);
define(‘API_URL’, ‘https://api.telegram.org/bot’.BOT_TOKEN.’/’);

define(‘dir_doku’, ‘qua la posizione del tuo wiki‘);
define(‘doku_data’, dir_doku.’data/pages/’);

define(‘type_error_message’, “messaggio di errore quando non viene riconosciuto un comando“);
define(‘welcome_message’, “il tuo messaggio di benvenuto“);
define(‘help_message’, “il messaggio di aiuto“);

Di seguito tutti i messaggi di errore:
define(‘unknown_request’,”richiesta sconosciuta”);
define(‘unknown_page’,”pagina inesistente”);
define(‘unknown_column’,”colonna inesistente”);
define(‘data_null’,”nessun valore da cercare”);
define(‘search_null’,”nessun valore trovato”);

Ora il bot è pubblicato e utilizzabile.

Funzioni presenti

Telegram

Oltre a /start/help son presenti altre funzioni:

page: l’elenco delle pagine presenti in DokuWiki;

<nome-pagina>: inserendo il nome di una pagina di dirà tutte le colonne con cui sarà possibile interagire;

<pagina-colonna:dato>:  inserendo il nome di una pagina, di una colonna e il dato che deve essere ricercato, il bot ti restituisce tutte le righe dove quel valore è presente. Facciamo un esempio: abbiamo la pagina ricette, in cui è contenuta una tabella con le seguenti colonne: titolo, procedimento, tipo e ingredienti, digitando “ricette-tipo:antipasti” verrà inviato su telegram tutto l’elenco delle ricette che hanno “antipasti” come tipo.

Una nota

il bot cercherà sempre la classica struttura tabellare di DokuWiki, ovvero:

^titolo 1^titolo 2^titolo 3^

|riga 1 colonna 1|riga 1 colonna 2|riga 1 colonna 3|

|riga 2 colonna 1|riga 2 colonna 2|riga 2 colonna 3|

 

I link utili:

In versione Plugin DokuWiki per Telegram (beta):

  • Link del progetto su GitHub: Link