BuDuS
17-08-2007, 15:52
Al fine di mostrare le potenzialità del plug-in (BuDuScRiPt), ho creato una serie di MACRO e di BASH SCRIPT che "assemblati" vanno a realizzare un sistema che, sostanzialmente, ha poco o nulla da invidiare a IRC BOT ben più blasonati e soprattutto famosi come eggdrop .
Il tutto è possibile realizzarlo partendo da X-Chat, che viene sfruttato come client per connettersi ai server IRC e gestire la connessione, e poi aggiungendo a quest'ultimo le numerose funzionalità offerte da BuDuScRiPt.
Inizialmente era solo un "esempio", ma oggi, a suon di miglioramenti e aggiunte, è divenuto un vero e proprio BOT con la possibilità di gestire contemporaneamente più servers/canali, consentire un accesso ai comandi tramite Privilegi e dare la possibilità all'utente di aggiungere comandi "costruendoseli".
Non è particolarmente difficile metterlo in piedi, anzi, gode di procedure automatiche che guidano l'utente passo-passo in modo da ottenere un BOT funzionante in pochissimo tempo.
Dando per scontato che X-Chat è già installato e se ne conosce l'uso (almeno minimale), chiaramente è necessario procurarsi sia il plug-in che i files di personalizzazione del BOT da questo indirizzo:
http://digilander.libero.it/udasoft/Software/Linux/buduscript/
Nella pagina download bisognerà prelevare prima il file binario; se ad esempio la versione di X-Chat in uso è la 2.8.0 , bisognerà scaricare il file buduscript_3030_2800.tar.gz .
Verso la fine della medesima pagina, oltre a parecchia altra roba di supporto che uno può scaricarsi, c'è pure il file del BOT, una cosa simile a: buduscript_bot-10.0.tar.gz
Una volta scaricati, probabilmente vengono messi proprio sul proprio Desktop. Per installarli, dovrebbe essere sufficiente aprire un terminale e procedere così:
tar xvzf Desktop/buduscript_3030_2800.tar.gz -C .xchat2
tar xvzf Desktop/buduscript_bot-10.0.tar.gz -C .xchat2
cd .xchat2/buduscript
./install.sh
A questo punto sia plug-in che BOT sono installati, tuttavia il BOT non è configurato; prima di configurarlo è indispensabile accertarsi che almeno il plug-in funzioni senza problemi, per farlo occorre lanciare X-Chat e, una volta entrati in un canale vuoto (su qualsiasi server IRC), digitare il seguente comando (è un comando IRC da digitare al prompt di X-Chat):
/budus ver
se tutto è andato ok dovrebbe apparire un messaggio con la versione del plug-in.
A questo punto occorre uscire da X-Chat e tornare nel terminale usato in precedenza (se lo si è chiuso, occorre ripetere solo il comando cd .xchat2/buduscript ); per configurare anche il BOT occorre lanciare il seguente comando:
./bot_configure_easy.sh Questa procedura farà una serie di domande alle quali è necessario rispondere con estrema attenzione, e sono:
Nickname Amministratore ; il BOT deve conoscere il nickname dell'utente che avrà la facoltà di amministrarlo. L'Amministratore può usare tutti i comandi che verranno attivati, in qualsiasi canale sia presente il BOT. Normalmente solo un utente ha questo privilegio, a tutti gli altri viene concesso di usare solo specifici comandi.
Hostname Amministratore ; dato che l'uso di alcuni comandi del BOT può causare un COLOSSALE BUCO DI SICUREZZA (sostanzialmente permettono di fare QUALSIASI COSA con i privilegi dell'utente sul quale gira X-Chat) è indispensabile che siano accessibili esclusivamente previo ferreo controllo dell'identità dell'Amministratore. Oltre al nickname è quindi obbligatorio che venga identificato anche l'hostname. Tutto questo, aggiunto al fatto che il BOT non accetta comandi prima che siano trascorsi almeno 70 secondi da quando "vede" l'utente (cioè entra nel canale, o cambia nickname), rende impossibile per malintenzionati utilizzarli semplicemente usando il nickname dell'Amministratore (ad esempio quando questi non è collegato), ammesso che il nickname sia registrato tramite NickServ (se non lo si fa o comunque non c'è possibilità di farlo, è vivamente sconsigliato abilitare il comando !cmd )
Nome Canale ; si tratta del nome del canale nel quale si vuole aggiungere il BOT. Sarà possibile farlo funzionare su più canali contemporaneamente, ecc..., ma per partire direi che uno è sufficiente :D
A questo punto la procedura chiede se si desidera - ammesso lo si voglia, si può anche rispondere N per nessuno - aggiungere i "comandi standard" in modo pubblico o privato. Come prima cosa, i comandi standard, sono quelli che qualsiasi utente che entri nel canale potrà usufruire, quindi non richiedono privilegi perché non pericolosi. Ogni comando (ex: !seen, !search, !date, ecc....) del BOT, solitamente, ha un output, cioè una risposta con un "risultato". Si può qui decidere se fare in modo che venga aggiunta una serie di comandi standard in modo che rispondano pubblicamente, ovvero direttamente nel canale dove sono stati richiesti, oppure, privatamente; in quest'ultimo caso la risposta verrà inviata in QUERY PRIVATA all'utente che ha lanciato il comando, utile nei canali molto affollati. Comunque la soluzione preferibile penso sia P, Pubblici.
Ora il BOT chiederà se aggiungere i "comandi speciali", quelli che invece richiedono l'autorizzazione per essere usati. Il BOT pone domanda per ognuno di questi comandi, spiegandone lo scopo. A seconda della propria politica, si risponderà con Y (si) o N (no).
E' possibile personalizzare con propri comandi ciò che il BOT dovrà fare quando viene caricato. In genere, dopo che si apre X-Chat e si lancia la connessione specifica per il BOT, configurata per collegarsi al solo server IRC desiderato, viene lanciata una MACRO di buduscript (che si chiama bot ), la quale, ha il compito di eseguire tutte le operazioni necessarie affinché il BOT entri in azione. Tra queste, oltre al caricamento dei servizi, si possono aggiungere anche quelle attività che uno si vuole personalizzare. Per ora, se non si hanno le idee chiare, se ne può fare a meno, si possono aggiungere anche successivamente (qualsiasi cosa è modificabile anche dopo).
La procedura chiede quindi se c'è desiderio di offrire la possibilità anche ad altri utenti di utilizzare i comandi privilegiati. Se già si ha un'idea dei nickname che si vuole abilitare a determinate operazioni, si può utilizzare questo passaggio, che in modo semplice aiuta l'utente nell'operazione. Chiaramente sarà possibile cambiare qualsiasi privilegio anche successivamente, tutto si basa sul file operator.lst manipolabile anche mentre il BOT è operativo (appena si salva il file, le modifiche sono attive).
Infine viene chiesto di personalizzare la Server List di X-Chat aggiungendo una specifica configurazione per il BOT. Se uno non si vuole leggere il README.bot è meglio rispondere Y e lasciare che sia la procedura a fare tutto da sola, viceversa, sarà necessario completare le ultime operazioni manualmente leggendo la guida.A questo punto il bot dovrebbe essere funzionante.
E' da sottolineare una cosa molto importante: non è possibile usare il BOT nella medesima istanza di X-Chat che si utilizza per chattare normalmente.
In altre parole sarà necessario lanciare 2 volte X-Chat, una istanza verrà usata per il BOT e l'altra per quello che si fa solitamente.
Altra cosa importante: il BOT non risponde a se stesso.
In altre parole non e' possibile usare i comandi !op , !date, ecc... dall'X-Chat nel quale gira il BOT, si possono usare solo in remoto, da un utente il cui nickname sia eventualmente abilitato, se necessario.
Una volta che il BOT entra nel canale che deve gestire è possibile verificarne il funzionamento (da un altro X-Chat) usando questi comandi:
!version
!uptime
Se il BOT non risponde è sintomo che qualcosa è andato storto ed è necessario leggersi la guida o chiedere assistenza on-line (vedi menu Aiuto di BuDuScRiPt).
Se invece risponde significa che è operativo e pronto all'uso :okay:
Per amministrare il BOT può essere comodo importare un apposito menu che si va ad aggiungere in X-Chat a quelli già presenti. Questo menu contiene tutti i comandi amministrativi del BOT (da usare sempre in remoto, con l'utente avente nickname riconosciuto come Amministratore) che evita il doversi imparare di botto tutto il funzionamento.
Il menu è prelevabile da qui:
http://digilander.libero.it/udasoft/Software/Linux/buduscript/mirc.ini.gz
va collocato nella proprio HOME Directory (spostarlo da Desktop alla cartella HOME) e lanciare il comando di menu:
BuDuScRiPt -> Avanzate -> Importa file INIE' sufficiente premere sempre INVIO alle varie domande poste dalla procedura, per ottenere in automatico un menu di nome "Menu Utente" che contiene il sub-menu "Amministrazione BOT".
Dopo aver preso familiarità con queste cose, piuttosto semplici da usare, ecco che sarà certamente indispensabile dare una lettura di README.bot per comprendere appieno il funzionamento del BOT ma soprattutto la faq.txt di BuDuScRiPt, che spiega come realizzare le cose più sofisticate.
Il tutto è possibile realizzarlo partendo da X-Chat, che viene sfruttato come client per connettersi ai server IRC e gestire la connessione, e poi aggiungendo a quest'ultimo le numerose funzionalità offerte da BuDuScRiPt.
Inizialmente era solo un "esempio", ma oggi, a suon di miglioramenti e aggiunte, è divenuto un vero e proprio BOT con la possibilità di gestire contemporaneamente più servers/canali, consentire un accesso ai comandi tramite Privilegi e dare la possibilità all'utente di aggiungere comandi "costruendoseli".
Non è particolarmente difficile metterlo in piedi, anzi, gode di procedure automatiche che guidano l'utente passo-passo in modo da ottenere un BOT funzionante in pochissimo tempo.
Dando per scontato che X-Chat è già installato e se ne conosce l'uso (almeno minimale), chiaramente è necessario procurarsi sia il plug-in che i files di personalizzazione del BOT da questo indirizzo:
http://digilander.libero.it/udasoft/Software/Linux/buduscript/
Nella pagina download bisognerà prelevare prima il file binario; se ad esempio la versione di X-Chat in uso è la 2.8.0 , bisognerà scaricare il file buduscript_3030_2800.tar.gz .
Verso la fine della medesima pagina, oltre a parecchia altra roba di supporto che uno può scaricarsi, c'è pure il file del BOT, una cosa simile a: buduscript_bot-10.0.tar.gz
Una volta scaricati, probabilmente vengono messi proprio sul proprio Desktop. Per installarli, dovrebbe essere sufficiente aprire un terminale e procedere così:
tar xvzf Desktop/buduscript_3030_2800.tar.gz -C .xchat2
tar xvzf Desktop/buduscript_bot-10.0.tar.gz -C .xchat2
cd .xchat2/buduscript
./install.sh
A questo punto sia plug-in che BOT sono installati, tuttavia il BOT non è configurato; prima di configurarlo è indispensabile accertarsi che almeno il plug-in funzioni senza problemi, per farlo occorre lanciare X-Chat e, una volta entrati in un canale vuoto (su qualsiasi server IRC), digitare il seguente comando (è un comando IRC da digitare al prompt di X-Chat):
/budus ver
se tutto è andato ok dovrebbe apparire un messaggio con la versione del plug-in.
A questo punto occorre uscire da X-Chat e tornare nel terminale usato in precedenza (se lo si è chiuso, occorre ripetere solo il comando cd .xchat2/buduscript ); per configurare anche il BOT occorre lanciare il seguente comando:
./bot_configure_easy.sh Questa procedura farà una serie di domande alle quali è necessario rispondere con estrema attenzione, e sono:
Nickname Amministratore ; il BOT deve conoscere il nickname dell'utente che avrà la facoltà di amministrarlo. L'Amministratore può usare tutti i comandi che verranno attivati, in qualsiasi canale sia presente il BOT. Normalmente solo un utente ha questo privilegio, a tutti gli altri viene concesso di usare solo specifici comandi.
Hostname Amministratore ; dato che l'uso di alcuni comandi del BOT può causare un COLOSSALE BUCO DI SICUREZZA (sostanzialmente permettono di fare QUALSIASI COSA con i privilegi dell'utente sul quale gira X-Chat) è indispensabile che siano accessibili esclusivamente previo ferreo controllo dell'identità dell'Amministratore. Oltre al nickname è quindi obbligatorio che venga identificato anche l'hostname. Tutto questo, aggiunto al fatto che il BOT non accetta comandi prima che siano trascorsi almeno 70 secondi da quando "vede" l'utente (cioè entra nel canale, o cambia nickname), rende impossibile per malintenzionati utilizzarli semplicemente usando il nickname dell'Amministratore (ad esempio quando questi non è collegato), ammesso che il nickname sia registrato tramite NickServ (se non lo si fa o comunque non c'è possibilità di farlo, è vivamente sconsigliato abilitare il comando !cmd )
Nome Canale ; si tratta del nome del canale nel quale si vuole aggiungere il BOT. Sarà possibile farlo funzionare su più canali contemporaneamente, ecc..., ma per partire direi che uno è sufficiente :D
A questo punto la procedura chiede se si desidera - ammesso lo si voglia, si può anche rispondere N per nessuno - aggiungere i "comandi standard" in modo pubblico o privato. Come prima cosa, i comandi standard, sono quelli che qualsiasi utente che entri nel canale potrà usufruire, quindi non richiedono privilegi perché non pericolosi. Ogni comando (ex: !seen, !search, !date, ecc....) del BOT, solitamente, ha un output, cioè una risposta con un "risultato". Si può qui decidere se fare in modo che venga aggiunta una serie di comandi standard in modo che rispondano pubblicamente, ovvero direttamente nel canale dove sono stati richiesti, oppure, privatamente; in quest'ultimo caso la risposta verrà inviata in QUERY PRIVATA all'utente che ha lanciato il comando, utile nei canali molto affollati. Comunque la soluzione preferibile penso sia P, Pubblici.
Ora il BOT chiederà se aggiungere i "comandi speciali", quelli che invece richiedono l'autorizzazione per essere usati. Il BOT pone domanda per ognuno di questi comandi, spiegandone lo scopo. A seconda della propria politica, si risponderà con Y (si) o N (no).
E' possibile personalizzare con propri comandi ciò che il BOT dovrà fare quando viene caricato. In genere, dopo che si apre X-Chat e si lancia la connessione specifica per il BOT, configurata per collegarsi al solo server IRC desiderato, viene lanciata una MACRO di buduscript (che si chiama bot ), la quale, ha il compito di eseguire tutte le operazioni necessarie affinché il BOT entri in azione. Tra queste, oltre al caricamento dei servizi, si possono aggiungere anche quelle attività che uno si vuole personalizzare. Per ora, se non si hanno le idee chiare, se ne può fare a meno, si possono aggiungere anche successivamente (qualsiasi cosa è modificabile anche dopo).
La procedura chiede quindi se c'è desiderio di offrire la possibilità anche ad altri utenti di utilizzare i comandi privilegiati. Se già si ha un'idea dei nickname che si vuole abilitare a determinate operazioni, si può utilizzare questo passaggio, che in modo semplice aiuta l'utente nell'operazione. Chiaramente sarà possibile cambiare qualsiasi privilegio anche successivamente, tutto si basa sul file operator.lst manipolabile anche mentre il BOT è operativo (appena si salva il file, le modifiche sono attive).
Infine viene chiesto di personalizzare la Server List di X-Chat aggiungendo una specifica configurazione per il BOT. Se uno non si vuole leggere il README.bot è meglio rispondere Y e lasciare che sia la procedura a fare tutto da sola, viceversa, sarà necessario completare le ultime operazioni manualmente leggendo la guida.A questo punto il bot dovrebbe essere funzionante.
E' da sottolineare una cosa molto importante: non è possibile usare il BOT nella medesima istanza di X-Chat che si utilizza per chattare normalmente.
In altre parole sarà necessario lanciare 2 volte X-Chat, una istanza verrà usata per il BOT e l'altra per quello che si fa solitamente.
Altra cosa importante: il BOT non risponde a se stesso.
In altre parole non e' possibile usare i comandi !op , !date, ecc... dall'X-Chat nel quale gira il BOT, si possono usare solo in remoto, da un utente il cui nickname sia eventualmente abilitato, se necessario.
Una volta che il BOT entra nel canale che deve gestire è possibile verificarne il funzionamento (da un altro X-Chat) usando questi comandi:
!version
!uptime
Se il BOT non risponde è sintomo che qualcosa è andato storto ed è necessario leggersi la guida o chiedere assistenza on-line (vedi menu Aiuto di BuDuScRiPt).
Se invece risponde significa che è operativo e pronto all'uso :okay:
Per amministrare il BOT può essere comodo importare un apposito menu che si va ad aggiungere in X-Chat a quelli già presenti. Questo menu contiene tutti i comandi amministrativi del BOT (da usare sempre in remoto, con l'utente avente nickname riconosciuto come Amministratore) che evita il doversi imparare di botto tutto il funzionamento.
Il menu è prelevabile da qui:
http://digilander.libero.it/udasoft/Software/Linux/buduscript/mirc.ini.gz
va collocato nella proprio HOME Directory (spostarlo da Desktop alla cartella HOME) e lanciare il comando di menu:
BuDuScRiPt -> Avanzate -> Importa file INIE' sufficiente premere sempre INVIO alle varie domande poste dalla procedura, per ottenere in automatico un menu di nome "Menu Utente" che contiene il sub-menu "Amministrazione BOT".
Dopo aver preso familiarità con queste cose, piuttosto semplici da usare, ecco che sarà certamente indispensabile dare una lettura di README.bot per comprendere appieno il funzionamento del BOT ma soprattutto la faq.txt di BuDuScRiPt, che spiega come realizzare le cose più sofisticate.