Il BOT per BuDuScRiPt già realizza questa cosa tramite il comando !memo; tuttavia si tratta di un servizio che è stato realizzato per essere usato da più utenti, con tanto di privilegi diversi a seconda delle varie funzionalità disponibili.
Per addomesticarlo ad un lavoro più blando e "privato" è necessario crearsi un ambiente in cui eseguire gli script del comando in modo opportuno.
In pratica dovremo installare il BOT (anche se poi, in pratica, useremo solo alcuni file) usando il comando di menu: BuDuScRiPt -> Preferenze -> Gestione Plugin\Script Esterni -> Installa BOT
Andiamo quindi a creare l'ambiente con i seguenti comandi da terminale (come utente normale, chiaramente):
Codice: Seleziona tutto
cd $HOME/.xchat2/buduscript
mkdir memo
cd memo
ln -s ../budus_admin.sh .
ln -s ../budus_memo.sh .
ln -s ../budus_validate.sh .
touch budus_setup.sh
Ora siamo in grado di eseguire lo script del MEMO senza problematiche legate ai privilegi.
A questo punto è necessario creare una macro con la quale governare il MEMO; nella cartella "$HOME/.xchat2/buduscript" andiamo a creare il file "memo.mcr" il cui contenuto sarà il seguente:
Codice: Seleziona tutto
#fastflush
# Macro: MEMO
# USE: /budus macro memo <subcomando> [parametri]
# EX: /budus macro memo help
#exec:/budus if '$1' = '' /budus cmd /ECHO end( %C8,1%BATTENZIONE: Non hai specificato il sub-comando. )
#exec:/budus pipe_script echo '000000_000000 : JOIN: [0000000000 | XXX XXX XX XX:XX:XX XXXX ] -> server:[$mhostname] channel:[$mchannel] nick:[$mnick] address:[MEMO_CLIENT_ADDRESS]' > $HOME/$mxchat_path/buduscript/memo/$mhostname.log
#exec:/budus pipe_script echo '000000_999999 : JOIN: [0000000000 | XXX XXX XX XX:XX:XX XXXX ] -> server:[$mhostname] channel:[$mchannel] nick:[MEMO_CLIENT_NICK_CHECK] address:[MEMO_CLIENT_ADDRESS_CHECK]' >> $HOME/$mxchat_path/buduscript/memo/$mhostname.log
#exec:/budus pipe_script echo 'all:/$mnick/MEMO_CLIENT_ADDRESS/' > $HOME/$mxchat_path/buduscript/memo/operator.lst
/budus cmd /budus pipe_script $HOME/$mxchat_path/buduscript/memo/budus_memo.sh \(MEMO_CLIENT_NICK_CHECK\) \($mnick\) \(MEMO_CLIENT_ADDRESS\) \($mchannel\) \($mhostname\) \($mhostname\) \(removecolors( !memo $1 $2- )\) \($mdatabase\)
Per utilizzare il comando si lancia la MACRO in questo modo:
Codice: Seleziona tutto
/budus macro memo help
ottenendo la guida; ad esempio, per aggiungere una frase al database, usiamo:
Codice: Seleziona tutto
/budus macro memo add ...frase da aggiungere...
per fermare il servizio:
Codice: Seleziona tutto
/budus macro memo stop
e così via.
Volendo personalizzare i parametri del servizio (ad esempio l'intervallo tra un messaggio e l'altro) dobbiamo inserire nel file "budus_setup.sh" le seguenti righe:
Codice: Seleziona tutto
######################################################################
# budus_memo.sh
#
# Codice da inserire in testa ad ogni frase inserita; notare che non
# e' opportuno lasciare vuota questa variabile per motivi di
# sicurezza. Si consiglia di modificarla con *estrema* attenzione.
memo_header_string="%O"
# Comando IRC da utilizzare per visualizzare le MEMO nel
# canale. Notare che, se lo script e' stato configurato per fornire
# una risposta privata anziche' pubblica, la variabile *NON DEVE*
# essere cambiata.
memo_print_command="/SAY "
# Lasso di tempo, espresso in secondi, che deve trascorrere tra la
# stampa di un MEMO ed il successivo, quando il servizio viene avviato
# in automatico ("!memo start").
memo_print_interval=3600
# Numero massimo di risultati visualizzabili quando si utilizza il
# sub-comando "list".
memo_max_list_result=10
# Numero massimo di risultati visualizzabili quando si utilizza il
# sub-comando "search".
memo_max_search_result=10
# Numero massimo di risultati visualizzabili quando si utilizza il
# sub-comando "delrgx".
memo_max_delrgx_result=10
# Numero minimo di records presenti nel database dei MEMO, raggiunto
# il quale, il servizio parte in automatico o, viceversa se non viene
# piu' rispettato, il servizio si ferma in automatico (se era attivo).
memo_min_db_records_autostart=24
# Comando da utilizzare per inviare il file del database dei MEMO. La
# variabile "REMOTE_USER" viene sostituita con il nickname dell'utente
# che ha eseguito il comando. La variabile "FILENAME" viene sostituita
# con il nome del file del database da inviare. Per gli utenti che non
# possono utilizzare il BOT come Server, si consiglia di usare "SEND"
# al posto di "PSEND".
memo_send_db_command="/DCC PSEND REMOTE_USER FILENAME"
e personalizzare i valori come desiderato.
Infine, per fare in modo che il servizio parta in automatico quando entriamo in un determinato canale, conviene creare una sentinella simile alla seguente:
Codice: Seleziona tutto
/event add 1 jchannel '#miocanale'='$channel' /budus macro memo start
dove, chiaramente, "#miocanale" deve essere personalizzato; salviamo la sentinella tramite il comando di menu: BuDuScRiPt -> Gestione Sentinelle -> Salva Sentinelle in Memoria