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

Ti è piaciuto questo articolo? Allora non perdiamoci di vista :)

Grazie della visita, spero che gli articoli ti siano piaciuti. Per non perderci di vista ho pensato che una newsletter poteva fare al caso nostro.

Ti aspetto!



Se vuoi ricevere sia gli aggiornamenti del Blog che del Diario Social, riceverai due email di conferma :)

Potrebbero interessarti