PDA

View Full Version : BuDuScRiPt 3.0.00 per X-Chat 2.8.4


BuDuS
18-07-2007, 23:06
Direi che si tratta senza dubbio del rilascio più importante e travagliato degli ultimi anni, se non di sempre.

Il passaggio diretto dalla versione 2.7.37 alla 3.0.00 è dovuto alla miriade di correzioni e nuove possibilità che ho implementato.

A livello del plug-in in se stesso, in realtà, le modifiche non sono state enormi, anche se comunque importanti, quanto piuttosto a quella che considero la vera novità: l'integrazione dello script con l'interfaccia grafica di X-Chat.

Ebbene si', dopo almeno 7 anni di vita di questo script (meglio tardi che mai :prrr: ) mi sono finalmente deciso ad esaudire una delle richieste Vostre più assidue, la personalizzazione dell'interfaccia grafica.

Sono sempre stato molto restio a questa cosa, in particolare alla creazione di "accelerazioni da tastiera" (infatti quest'ultime sono pochissime, ma significative), attività che ho sempre preferito lasciare in mano agli utenti, ognuno libero di sistemarsi le cose a proprio piacimento.
La realtà tuttavia mi ha dimostrato invece che gli utenti molto raramente operano questa personalizzazione, tutt'altro, e quindi finiscono per scoprire si' e no il 3% delle potenzialità dello script.

Ho quindi deciso di fare un notevole sforzo per rendere disponibili TUTTE le funzionalità dello script tramite i MENU A TENDINA di X-Chat.

Anche se qualche problema tecnico mi ha impedito di fare tutto quello che avevo in mente (mi riferisco al menu contestuale della Lista Utenti, che ho dovuto invece rendere fisso sotto il nome di Comandi Utente), sostanzialmente ho realizzato un sistema che realmente consente di governare lo script. Ho infatti, laddove necessario, persino creato delle procedure guidate che aiutano l'utente nelle operazioni fino ad oggi più complicate (lo sono ancora un po', lo ammetto, ma molto, molto meno), come ad esempio la gestione delle Sentinelle (magari non sapete neppure cosa sono :sospiro: ed è invece una delle cose più potenti dello script ! :okay:) e delle MACRO.

Come se tutto cio' non bastasse, non mi sono dimenticato nemmeno dell'aspetto Multimediale.
Molti mi hanno chiesto: ma perché non fai qualcosa per gestire XMMS ?
La mia riposta è sempre stata: eh, c'è già un sacco di ottimi script che lo fanno !

Beh, sbagliavo, in realtà non è che ci sia granché ed ecco che ho deciso di fornire qualcosa in merito; in particolare, per chi utilizza Audacious (per chi non lo sapesse e' un clone di XMMS che, su distribuzioni come Gentoo, ha persino sostituito quest'ultimo, ormai considerato obsoleto e soprattutto pieno di bug) viene, se installato (cioè se il player multimediale in questione è installato), aggiunto un menu apposito che ne consente la pressoché totale gestione, con anche la possibilità di scrivere nel canale corrente (o anche più di uno) il brano in ascolto, anche in automatico.

BuDuScRiPt lo considero un plug-in full-featured, nel senso che copre una vastissima gamma di problematiche e offre all'utente la possibilità di colmare qualsiasi lacuna del client di base.
Basti pensare ad esempio alla "mancanza" di un comando come "slap", cioè la possibilità di inserire un nickname nel prompt facendo doppio click nella UserList, di X-Chat.
Di default BuDuScRiPt non cambia l'impostazione di X-Chat, quindi ancora facendo doppi click si aprirà la QUERY privata, tuttavia oltre ad esserci la possibilità di cambiare questo comportamento, già nel menu Comandi Utente c'è proprio in testa questo comando che, tra l'altro, a differenza delle precedenti versioni, imposta il focus direttamente al prompt (sembrerà una cosa banale, ma io non credo esistano altri script/plug-in che hanno questa funzionalità, seppur richiesta nel Forum Ufficiale di X-Chat).NB: Porre attenzione al fatto che l'utilizzo della funzione /budus InsertInBuffer(), se utilizzata con una versione del plug-in non compatibile con quella di X-Chat, può causare il crash di quest'ultimo.

Ciò e' dovuto al fatto che, per implementare questo comando, vengono utilizzate funzioni a basso livello di X-Chat normalmente non accessibili (ed è per questo che altri script, soprattutto i NON plug-in, non possono proprio avere questa possibilità).
Un altro cambiamento rilevante è l'introduzione di un "programma personalizzato" per la riproduzione degli avvisi acustici; pur rimanendo la difficoltà di trovare il device audio della propria distribuzione Linux, direi che ora far suonare lo script si è nettamente semplificato, non fosse altro che viene utilizzato un comando (udaplaysound) dal comportamento certo (i vari play, esdplay, ecc... si comportano tutti in modo diverso uno dall'altro, rendendo impossibile una gestione semplificata della cosa).

Il mio invito, giusto per terminare questa pappardella :prrr: è quello di "navigare" nel Menu a tendina di BuDuScRiPt provando i vari comandi; ad esempio è stato introdotto un menu che consente di memorizzare i propri "canali preferiti", in modo che, selezionandoli, si possa fare un join automatico, per non parlare della possibilità di gestire la lista dei nickname da monitorare in modo semplice tramite gli appositi comandi, ecc...

Non abbiate paura, insomma, di provare e soprattutto di scrivermi segnalando anomalie o suggerendomi miglioramenti :okay:

Chiaramente, con tutte queste novità, è possibile che ci siano cose che non funzionano come previsto, ma garantisco che, nelle mie disponibilità, lavorerò per sistemarle.

Infine segnalo che, oltre allo script, ho rilasciato anche una nuova versione del BOT, anch'essa piena di correzioni e novità, certamente da provare :proud:

BuDuS
21-07-2007, 19:07
Come sospettavo, non funzionava tutto perfettamente e credo non potesse essere altrimenti vista la quantità di novità introdotte ma, almeno per ora, mi ritengo soddisfatto perché i difetti riscontrati sono minimali.

Purtroppo mi sono dimenticato, durante la fase di creazione dei pacchetti (3.0.00), di inserire le icone per il menu Audacious; chi non usa questo player, non si sarà accorto di nulla, perché viene aggiunto solo se installato il programma. Ora sono presenti anche quelle.

Mi sono accorto che, durante la ricerca nel Database, la visualizzazione dei FLAGS relativi agli utenti intercettati, poteva risultare fastidiosa; ora, per ogni singolo utente intercettato nella ricerca, i relativi FLAGS verranno mostrati una sola volta.

Quando si chiede la guida di una variabile, lo script ha sempre mostrato il valore di default e non quello attualmente impostato; ciò ha sempre determinato confusione e quindi ho deciso di sistemare la cosa, rendendola più chiara: c'è il valore attuale e opportunamente evidenziato quello di default.

Chi non ha l'ADD-ON E-List installato, di fatto non aveva nessun comando per gestire il File Domini (/budus help file_domini); ora ho aggiunto una procedura che consente di aggiungere i nickname al file (se non è presente il file, lo crea in modo opportuno).
Non è la stessa cosa di usare E-List, ma direi che aiuta abbastanza.

BuDuS
23-07-2007, 23:55
Una delle precedenti novità (nella versione 3.0.03) è stata la possibilità di verificare il valore di una variabile anche chiedendone la guida (ex: /budus help maxsent).
Purtroppo questa novità ha introdotto un gravissimo bug che causa il crash immediato del client nel momento in cui si chiede una "guida generica" e ciò avviene anche quando lo script non riconosce la variabile o il comando digitato.

In poche parole, semplicemente scrivendo "/budus", X-Chat va in crash :sospiro:

E' chiaramente consigliato molto vivamente l'aggiornamento alla release 3.0.04 dove il problema è stato corretto.

BuDuS
03-08-2007, 19:19
Dopo un altro bel po' di lavoro, che ha visto sì parecchie correzioni ma soprattutto un'infinità di novità, rilascio la versione 3.0.11.

Dopo quella che oserei dire "epocale" introduzione dei Menu, ho deciso di soddisfare un'altra richiesta che mi è stata spesso proposta e che poi è pure alla base della nascita dello script stesso: la possibilità di avere X-Chat più simile a certi script per mIRC.

In particolare, alcuni utenti sentono la mancanza nel mondo Linux di uno script IRC analogo (se non uguale) a quello che magari erano abituati ad usare quando utilizzavano Windows.

Ebbene, non dico che ho raggiunto l'obiettivo, tuttavia penso di aver introdotto una novità che potrebbe fare la felicità di molti: la possibilità di importare i menu - con relativi comandi - di uno Script mIRC

Ammetto che c'è molto ancora da fare e che comunque è possibile importare solo le cose più semplici, però sono convinto valga la pena provare la nuova possibilità.

Per chi è un minimo esperto di mIRC scripting (il bello è che io non lo sono ! :sospiro: ) provo a spiegare un po' più nel dettaglio cosa ho combinato; ebbene, dato un file INI mIRC con righe come le seguenti:


n1= .Saluti
n2= ..Per chi Entra
n3= ...* Normale:/ME saluta $$1 e gli da il benvenuto in $chan !
n4= ...* Dedica:/ME saluta $$1 e gli dedica un pensiero: "$$?="Scrivi il pensiero""
n5= ...-
n6= ...* SalutaV:/ME da il benvenuto a $$1 e .... | .timer 1 3 /VOICE $$1 | .timer 1 6 /SAY .... gli da un bel + !
ho realizzato uno script in bash che riesce a tradurle in MACRO per BuDuScRiPt, così da ricreare il medesimo menu, sostituire le variabili utilizzate ($$1, $chan, ecc...) in modo opportuno, implementare l'input da parte dell'utente (vedi "n4=") e addirittura i "comandi multipli" (cosa normalmente non possibile con X-Chat) separati da un '|' .

Ho fatto un test su uno script mIRC che conteneva oltre 1000 righe tipo queste e un buon 80% sono state importate perfettamente ! :proud:

L'importazione è abbastanza banale perché, una volta individuato il file .INI contenente il menu mIRC che si vuole importare, basta copiarlo nella proprio HOME directory di Linux e lanciare l'apposito comando di BuDuScRiPt:

BuDuScRiPt->Avanzate->Importa file INI di mIRC ... Qualche inconveniente si può verificare nel caso in cui il file INI non sia codificato secondo il set UTF-8 ma invece lo sia il Sistema Linux usato (ex, su Ubuntu, e le più recenti distribuzioni è già così), tuttavia la procedura di importazione dovrebbe accorgersene automaticamente e proporre la soluzione.

Oltre a questa - direi importante - novità, ho pure aggiunto qualche novità nei menù nativi di BuDuScRiPt, in particolare:
Comandi di IGNORE e BAN a tempo
Possibilità di aggiungere disegni ascii-art (basta copiarli nella directory buduscript/asciiart ); come esempio ho inserito la scritta "BuDuScRiPt" in vari modi, giusto per dare un esempio.
Possibilità di aggiungere messaggi che possono essere inviati in modo casuale (basta copiarli nella directory buduscript/messages ); attualmente ho messo un file di nome "tips_e_tricks.txt" che offre numerosi spunti sull'uso del plug-in Ho pure aggiunto qualche cosa al motore del plug-in, in particolare:
Direttiva #budusmenu nei file MACRO per facilitare il caricamento di menu anche molto corposi.
Comando /budus ban che, permette di eseguire BAN a tempo.
Rivista la sintassi della Condizione nelle Sentinelle
Possibilità di leggere e salvare le sentinelle su un file diverso da quello di defaultLa modifica della sintassi nella Condizione delle Sentinelle è ciò che mi ha causato maggiore fatica; i problemi sono nati dall'introduzione delle Espressioni Regolari che, utilizzando alcuni caratteri (spesso usati nei nickname, ecc...) per costruire, appunto, le proprie espressioni, di fatto potevano causare comportamenti "imprevisti".

Ad esempio una sentinella come questa:
/event add 0 jchannel '|-BuDuS-|'='$ru' /budus PlaySound() dpotrebbe far pensare che, ogni volta che l'utente |-BuDuS-| entra in un canale, viene generato un suono di avvertimento di default.
Il problema è che il carattere | fa parte di quell'insieme utilizzato dalle Espressioni Regolari .
Data la sintassi della Condizione così fatta:
<costante><operatore><variabile>abbiamo che, a seconda dell'<operatore>, per semplicità assumiamo sia '=', lo script tenterà di:
verificare che la <costante> sia contenuta nella <variabile>
verificare che la <variabile> sia contenuta nella <costante>
verificare che l'Espressione Regolare della <costante> venga soddisfatta dal contenuto della <variabile>ecco che, anche fallendo le condizioni 1 e 2, quando veniva presa in considerazione l'ipotesi 3, un'espressione regolare "malformata" come "|-BuDuS-|" (ricordo che | ha un significato particolare, cioè di OR binario), di fatto rendeva la Condizione sempre vera !
Per evitare il problema si sarebbe dovuto utilizzare il carattere di escape \ in questo modo:
/event add 0 jchannel '\|-BuDuS-\|'='$ru' /budus PlaySound() dCapirete però che questo modo di fare non era proprio banale da comprendere :sospiro:

Ebbene, per risolvere alla radice, ho deciso di fare in modo che, nel momento in cui una <condizione> inizia con il carattere apice ' , di fatto il controllo dell'Espressione Regolare è inibito, lasciando quindi i controlli 1 e 2 soltanto, che sono ciò che normalmente un utente si aspetta.

Qualcuno quindi si potrebbe chiedere "beh, ma allora che senso hanno ste Espressioni Regolari se fanno del caos ?"; eh, non è così semplice, a volte capita di dover creare delle Condizioni "sofisticate" che non sarebbero risolvibili con meri confronti con lo stile dei punti 1 e 2, ad esempio, prendiamo in considerazione una sentinella come questa:
/event add 0 text ^(ciao|giorno)[$_]*$nick([$_,]|$)='$data' /SAY Ciao $ru !mi rendo conto che, messa così è un po' criptica, etrapoliamo solo la Condizione:
^(ciao|giorno)[$_]*$nick([$_,]|$)='$data'ora sostituiamo $_ con lo spazio:
^(ciao|giorno)[ ]*$nick([ ,]|$)='$data'al posto di $nick ci andiamo a mettere il "nostro nickname" supponiamo BuDuS:
^(ciao|giorno)[ ]*BuDuS([ ,]|$)='$data'Analizzando la sola Espressione Regolare:
^(ciao|giorno)[ ]*BuDuS([ ,]|$)abbiamo che:
^ significa: deve iniziare con quello che viene dopo
(ciao|giorno) significa: deve aspettarsi la parola ciao oppure giorno
[ ]* significa: aspettati un qualsiasi numero di spazi bianchi, anche nessuno.
([ ,]|$) significa: aspettati l'espressione [ ,] oppure l'espressione $
[ ,] significa: aspettati uno spazio oppure una virgola
$ significa: aspettati la fine della riga Tradotto in un linguaggio "masticabile", potremmo descriverla cosi': una frase che inizi con ciao o giorno, eventualmente seguita da spazi, quindi il nickname dell'utente, che può essere seguito da uno spazio o da una virgola o anche niente.

Immagino sarà evidente quanto queste famigerate Espressioni Regolari siano complicate ma altrettanto potenti ;)

Già con quella sentinella lì saremmo in grado di rispondere in automatico a buona parte dei saluti.

Comunque ricordo che è ora incluso uno script guidato che aiuta alla creazione di sentinelle, usando quello è difficile creare qualcosa che non funzioni :-)

BuDuS
07-08-2007, 19:10
Continua la fase di sviluppo serrata :proud:

A livello di plug-in ho introdotto il supporto ai Comandi di Massa per quanto riguarda i comandi ban (che ha pure cambiato sintassi) e ignore; in questo modo è possibile fare una selezione multipla direttamente dalla Lista Utenti di X-Chat ed utilizzare i vari comandi di menu per ottenere ban/ignore di massa.

Dove ho invece speso molto tempo di sviluppo è nello script che consente di importare i file INI di mIRC all'interno di X-Chat.

Ho fatto numerosi test e introdotto parecchie migliorie, al fine di rendere compatibile l'importatore con una sufficiente gamma di Script mIRC.
Chiaramente non fa miracoli, ci sono script che vengono importati meglio e altri peggio, però complessivamente i risultati sono soddisfacenti.
Se poi ci si arma di un po' di pazienza e si "mette mano" al file INI togliendo o modificando quello che non va, ecco che i risultati ottenibili possono essere davvero ottimi ! :okay:

Addirittura mi sono accorto che, anziché creare i menu "via MACRO", creare direttamente un file INI ed importarlo è molto più semplice !

Un esempio di Menu Utente lo potete scaricare da qui:

http://digilander.libero.it/udasoft/Software/Linux/buduscript/mirc.ini.gz
NB: La conversione da iso-8859-1 a UTF-8 non dovrebbe essere necessaria - il file l'ho creato con Unicode UTF-8 - quindi consiglio di non farla, salvo effettivamente le "decorazioni" non vengano rappresentate con caratteri "troppo strani".
E' sufficiente copiare il file nella propria HOME directory e lanciare il comando di importazione in BuDuScRiPt->Avanzate .

Addirittura è possibile importare i files INI accodandoli al menu già presente - o creandone uno nuovo, se si specifica un nome diverso - così da ottenere "più script in uno"; insomma, ora le possibilità sono tante e credo che con questa possibilità la "nostalgia" per gli script Windows sia drasticamente ridotta, se non eliminata.

BuDuS
12-08-2007, 18:30
Pensavate mi fossi stancato ? :-?

Ma neanche un po' ! :prrr:

Nuova versione, 3.0.22, contenente un sacco di novità:
Sistema BADWORD; ora è possibile creare un file contenente parole cattive che, quando scritte da un altro utente, generano un evento di tipo badword (che è nuovo) la cui variabile $data contiene il numero di intercettazioni che il medesimo utente ha subito.
Controllo Automatico dell'aggiornamento; è chiaramente disattivabile, ma ora sarà il plug-in stesso ad informare quando c'è una versione nuova disponibile
Ora è possibile determinare i MODE di un utente anche tramite le sentinelle o tramite il salvataggio del database, perché l'informazione viene salvata nel campo $data .
Il comando "budus sendsess" ora consente di specificare anche l'eventuale server, in modo che non ci sia ambiguità nel caso in cui ci siano più sessioni con il medesimo nome.Ho poi migliorato i comandi a menu, aggiungendo la possibilità per l'utente di personalizzarsi dei Comandi da Eseguire all'Avvio (di X-Chat).

BuDuS
13-08-2007, 18:20
Nonostante il rilascio di ieri, ho deciso di fare qualche piccola correzione, nulla di eccezionale, chi è pigro può tenersi anche la versione precedente che tanto cambia poco.

Per la cronaca:

Ora, quando si fa una ricerca, tra i FLAGS appare anche il numero di intercettazioni effettuate sugli utenti intercettati. Qualche miglioria l'ha vista pure il BOT, dove ho aggiunto anche il Sistema Anti-Flood che lavora in modo praticamente identico a quello del BADWORD.

Ho aggiunto alcuni comandi al Menu Utente, proprio relativamente all'uso del BOT.

BuDuS
15-08-2007, 18:38
Continua il lavoro di "raffinamento" dello script dopo le numerose novità introdotte.

La principale modifica apportata è che ora, nella Condizione delle Sentinelle, se viene anteposto l'apostrofo ' alla costante in questo modo:

'costante='variabile'ma non viene messo alla fine, sempre alla costante, sarà automaticamente rimosso e il suo scopo sarà esclusivamente quello di inibire il controllo per Espressione Regolare.
Se si desidera che non venga rimosso, bisogna anteporre il backslash \ , cosi':

\'costante='variabile'Inoltre ora, solo nel controllo dell'Espressione Regolare, è attivo il controllo CASE-SENSITIVE, nel senso che è diverso se una cosa è scritta in MAIUSCOLO o minuscolo.
In questo modo è possibile fare cose di questo tipo:

/event add 0 text ^[A-Z$_]*$='$data' /SAY $ru, sei pregato di NON scrivere in maiuscolo, togli CAPS-LOCK se necessario.
Per quanto riguarda l'Azione c'è ora la possibilità di creare sentinelle che, a loro volta, contengono comandi multipli, separandoli con la parola chiave _BUDUS_SEPARATOR_, come ad esempio:

/event add 0 badword '3'='$data' /event add 0 badword '$ru'='^ru' /budus ban + *!*@$domain 300 $ru_BUDUS_SEPARATOR_/KICK $ru non dire parolacce\;/KICK $ru non dire parolacce o la prossima volta ti banno !
Sempre a proposito delle Sentinelle ora si può usare nell'Azione la variabile $number che ritorna il numero della sentinella stessa, ad esempio utilizzabile con il comando "/event reset".
Quest'ultimo comando ha poi visto l'introduzione del parametro * che consente di resettare tutte le variabili, usandolo così:
/event reset *Il comando "/event list" ora permette di eliminare sentinelle "per keyword", ad esempio:
/event list jchannel -rimuoverà tutte le sentinelle che nell'evento, nella condizione o nell'azione contengono la parola "jchannel".

BuDuS
18-08-2007, 00:19
E' stato scoperto un bug nel comando /budus sendsess quando veniva specificato un parametro "malformato", di questo tipo:
/budus sendsess irc.server.org/canaleomettendo il carattere # il plug-in andava in errore facendo crashare il client.


Di già che c'ero, ho corretto piccole imperfezioni a livello di codice "che non mi piacevano" e soprattutto reso CASE-INSENSITIVE il Sistema BADWORD ; in questo modo non fa differenza come vengono scritte nel file badword.txt le parole o come le scrivono gli utenti, saranno comunque intercettate indipendentemente da MAIUSCOLE/minuscole, anche se si tratta di Espressioni Regolari (quindi l'uso di espressioni regolari che tentano di fare distinzione in tal senso, non funzioneranno come previsto).

Ho anche trovato degli errori nel Menu Utente in formato mIRC INI che è possibile importare separatamente.
Consiglio di prelevare la versione aggiornata:

http://digilander.libero.it/udasoft/Software/Linux/buduscript/mirc.ini.gz

mettere il file nella propria HOME Directory e lanciare il comando di importazione nel menu BuDuScRiPt->Avanzate->Importa file INI .

BuDuS
24-08-2007, 14:41
E' stato individuato un bug nella macro MC che ne compromette il funzionamento - in pratica non fa proprio nulla, qualsiasi comando si dia - nel caso in cui venga usata da un utente che ha nel nickname dei caratteri appartenenti alle Espressioni Regolari.

Suddetta MACRO è la stessa utilizzata da molti comandi del "Menu Utente" che si ottiene importando un file INI di mIRC.

In altre parole, è sufficiente avere un nick tipo |-BuDuS-| (quindi contenete il carattere pipe '|' ) affinché la MACRO non funzioni correttamente.

Per risolvere il problema si può procedere in 3 modi:
Scaricare nuovamente lo script e re-installarlo, sovrascrivendo. Anche se la versione dello script non è cambiata, solo il file MC.mcr è stato corretto.
Tramite un programma come mc (Midnight Commander) è possibile entrare dentro l'archivio e aggiornare il solo file MC.mcr .
Modificare con qualsiasi editor di testo il file $HOME/.xchat2/buduscript/MC.mcr in modo che da così:/budus pipe_script_silent $HOME/$mxchat_path/buduscript/buduscript_script__multicommand.sh $mnick $mservername \($1-\)diventi così:
/budus pipe_script_silent $HOME/$mxchat_path/buduscript/buduscript_script__multicommand.sh \($mnick\) \($mservername\) \($1-\)A parte questa modifica, che è necessaria solo se si utilizzano nickname contenenti simboli di punteggiatura o comunque non solo lettere e numeri ([, ], |, {, }, ecc...), non è stato modificato nient'altro, per il momento la versione 3.0.32 si sta comportando molto bene :proud:

BuDuS
06-10-2007, 10:05
E' stato riscontrato che, nell'uso intensivo delle sentinelle, lo script poteva occupare abnormi quantità di memoria.

Tale comportamento anomalo era particolarmente evidente quando si utilizza il BOT, perché quest'ultimo fa ampio uso delle sentinelle per funzionare.

Se si ha l'abitudine di frequentare molti canali (oltre 3), sono attivate sentinelle che fanno uso di "multi-comandi" e si tende a lasciare X-Chat perennemente connesso, è facile che lo script vada ad allocare anche centinaia di Mb di memoria, rallentando pesantemente tutto il sistema; ciò è maggiormente evidente nell'uso del BOT dato che, anche se magari monitora un solo canale, deve gestire un tale numero di sentinelle che facilmente può manifestare il problema in modo pesante.

Dopo un attento profiling sull'uso della memoria, il bug è stato individuato e risolto, quindi consiglio di aggiornarsi, anche in virtù del fatto che, a parte questo problema, è l'unica differenza rispetto alla versione 3.0.32 e già quest'ultima si è dimostrata una versione particolarmente stabile.

BuDuS
21-10-2007, 21:42
Grazie alla segnalazione di un gentile utente che ringrazio (tnx orione :okay:) ho individuato un altro bug che causava uso abnorme di memoria ram.

Il problema si verificava esclusivamente nel momento in cui si andava ad utilizzare il sistema di IGNORE di X-Chat/BuDuScRiPt.

Infatti immagino che, coloro i quali non fanno uso di IGNORE, non si siano accorti di nulla, viceversa si potevano avere incrementi nell'uso della ram anche molto consistenti, nell'ordine delle centinaia di Mb nel giro di poche ore :sospiro:

Ora il problema, con la versione 3.0.34, e' stato risolto, invito quindi ad eseguire opportuno aggiornamento.

BuDuS
18-09-2008, 00:25
Ciao Budus. Passando da Mirc ad X-Chat sono rimasto sorpreso dalla funzione multiserver, a me utilissima. Ho scelto X-chat dopo aver provato IceChat che è veramente un polmone. Però c'è una gran carenza di script. Considera che io prima usavo pizza40 e mi trovavo benissimo.
Praticamente ti sto chiedendo se ti è possibile creare uno script per X-Chat che consenda di mandare un messaggio a tutti gli utenti in un canale, di mandare un messaggio a tutti gli utente non OP di un canale, Il classico messaggio a chi entra nel canale ed infine il messaggio automatico nella chat pubblica del canale con possibilità di scegliere l'intervallo di tempo. Fidati che sarebbe un plugin molto ben accetto. Sarei disposto a pagartelo. E' possibile poi avere una lista autojoin per ogni scheda server? Fammi sapere per favore. X-Chat è veramente buono ma troppo povero di funzioni.

mmm, se aprivi un post era meglio, mi sono accorto di questo mex "per sbaglio" :sospiro: (non mi ha mandato una mail di avviso, niente, neanche quando mi sono loggato non ha fatto salti mortali per avvisarmi ....)

Cmq, veniamo ai problemi:
1) Mandare un mex a tutti gli utenti di un canale.
Questo già lo fa, vedi: /budus alluser

2) Mandare un mex a tutti gli OP di un canale.
Non c'è un comando che lo fa direttamente, come "alluser", per intenderci, tuttavia è possibile implementarlo tramite macro/script esterno.

Le macro sono i file con estensione .mcr che contengono semplicemente, per ogni riga, un comando IRC/X-Chat/BuDuScRiPt.

Le macro consentono l'uso di variabili; ad esempio abbiamo che $mdatabase viene sostituita con il percorso ad un file contenente la lista di TUTTI gli utenti presenti nel database dello script (cioè gli utenti di tutti i canali di tutti i servers collegati). Questo database è formattato in un certo modo e non è affatto difficile con dei "grep" estrapolare solo gli OP di un determinato canale su un certo server (la macro offre infatti possibilità di usare variabili come $mchannel e $mservername.

In sostanza la macro andrebbe a chiamare uno script bash passandogli i giusti parametri (impostati proprio dalle variabili).

Se riesco provo a fare qualcosa io stesso, ma se ti diverte fare questo tipo di cose posso darti supporto per realizzare la cosa tu stesso :proud:

3) Il messaggio per chi entra nel canale già si fa in tutte le salse e proprio qui sul forum mi pare di aver scritto dei post che spiegano come fare.
La cosa più semplice parte da:
/event add 0 jchannel '#nomecanale:irc.nomeserver.net'='$channel:$server ' /SAY Ciao $ru, benvenuto in $channel !\;/KICK $ru si, però adesso togliti dai piedi, lol !
dove chiaramente #nomecanale e irc.nomeserver.net vanno opportunamente sostituite.

4) Questo è già più complicato da fare del (3) ma tramite macro/script si fa, anzi, è già fatto: forse non lo hai notato ma lo script può essere trasformato in BOT e, tra le parecchie cose, c'è appunto il benvenuto per chi entra (3) e l'invio di un mex ogni tot o in modo specifico a quelli che entrano, ecc...

Alcune cose si possono importare dagli script MIRC ma non devono essere "troppo complicate"; quelle sopra lo sono troppo, si puo' importare roba come "messaggi colorati" e poco oltre. Anche in questo caso sul forum c'e' un post dove descrivo la cosa, penso la puoi trovare interessante.

Sul forum puoi chiedere quello che vuoi, ma non e' che lo leggo spessisimo .... e' pero' certo che io rispondo prima o poi :D