Ogni tanto guardo se qualcuno scrive su questo Forum .... sono saltato dalla sedia quando ho visto un nuovo messaggio !
Ho provato a cimentarmi con la creazione di uno script seguendo la guida ma ho trovato qualche problema:
1) Il pacchetto che fai scaricare per creare lo script va decompresso in una sua cartella creata in precedenza, altrimenti si mischia con tutto il resto.
Io ho dato questi comandi per farlo:
cd Scaricati
mkdir /home/mac/.xchat2/buduscript/budus_xbspse_extension
tar xvzf budus_xbspse_extension.tar.gz -C /home/gizm0/.xchat2/buduscript/budus_xbspse_extension
cd /home/gizm0/.xchat2/buduscript/
mv budus_xbspse_extension/ gizm0_xdcc
cd gizm0_xdcc
mv budus_xbspse_extension_init.sh gizm0_xdcc_init.sh
2) Nel file "gizm0_xdcc_init.sh" ho messo a posto la riga della versione, così:
required_buduscript_version=3.7.90
3) Ho cercato la lista per il canale che mi interessava; il link alla lista è "http://www.friend4ever.it/lista/backstage/" per il network Friend4Ever e canale #backstage .
Ho quindi creato una copia del file di esempio con:
mv budus_xdcc_plugin_NETWORK_CHANNEL.sh budus_xdcc_plugin_friend4ever_backstage.sh
4) Ho guardato il contenuto del file e ho modificato dove c'erano i punti interrogativi e li ho sistemati.
5) Ho cercato quale filtro funzionava con i comandi:
wget
http://www.friend4ever.it/lista/backstage/./budus_XBSPSE_LIB.sh --filter-test index.html
i primi risultati sono falliti tutti, pensavo di non farcela, poi gli ultimi hanno funzionato e alla fine ho scelto "filter_MULTISTAGE_friend4ever" che sembra fatto apposta per il network che ho scelto io.
6) Ho modificato ancora il file "budus_xdcc_plugin_friend4ever_backstage.sh" per usare il filtro scelto; questo è il contenuto finale:
#!/bin/bash
# $Revision$
# STANDARD 1.0
# PLUGIN TYPE:LIST
# PLUGIN LIST:Friend4Ever backstage
# AUTORE: Gizm0
######################################################################
echo "BEGIN: $(basename $0) $*" >&2
######################################################################
# Questo e' un "bash script plugin" per BuDuScRiPt/budus_xdcc.sh
# Il suo scopo e' quello di fornire un "motore di ricerca".
######################################################################
# Include la Libreria di Funzioni XDCC
source $(dirname ${0})/budus_XBSPSE_LIB.sh
######################################################################
# Lo script "budus_xdcc.sh" invoca questo script passando, come primo
# parametro, un codice casuale che serve per calcolare il file dentro
# al quale immagazzinare il risultato opportunamente filtrato.
RANDOM_NUMBER=${1}
# Il secondo parametro e' il numero di secondi d'attesa del risultato
# dal sito web interrogato, trascorsi i quali, si deve interrompere la
# ricerca del plugin.
WGET_TIMEOUT=${2}
# Il terzo parametro rappresenta la "stringa di ricerca" immessa
# dall'utente.
SEARCH_STRING=${3}
######################################################################
# VARIABILI AD USO DEL FILTRO
######################################################################
db_url="http://www.friend4ever.it/lista/backstage/"
wget_option="-q -t 1 -O - -T ${WGET_TIMEOUT}"
######################################################################
# Vengono create e inizializzate le variabili base operative.
make_plugin_variables "${0}"
######################################################################
# Questo plugin, scaricando una lista anziche' interrogando un motore
# di ricerca web, lavore in modo diverso: salva il risultato
# "giornaliero" (cioe' lo aggiorna solo una volta al giorno)
if [ -f /tmp/budus_XDCC_db_${plugin_name}.${date_code} ]; then
make_data_file_exchange
rm -f ${plugin_tempfile}
echo "END : $(basename $0) $*" >&2
exit 0;
else
rm -f /tmp/budus_XDCC_db_${plugin_name}.*
fi
######################################################################
wget ${wget_option} ${db_url} | sed 's/\r//g' > ${plugin_tempfile}
cp -f ${plugin_tempfile} /tmp/budus_XDCC_db_${plugin_name}.dat
######################################################################
if [ ! -f "${plugin_tempfile}" ]; then
echo > "${plugin_tempfile}"
if [ ! -f "${plugin_tempfile}" ]; then
echo "/ECHO %C4,1Non sono in grado di creare files temporanei in /tmp, problema di permessi ?"
echo "/ECHO (${plugin_tempfile})"
exit 1;
else
echo "/ECHO %C4,1Il plugin non e' stato in grado di generare il database. Segnalare il problema a UDA'Software, se persiste."
exit 1;
fi
fi
######################################################################
# Filtraggio
# L'output del filtro e' rappresentato da 8 campi separati dal
# carattere di tabulazione '\t', ovvero:
# NETWORK_NAME NETWORK_HOST CHANNEL BOT_NAME ID FILE_NAME SIZE COMMAND
# 1 2 3 4 5 6 7 8
#
# e va convogliato all'interno del file:
# /tmp/budus_XDCC_db_${plugin_name}.${date_code}
######################################################################
filter_MULTISTAGE_friend4ever 'Friend4Ever' 'Friend4Ever' '#backstage'
make_data_file_exchange
######################################################################
rm -f ${plugin_tempfile}
######################################################################
echo "END : $(basename $0) $*" >&2
######################################################################
7) Ora ho un problema: come faccio a sapere se ho fatto tutto bene ?