XDCC: Cosa sono gli XBSPSE, come si aggiornano e altre info
Inviato: 11/01/2012, 13:22
Cosa sono gli XBSPSE ?
XBSPSE è l'acronimo di XDCC Bash Script Plugin Search Engine, ovvero, un componente aggiuntivo, scritto in linguaggio Bash Script, il qui scopo è quello di fungere da Motore di Ricerca.
In particolare ha il compito di cercare le risorse sulla fonte per la quale è stato creato e memorizzarle in un database.
Per quale necessità sono nati gli XBSPSE ?
Volendo cercare risorse XDCC, mi sono accorto che le fonti dalle quali attingere sono molte e, spesso, con caratteristiche piuttosto diverse.
Anche se le si può sintetizzare in 2 tipologie:
Ma, nel mio caso, desideravo che fosse tutto automatizzato e quindi mi sono posto il problema di come dedicare, ad ogni fonte e relativa tipologia, uno strumento adeguato.
Alla fine, la soluzione migliore che ho trovato, è stata quella di creare un componente che fosse sufficientemente flessibile da adattarsi in modo rapido e ragionevolmente preciso ad ogni fonte, facile da creare, da modificare - anche per utenti non particolarmente esperti - e aggiornare.
Posso aggiornare gli XBSPSE solo quando aggiorno BuDuScRiPt ?
No, ora è possibile aggiornare gli XBSPSE anche successivamente all'installazione/aggiornamento dello script e precedentemente al rilascio di una nuova versione.
È possibile farlo tramite l'apposito comando di menu: BuDuScRiPt -> Preferenze -> Gestione Plugin\Script Esterni -> Aggiorna XBSPSE (Plugin di Ricerca XDCC)
L'aggiornamento avviene in automatico ?
No, solo quello del plugin avviene - se abilitato - automaticamente.
Gli XBSPSE andrebbero aggiornati quando, ad esempio tramite Twitter, segnalo che sarebbe opportuno farlo.
Questo perché non tutti utilizzano il sistema XBSPSE e quindi non è detto che siano interessati ad aggiornarli.
In tutti i casi, quando si usa il comandi di menu di cui sopra, viene segnalato se l'aggiornamento è opportuno o, invece, non si ottiene nessun beneficio.
Cosa faccio se un XBSPSE comunica errori ?
Premesso che, pur avendo una certa tolleranza, sono comunque sensibili ai cambiamenti che possono subire le fonti cui sono dedicati e questo comporta, con una certa facilità e frequenza, il presentarsi di malfunzionamenti.
Aldilà di quelli che possono essere malfunzionamenti temporanei (BOTLIST KO o assente, Network irraggiungibile, ecc...) che possono durare qualche giorno, quando la situazione si protrae oltre, ecco che diventa opportuno:
Su macchine non particolarmente veloci o comunque in presenza di una connessione internet poco performante, può essere opportuno limitare al minimo l'uso degli XBSPSE - lasciandone attivi solo alcuni -, oppure, valutare se disattivando una o entrambe queste 2 opzioni:
Notare che, attivando l'opzione "XDCC -> Configurazione -> Crea Database Permanenti degli XBSPSE Automaticamente quando sono AWAY", gli XBSPSE vengono lanciati in automatico, quando siamo assenti, e in Modalità Sequenziale; questo potrebbe agevolare moltissimo i tempi di ricerca e il ridursi di eventuali fallimenti dovuti ai problemi esposti precedentemente.
Ho aggiornato, ma le cose vanno peggio di prima, come faccio ?
Ecco, chiaramente spero non si realizzi questa situazione
, ma, nella malaugurata ipotesi, ritengo che l'unica soluzione sia quella di forzare la re-installazione dello script, tramite il comando di menu: BuDuScRiPt -> Re-installa il plugin
È chiaramente opportuno segnalarmi la cosa !
Non c'è un XBSPSE dedicato alla mia fonte preferita, come faccio ?
Direi che le possibilità sono 3:

Posso creare e distribuire XBSPSE miei ?
Certo e incentivo a farlo fornendo il mio supporto
Come prima cosa è disponibile un apposito pacchetto che ho realizzato al fine di facilitare il compito: CLICCA PER SCARICARLO
Va decompresso all'interno della cartella .xchat2/buduscript, dopodiché, si rinomina la cartella in modo che acquisti il nome del pacchetto che si vuole creare, ad esempio:
quindi si creano gli XBSPSE; per fare ciò si può prendere esempio dallo script già incluso. Ad esempio, volendo creare un XBSPSE per il network "irc.paperino.org" e canale "#pluto" potremmo rinominare l'esempio:
quindi, con qualsiasi editor di testo (ad esempio GEdit), modificarlo in modo che diventi come il seguente:
e quindi lo si salva. Volendone creare altri, si esegue semplicemente una copia di quello creato e lo si modifica allo stesso modo.
La cosa più complicata consiste nell'individuare il filtro giusto per analizzare la LISTA; il file "budus_XBSPSE_LIB.sh" rappresenta, oltre che la libreria dei filtri disponibili, anche un valido strumento per capire quale filtro può essere usato.
Il mio consiglio è quello di scaricarsi la lista, ad esempio con:
e di analizzarla in questo modo:
e porre attenzione alla percentuale di successo che si ottiene con i vari filtri o comunque, quando viene visualizzato il risultato dell'elaborazione, valutare quale filtro ottiene il risultato migliore.
Se l'XBSPSE deve essere di tipo PASSWORD, possiamo modificarlo in modo simile al seguente:
È chiaro che, in questo caso, bisogna avere un mimino di esperienza della programmazione BASH perché, probabilmente, la pulizia della risposta del BOT è da realizzare opportunamente (in genere, la cosa più complicata, è sistemare la corretta inizializzazione della variabile "PASSWORD").
Finito con la creazione degli XBSPSE, si passa a sistemare il file di inizializzazione; cosa molto importante: il file di inizializzazione del pacchetto deve avere un nome corrispondente a quest'ultimo.
Ad esempio se il nome del pacchetto che abbiamo scelto è "miopacchetto_xbspse", dovremo rinominare lo script di inizializzazione in questo modo:
facendo attenzione che, alla fine, rimanga "_init.sh", sia eseguibile e non ci siano spazi.
Lo script di inizializzazione viene lanciato in automatico nel momento in cui l'utente, tramite apposito comando di menu di BuDuScRiPt, va ad eseguire l'installazione.
Il suo scopo è quello di eseguire delle operazioni che non sono previste dalla procedura di installazione; ad esempio, verificare che gli XBSPSE siano compatibili con la versione di BuDuScRiPt installata dall'utente.
All'interno del file in oggetto è possibile trovare la seguente riga:
che rappresenta, appunto, la versione dello script richiesta affinché tutto funzioni come previsto (è infatti possibile, ad esempio, che gli XBSPSE utilizzino dei filtri non presenti in versioni precedenti).
Il valore va chiaramente corretto con la versione di BuDuScRiPt che si è utilizzata per realizzare il pacchetto (aggiornarla, se necessario).
Sistemato lo script di inizializzazione, possiamo rimuovere la guida che spiega come creare i pacchetti (che, grosso modo, ripercorre ciò che ho scritto qui) con:
ed eventualmente creare un README proprio, contenente le informazioni che si desidera fornire agli utenti che installeranno il proprio pacchetto.
Infine, creare il pacchetto con il seguente comando:
Il file va quindi caricato su un sito web e, possibilmente, va creata una pagina che contiene la scritta corrispondente al link per scaricarlo (suggerisco che non sia un link html al file, ma solo una scritta); ad esempio la pagina potrebbe essere qualcosa come questo:
Sembra una cosa complicata ma, in genere, si tratta di un mero "cerca/sostituisci"
La cosa complicata è in realtà mantenere aggiornati gli XBSPSE !
Tendono, infatti, a deperire molto velocemente; do quindi alcuni consigli:
Ma poi gli utenti come fanno ad installare i miei XBSPSE ?
Come prima cosa bisogna creare un sito - o comunque una semplice pagina WEB - tramite il quale gli utenti possono ottenere il link al pacchetto - opportunamente realizzato - contenente gli XBSPSE; non è necessario fare chissà cosa o acquistare spazio a pagamento, una banale pagina con poche scritte (ad esempio che descrivono chi ha realizzato il pacchetto, cosa contiene - ovvero, per quali fonti sono previsti gli XBSPSE -, come installarlo, ecc...), su uno di quegli spazi che si può ottenere facilmente e a costo zero, è più che sufficiente.
La cosa principale è che sia chiaro il LINK che gli utenti devono copiare (copia/incolla), per poi utilizzarlo in BuDuScRiPt; in quest'ultimo è presente il comando di menu "XDCC -> Gestione Motori di Ricerca -> Installa XBSPSE creati e gestiti da terzi" che, una volta lanciato, chiede di inserire l'URL completo al pacchetto da scaricare ed installare.
Scaricamento, installazione e aggiornamento del menu XDCC di BuDuScRiPt avviene completamente in automatico.
Anche qui, in caso di dubbi o necessità di aiuto, contattarmi non costa nulla.
XBSPSE è l'acronimo di XDCC Bash Script Plugin Search Engine, ovvero, un componente aggiuntivo, scritto in linguaggio Bash Script, il qui scopo è quello di fungere da Motore di Ricerca.
In particolare ha il compito di cercare le risorse sulla fonte per la quale è stato creato e memorizzarle in un database.
Per quale necessità sono nati gli XBSPSE ?
Volendo cercare risorse XDCC, mi sono accorto che le fonti dalle quali attingere sono molte e, spesso, con caratteristiche piuttosto diverse.
Anche se le si può sintetizzare in 2 tipologie:
- Motori di Ricerca WEB XDCC
- Liste XDCC
Questa tipologia, a sua volta, può essere suddivisa in:- Lista Pubblica
- Lista Privata (protetta da Password)
Ma, nel mio caso, desideravo che fosse tutto automatizzato e quindi mi sono posto il problema di come dedicare, ad ogni fonte e relativa tipologia, uno strumento adeguato.
Alla fine, la soluzione migliore che ho trovato, è stata quella di creare un componente che fosse sufficientemente flessibile da adattarsi in modo rapido e ragionevolmente preciso ad ogni fonte, facile da creare, da modificare - anche per utenti non particolarmente esperti - e aggiornare.
Posso aggiornare gli XBSPSE solo quando aggiorno BuDuScRiPt ?
No, ora è possibile aggiornare gli XBSPSE anche successivamente all'installazione/aggiornamento dello script e precedentemente al rilascio di una nuova versione.
È possibile farlo tramite l'apposito comando di menu: BuDuScRiPt -> Preferenze -> Gestione Plugin\Script Esterni -> Aggiorna XBSPSE (Plugin di Ricerca XDCC)
L'aggiornamento avviene in automatico ?
No, solo quello del plugin avviene - se abilitato - automaticamente.
Gli XBSPSE andrebbero aggiornati quando, ad esempio tramite Twitter, segnalo che sarebbe opportuno farlo.
Questo perché non tutti utilizzano il sistema XBSPSE e quindi non è detto che siano interessati ad aggiornarli.
In tutti i casi, quando si usa il comandi di menu di cui sopra, viene segnalato se l'aggiornamento è opportuno o, invece, non si ottiene nessun beneficio.
Cosa faccio se un XBSPSE comunica errori ?
Premesso che, pur avendo una certa tolleranza, sono comunque sensibili ai cambiamenti che possono subire le fonti cui sono dedicati e questo comporta, con una certa facilità e frequenza, il presentarsi di malfunzionamenti.
Aldilà di quelli che possono essere malfunzionamenti temporanei (BOTLIST KO o assente, Network irraggiungibile, ecc...) che possono durare qualche giorno, quando la situazione si protrae oltre, ecco che diventa opportuno:
- Segnalarmi (qui sul Forum, con Feedback, via IRC, con e-mail o quello che vi pare
) il malfunzionamento. - Disabilitare l'XBSPSE tramite il menu: XDCC -> Gestione Motori di Ricerca
Su macchine non particolarmente veloci o comunque in presenza di una connessione internet poco performante, può essere opportuno limitare al minimo l'uso degli XBSPSE - lasciandone attivi solo alcuni -, oppure, valutare se disattivando una o entrambe queste 2 opzioni:
- XDCC -> Configurazione -> Esegui Plugin di Ricerca (XBSPSE) in parallelo
- XDCC -> Configurazione -> Consenti Plugin di Ricerca (XBSPSE) che richiedono Password
Notare che, attivando l'opzione "XDCC -> Configurazione -> Crea Database Permanenti degli XBSPSE Automaticamente quando sono AWAY", gli XBSPSE vengono lanciati in automatico, quando siamo assenti, e in Modalità Sequenziale; questo potrebbe agevolare moltissimo i tempi di ricerca e il ridursi di eventuali fallimenti dovuti ai problemi esposti precedentemente.
Ho aggiornato, ma le cose vanno peggio di prima, come faccio ?
Ecco, chiaramente spero non si realizzi questa situazione
È chiaramente opportuno segnalarmi la cosa !
Non c'è un XBSPSE dedicato alla mia fonte preferita, come faccio ?
Direi che le possibilità sono 3:
- Cerchi se qualcuno ha realizzato un pacchetto XBSPSE (per crearli esiste un apposito tool reperibile qui) contenente la fonte desiderata. È possibile installare questi motori di ricerca aggiuntivi tramite il comando di menu: XDCC -> Gestione Motori di Ricerca -> Installa XBSPSE creati e gestiti da terzi
- Me lo suggerisci
- Te lo crei leggendo l'apposita guida che si trova nel menu: XDCC -> XDCC Bash Script Plugin Search Engine
Posso creare e distribuire XBSPSE miei ?
Certo e incentivo a farlo fornendo il mio supporto
Come prima cosa è disponibile un apposito pacchetto che ho realizzato al fine di facilitare il compito: CLICCA PER SCARICARLO
Va decompresso all'interno della cartella .xchat2/buduscript, dopodiché, si rinomina la cartella in modo che acquisti il nome del pacchetto che si vuole creare, ad esempio:
Codice: Seleziona tutto
cd $HOME/.xchat2/buduscript
mv -v budus_xbspse_extension miopacchetto_xbspse
cd miopacchetto_xbspse
quindi si creano gli XBSPSE; per fare ciò si può prendere esempio dallo script già incluso. Ad esempio, volendo creare un XBSPSE per il network "irc.paperino.org" e canale "#pluto" potremmo rinominare l'esempio:
Codice: Seleziona tutto
mv -v budus_xdcc_plugin_NETWORK_CHANNEL.sh budus_xdcc_plugin_paperino_pluto.sh
SUGGERIMENTO ha scritto:Il nome dello script deve essere - possibilmente - scritto tutto in minuscolo e bisogna accertarsi che abbia i permessi impostati correttamente, ad esempio:Codice: Seleziona tutto
ls -l budus_xdcc_plugin_paperino_pluto.sh
-rwxr-xr-x 1 budus users 3315 22 apr 18.06 budus_xdcc_plugin_paperino_pluto.sh
quindi, con qualsiasi editor di testo (ad esempio GEdit), modificarlo in modo che diventi come il seguente:
Codice: Seleziona tutto
#!/bin/bash
# $Revision$
# STANDARD 1.0
# PLUGIN TYPE:LIST
# PLUGIN LIST:irc.paperino.org #pluto
# AUTORE: BuDuS
######################################################################
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.paperino.org/lista.html"
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 "/ECHO %C4,1Non sono in grado di creare files temporanei in /tmp, problema di permessi ?"
exit 1;
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_ONCLICK_generic 'paperino' 'irc.paperino.org' '#pluto'
make_data_file_exchange
######################################################################
rm -f ${plugin_tempfile}
######################################################################
echo "END : $(basename $0) $*" >&2
######################################################################
e quindi lo si salva. Volendone creare altri, si esegue semplicemente una copia di quello creato e lo si modifica allo stesso modo.
La cosa più complicata consiste nell'individuare il filtro giusto per analizzare la LISTA; il file "budus_XBSPSE_LIB.sh" rappresenta, oltre che la libreria dei filtri disponibili, anche un valido strumento per capire quale filtro può essere usato.
Il mio consiglio è quello di scaricarsi la lista, ad esempio con:
Codice: Seleziona tutto
wget http://www.paperino.org/lista.html
e di analizzarla in questo modo:
Codice: Seleziona tutto
./budus_XBSPSE_LIB.sh --filter-test lista.html
e porre attenzione alla percentuale di successo che si ottiene con i vari filtri o comunque, quando viene visualizzato il risultato dell'elaborazione, valutare quale filtro ottiene il risultato migliore.
SUGGERIMENTO ha scritto:In questa fase occorre un minimo di dimestichezza e di "occhio" che si acquisisce con la pratica.
In linea di massima bisogna aspettarsi delle righe simili alle seguenti:Codice: Seleziona tutto
Paperino irc.paperino.org #pluto BOT|01 #1 file_01.txt 1Mb /msg BOT|01 xdcc send #1
Paperino irc.paperino.org #pluto BOT|01 #2 file_01.txt 1Mb /msg BOT|01 xdcc send #2
Paperino irc.paperino.org #pluto BOT|02 #1 file_01.txt 1Mb /msg BOT|02 xdcc send #1
Paperino irc.paperino.org #pluto BOT|02 #2 file_01.txt 1Mb /msg BOT|02 xdcc send #2
se dovessero contenere dei TAG HTML o "scritte strane" significa che il filtro non lavora perfettamente; in questo caso è necessario (se si possiede un minimo di esperienza con la programmazione BASH), nel proprio XBSPSE, utilizzare direttamente il codice del filtro modificato (si fa un copia/incolla prendendolo da "budus_XBSPSE_LIB.sh" e lo si modifica opportunamente).
Comunque, in caso di problemi, contattarmi non implica nessun rischio .... sono innocuo !!!![]()
Se l'XBSPSE deve essere di tipo PASSWORD, possiamo modificarlo in modo simile al seguente:
Codice: Seleziona tutto
#!/bin/bash
# $Revision$
# STANDARD 1.0
# PLUGIN TYPE:PASSWORD
# PLUGIN LIST:irc.paperino.org #pluto
# AUTORE: BuDuS
######################################################################
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.paperino.org/lista.php?password="
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
######################################################################
# URL ADS con cui ottenere la password.
ads_url="http://www.disneyland.com/pubblicita"
######################################################################
# VARIABILI AD USO DEL CRAWLER
######################################################################
crawler_server_host="irc.paperino.org"
crawler_server_port="6667"
crawler_server_channel="#pluto"
crawler_bot_nickname="Paperone|List"
crawler_greeting_string="Ciao a tutti quanti"
crawler_query_nickname="${crawler_bot_nickname}"
crawler_query_string="${ads_url}"
crawler_string_pattern="LA PASSWORD DA USARE: "
######################################################################
# Dato che il database non e' presente, deve interrogare il BOT del
# canale per ottenere la password di accesso.
get_list_password
PASSWORD=$(echo "${XBSPSE_Crawler}" \
| grep -iF "${crawler_string_pattern}" \
| tail -n1 \
| sed 's@.*: @@')
######################################################################
if [ "${PASSWORD}" == "" ]; then
printf '[XBSPSE PLUGIN] %s: Non sono riuscito a contattare il BOT [%s:%s:%s] per ottenere la password; devo abortire.\n' "${plugin_name}" "${crawler_server_host}" "${crawler_server_channel}" "${crawler_bot_nickname}" >&2
[ "${XBSPSE_Crawler}" != "" ] && \
printf '/ECHO %s\n' "${XBSPSE_Crawler}" || \
printf '/ECHO Il crawler non ha ottenuto risposta dal BOT %s\n' "${crawler_bot_nickname}"
printf '/ECHO Se il problema persiste, si consiglia di contattare UDA'\''Software.\n'
get_XBSPSE_TIMEOUT "${XBSPSE_Crawler_ID}" > /dev/null
queue_connection_manager "RELEASE"
[ -f ${plugin_tempfile} ] && rm -f ${plugin_tempfile}
exit 1
fi
WGET_TIMEOUT=$(get_XBSPSE_TIMEOUT "${XBSPSE_Crawler_ID}")
printf '[XBSPSE PLUGIN] %s: La password per accedere al database (%s) risulta essere %s e rimangono %d secondi prima del timeout.\n' "${plugin_name}" "${db_url}" "${PASSWORD}" "${WGET_TIMEOUT}" >&2
######################################################################
wget ${wget_option} ${db_url}${PASSWORD} | sed 's/\r//g' > ${plugin_tempfile}
cp -f ${plugin_tempfile} /tmp/budus_XDCC_db_${plugin_name}.dat
######################################################################
if [ ! -f ${plugin_tempfile} ]; then
echo "/ECHO %C4,1Non sono in grado di creare files temporanei in /tmp, problema di permessi ?"
exit 1;
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_ONCLICK_generic 'paperino' 'irc.paperino.org' '#pluto'
make_data_file_exchange
######################################################################
rm -f ${plugin_tempfile}
######################################################################
echo "END : $(basename $0) $*" >&2
######################################################################
È chiaro che, in questo caso, bisogna avere un mimino di esperienza della programmazione BASH perché, probabilmente, la pulizia della risposta del BOT è da realizzare opportunamente (in genere, la cosa più complicata, è sistemare la corretta inizializzazione della variabile "PASSWORD").
Finito con la creazione degli XBSPSE, si passa a sistemare il file di inizializzazione; cosa molto importante: il file di inizializzazione del pacchetto deve avere un nome corrispondente a quest'ultimo.
Ad esempio se il nome del pacchetto che abbiamo scelto è "miopacchetto_xbspse", dovremo rinominare lo script di inizializzazione in questo modo:
Codice: Seleziona tutto
mv -v budus_xbspse_extension_init.sh miopacchetto_xbspse_init.sh
facendo attenzione che, alla fine, rimanga "_init.sh", sia eseguibile e non ci siano spazi.
Lo script di inizializzazione viene lanciato in automatico nel momento in cui l'utente, tramite apposito comando di menu di BuDuScRiPt, va ad eseguire l'installazione.
Il suo scopo è quello di eseguire delle operazioni che non sono previste dalla procedura di installazione; ad esempio, verificare che gli XBSPSE siano compatibili con la versione di BuDuScRiPt installata dall'utente.
All'interno del file in oggetto è possibile trovare la seguente riga:
Codice: Seleziona tutto
required_buduscript_version=3.7.08
che rappresenta, appunto, la versione dello script richiesta affinché tutto funzioni come previsto (è infatti possibile, ad esempio, che gli XBSPSE utilizzino dei filtri non presenti in versioni precedenti).
Il valore va chiaramente corretto con la versione di BuDuScRiPt che si è utilizzata per realizzare il pacchetto (aggiornarla, se necessario).
INFORMAZIONE ha scritto:È piuttosto improbabile che, se un utente aggiorna BuDuScRiPt, il pacchetto non sia più compatibile; in linea teorica, le versioni successive dello script, supporteranno anche i pacchetti vecchi.
Discorso diverso è, invece, se si realizza un pacchetto di XBSPSE con una versione dello script e un utente lo installa su una versione precedente; in questo caso potrebbero mancare delle funzionalità che si sono utilizzate e questo comporterebbe un fallimento dell'elaborazione.
È opportuno evitare questa situazione. Se il pacchetto non è supportato dalla versione di BuDuScRiPt in uso, la procedura di installazione fallisce, comunica errore e disinstalla in automatico il pacchetto (questo significa che l'utente può installarlo solo se decide di aggiornare lo script).
Sistemato lo script di inizializzazione, possiamo rimuovere la guida che spiega come creare i pacchetti (che, grosso modo, ripercorre ciò che ho scritto qui) con:
Codice: Seleziona tutto
rm -vf README.xbspse_extension
ed eventualmente creare un README proprio, contenente le informazioni che si desidera fornire agli utenti che installeranno il proprio pacchetto.
Infine, creare il pacchetto con il seguente comando:
Codice: Seleziona tutto
tar cvzf miopacchetto_xbspse.tar.gz *
Il file va quindi caricato su un sito web e, possibilmente, va creata una pagina che contiene la scritta corrispondente al link per scaricarlo (suggerisco che non sia un link html al file, ma solo una scritta); ad esempio la pagina potrebbe essere qualcosa come questo:
Codice: Seleziona tutto
Per installare il pacchetto [b]miopacchetto_xbspse[/b] utilizzare, in BuDuScRiPt, il comando di menu: XDCC -> Gestione Motori di Ricerca -> Installa XBSPSE creati e gestiti da terzi
quindi, incollare il seguente indirizzo: http://www.miositoweb.com/miopacchetto_xbspse.tar.gz
nella finestra di richiesta che si apre.
Sembra una cosa complicata ma, in genere, si tratta di un mero "cerca/sostituisci"
La cosa complicata è in realtà mantenere aggiornati gli XBSPSE !
Tendono, infatti, a deperire molto velocemente; do quindi alcuni consigli:
- Scegliere le fonti con cura e accertarsi che "funzionino" e siano aggiornate (spesso capita che i BOT non funzionano o non sono sincronizzati con la LISTA).
- Evitare di creare troppi XBSPSE; oltre i 15/20 diventa abbastanza proibitivo mantenerli tutti aggiornati e, se non funzionano, sono solo un peso per gli utenti.
- Evitare canali che offrono LISTE molto voluminose (oltre i 10Mb); meglio più canali, magari "di nicchia" (che offrono contenuti particolari o qualcosa del genere), in modo che la velocità di elaborazione sia accettabile (sotto i 10 minuti).
- Evitare gli XBSPSE di tipo PASSWORD; questo non significa fare dei XBSPSE "LIST" quando bisognerebbe fare dei "PASSWORD" (ergo: gestire un plugin la cui LISTA cambia molto frequentemente), ma evitare proprio quelle fonti che necessitano di elaborazioni complicate (quindi tempi elevati e facilità di fallimento).
Ma poi gli utenti come fanno ad installare i miei XBSPSE ?
Come prima cosa bisogna creare un sito - o comunque una semplice pagina WEB - tramite il quale gli utenti possono ottenere il link al pacchetto - opportunamente realizzato - contenente gli XBSPSE; non è necessario fare chissà cosa o acquistare spazio a pagamento, una banale pagina con poche scritte (ad esempio che descrivono chi ha realizzato il pacchetto, cosa contiene - ovvero, per quali fonti sono previsti gli XBSPSE -, come installarlo, ecc...), su uno di quegli spazi che si può ottenere facilmente e a costo zero, è più che sufficiente.
La cosa principale è che sia chiaro il LINK che gli utenti devono copiare (copia/incolla), per poi utilizzarlo in BuDuScRiPt; in quest'ultimo è presente il comando di menu "XDCC -> Gestione Motori di Ricerca -> Installa XBSPSE creati e gestiti da terzi" che, una volta lanciato, chiede di inserire l'URL completo al pacchetto da scaricare ed installare.
Scaricamento, installazione e aggiornamento del menu XDCC di BuDuScRiPt avviene completamente in automatico.
Anche qui, in caso di dubbi o necessità di aiuto, contattarmi non costa nulla.