Devo fare una premessa: non ho mai usato mIRC !
La mia esperienza IRC è iniziata con XChat, un noto Client IRC per Linux (ma anche per Windows e so che esiste un pseudo-porting per MAC OS X chiamato XChat Aqua o qualcosa del genere), nell’ormai lontano 1998 e lì è rimasta fino ad oggi.
All’inizio ero un’autentica mosca bianca, solo io usavo Linux, solo io usavo XChat; tutti gli altri usavano questo blasonatissimo mIRC o i cosiddetti Script basati su esso (cioè delle personalizzazioni, anche forti, di aspetto e funzionalità).
Ecco io, per XChat, ho tentato di creare una forte personalizzazione che includesse funzionalità paragonabili a quelle che vedevo sul mIRC (più che altro me le immaginavo, vedendo il risultato nel canale di quello che facevano gli altri).
Trovo questa premessa doverosa perché, chi finisce qui, immagino sia evidente stia cercando una soluzione per Linux simile a quella cui era abituato su Windows e, a scanso di equivoci, lo dico chiaramente: BuDuScRiPt (così si chiama il mio Script) non è neanche lontanamente somigliante al mIRC !
Questo, appunto, perché io mai ho visto com’è il mIRC e, soprattutto, XChat non assomiglia per nulla ad esso, sia nell’aspetto che nelle possibilità di personalizzazione.
A livello di interfaccia XChat lo si può personalizzare abbastanza, ma probabilmente non come mIRC. A livello di funzionalità, non saprei, probabilmente è comunque inferiore, anche se ha un pregio che me lo fa preferire nettamente al mIRC e a tutti i client che seguono la stessa filosofia (KVIRC, tanto per citare la concorrenza di XChat): supporta, al fine di estenderne le funzionalità, numerosi linguaggi di programmazione standard, potenti, efficienti e performanti.
In pratica, imparare a personalizzare XChat, significa imparare un linguaggio di programmazione che non è fine a se stesso (come in mIRC o KVIRC) e rappresenta un bagaglio conoscitivo che potrà essere sfruttato altrove.
Detto questo ora il problema resta come sollevare di morale il lettore che è arrivato fin qui per cercare un’alternativa a mIRC su Linux !
È vero, lo si può emulare con Wine, ma secondo me è una porcheria, tanto vale restare su Windows. A me piace usare Linux e i suoi programmi. Ecco che non mi resta che offrirvi una panoramica di quello che fa il mio Script – le cose salienti – e come le fa, giusto per dare un’idea di cosa ci si può aspettare, senza dolorose delusioni.
Normalmente XChat si presenta così come l’immagine qui a destra (grosso modo) ed è un qualcosa di veramente scarno. È poi una caratteristica alla base del su
o successo perché è molto semplice ed intuitivo da utilizzare, ha pochi fronzoli, è leggerissimo (quindi funziona egregiamente su hardware datato) e così via.
A livello di aspetto, il mio script, lo lascia inalterato completamente perché, l’unica cosa che va a fare, è aggiungere dei menu con i quali si possono usare tutti i comandi che sono poi anche disponibili al prompt del client (come tutti i programmi per chattare su IRC, anche XChat e il mio Script prevedono una lunga serie di comandi da digitare a mano, se si preferisce fare così).
Se si utilizza un hardware x86_32 (quindi non a 64bit) e Linux come sistema operativo (che è l’unico supportato nel momento in cui scrivo), lo script (il cui nome è BuDuScRiPt) si installa con il seguente comando (incollato proprio dove si scrive per chattare con XChat):
/EXEC wget http://digilander.libero.it/udasoft/Software/Linux/buduscript/buduscript_3566_2808.tar.gz && tar xvzf buduscript_3566_2808.tar.gz -C $HOME/.xchat2 && cd $HOME/.xchat2/buduscript && ./install.sh
Chiaramente potrebbe essere una versione obsoleta ma, non c’è problema, perché lo script ha la capacità di auto-aggiornarsi. Se, invece, il proprio hardware/sistema operativo non sono quelli citati sopra, bisogna necessariamente fare una visita alla pagina dedicata a BuDuScRiPt.
Riavviato XChat ci si dovrebbe trovare con un aspetto che, come minimo, è simile a quello della foto a fianco;
dico come minimo perché i menu aggiunti dipendono da quello che è installato nel sistema, da ciò che lo script riesce ad individuare ed, infine, da eventuali personalizzazioni ulteriori effettuate dall’utente (sia tramite il mio script, sia tramite l’uso di altri plugin disponibili per XChat, ce ne sono parecchi).
Chi è abituato allo scarno XChat potrebbe spaventarsi dal ricevere, di botto, numerosi messaggi di avvertimento, consigli, ecc… . Ebbene, aldilà del fatto che è una situazione che capita appena si installa/aggiorna lo script, è comunque da sottolineare come sia possibile disattivare tutte le funzionalità di BuDuScRiPt, fino – teoricamente – a farlo sparire !
In altri termini: se qualcosa da fastidio, c’è sempre modo di eliminarlo, nel menu è quasi sempre previsto un apposito comando e, alla peggio, c’è nella FAQ (ed, eventualmente, lo aggiungo se non c’è, basta chiedermelo !).
Ora iniziamo a fare una carrellata delle principali funzionalità.
mIRC Menu
È prevista la possibilità di importare dei file .INI di mIRC che vanno a personalizzare il menu di XChat allo stesso modo di come lo facevano sul client per cui erano stati realizzati.
Nel menu “BuDuScRiPt -> Avanzate” è possibile trovare il comando che apre un’apposita finestra che fornisce le istruzioni per guidare l’utente nell’importazione di un file INI del mIRC.
La sintassi dei file INI mIRC è piuttosto banale e, chi ha un minimo di esperienza in merito, potrà facilmente crearsi una propria personalizzazione.
In linea di massima abbiamo che il menu ha un nome principale (quello che vedremo nella barra in alto di XChat) che, una volta cliccato, aprirà il menu contenente voci di menu o submenu. Quello che segue è un piccolo esempio autoesplicativo:
.Nome1_SubMenuLivello1 ..Comando1_SubMenuLivello1:ECHO Hai lanciato il primo comando ..Comando2_SubMenuLivello1:ECHO Hai lanciato il secondo comando ..- ..Comando3_SubMenuLivello1:ECHO Hai lanciato il terzo comando .Nome2_SubMenuLivello1 ..Comando1_SubMenuLivello1:ECHO Hai lanciato il quarto comando ..Nome2_SubMenuLivello2 ...Comando1_SubMenuLivello2:ECHO Hai lanciato il quinto comando ...Comando2_SubMenuLivello2:ECHO Hai inserito la frase $$?="Inserisci una frase" ...Comando3_SubMenuLivello2:ECHO Hai lanciato il comando nel canale # ...Comando4_SubMenuLivello2:ECHO Hai lanciato il comando selezionando l'utente $$1 ...Comando5_SubMenuLivello2:ECHO Hai lanciato il sesto comando insieme | ECHO al settimo comando .Comando1:ECHO Hai lanciato l'ottavo comando | budus help
È solo un piccolo esempio, si può fare anche parecchio altro, è giusto per dare un’idea.
XDCC MANAGER
È il sistema con il quale si possono scaricare, dal Network IRC, file di ogni genere. Oltre a BitTorrent, eMule e i vari siti di file sharing, il sistema XDCC è un mezzo sufficientemente pratico per cercare e scaricare contenuti, ora di facile accesso anche su piattaforma linux.
Ho anche scritto un apposito articolo che tratta l’argomento in modo specifico; invito a leggerlo chi è interessato a questo particolare aspetto. Molti utenti che vengono dal mondo Windows/mIRC cercano proprio questo tipo di soluzione anche su Linux: non sarà proprio come quella cui erano abituati, ma penso sia meglio di niente.
Nello script si trova il menu “XDCC” dal quale è possibile fare ricerche, lanciare il download, gestire la coda dei download, la configurazione, i Motori di Ricerca e quant’altro serva.
eSpeak – Sintesi Vocale
È possibile “farsi leggere” quello che avviene nel canale dal Sintetizzatore Vocale; non è una cosa pensata solo per gli ipovedenti, vi garantisco che è molto comoda: consente di seguire una discussione anche mentre si sta facendo altro !
All’inizio fa un po’ senso ma poi, fatta l’abitudine, sono convinto sia una cosa di una comodità pazzesca.
PasteBin System
Su IRC è abbastanza facile trovare un canale nel quale chiedere supporto (aiuto su un qualche argomento, in genere, di tipo informatico); una cosa che però, in genere, è poco gradita è quella di incollare, direttamente nel canale, il risultato di una qualche elaborazione, andando ad intasare il canale stesso e, spesso, provocando l’arrabbiatura dell’operatore che procede ad immediata espulsione.
È quindi consuetudine utilizzare un sistema che raccolga il testo che si vorrebbe condividere con gli altri e fornire a questi solo un link con il quale essi possano visualizzarlo: questo sistema è comunemente chiamato pastebin o nopaste.
In BuDuScRiPt viene offerta la possibilità di automatizzare la creazione di questo link; in pratica, lanciato il comando, si apre una finestra, si incolla il testo, si preme il pulsante di invio e, nel canale, appare automaticamente il link necessario per visualizzare quel testo, senza scatenare l’arrabbiatura di nessuno.
MACRO
Le MACRO Parametriche di BuDuScRiPt sono il sistema con il quale è possibile automatizzare l’esecuzione di procedure ripetitive su IRC.
A differenza delle altre tipologie di chat, su IRC c’è la consuetudine di “offrire servizi” o comunque capita spesso di dover ripetere alcune manovre con una certa frequenza.
Le MACRO consentono di assolvere a questo compito, ma non solo: essendo parametriche, offrono all’utente la flessibilità necessaria per adattarsi a situazioni diverse.
Ad esempio: si vuole commutare lo stato corrente in AWAY e, contemporaneamente, cambiare nickname in modo che rispecchi il motivo per il quale ci si assenta.
Ecco, potremmo fare una macro “away” che, fornendo una parola chiave che identifica il motivo dell’assenza, cambia nickname di conseguenza (ex: “BuDuS_pranzo“).
Events Manager
È la tipica esigenza dell’utente IRC: automatizzare un’azione al verificarsi di un determinato evento.
Partendo dal banale – e sconsigliato ! – saluto automatico quando si entra in un canale, fino a lanciare una qualche procedura nel momento in cui si verifica una determinata situazione, ad esempio: qualcuno fa il furbo, ci butta fuori dal canale e vogliamo ri-entrare in automatico togliendogli il privilegio di poterlo fare ancora, o cose del genere.
Private Killer
Spesso capita, soprattutto entrando in certe tipologie di canali, di essere subissati da valange di messaggi privati indesiderati, sostanzialmente dell’IRC SPAM.
Il PK permette di eliminare il problema, consentendo all’utente di creare una whitelist (utenti sicuramente abilitati) e una blacklist (utenti sicuramente da inibire), con cui lasciare allo script il compito di accettare o rifiutare in automatico i messaggi fastidiosi, in modo molto simile a quanto avviene con le e-mail.
Bad Word, Bad Nick e Bad Channel
Tradotto starebbe per: Parola cattiva, Nickname Cattivo e Cattivo Canale.
Questa funzionalità è utile a quegli operatori che, dovendo amministrare un canale, desiderano prendere provvedimenti automatici nel momento in cui:
- Un utente usa parolacce o frasi non consentite (insulti, bestemmie, ecc…).
- Un utente usa il proprio nickname per veicolare messaggi non consentiti.
- Un utente è presente in canali non graditi.
Lo script farà la guardia anche in nostra assenza, grazie a questa funzionalità.
FILTRO
In modo simile ai due sistemi esposti precedentemente (PK e Bad “qualcosa”) viene offerta la possibilità di censurare determinati contenuti.
Qui si può andare dal semplice eliminare i codici colori, riportando tutto in bianco e nero fino ai più drastici filtri dedicati ad inibire la lettura di frasi, utenti o interi canali.
Ci si chiederà cosa serve inibire un intero canale. Ebbene, su IRC c’è la consuetudine di scambiarsi il JOIN ma, non per questo, si vuole realmente partecipare a tutti i canali. In particolari casi (ad esempio quando si usano BOT), si vuole limitare l’appesantimento del client (soprattutto quando si joinano molti canali o con molti utenti).
Sia chiaro che il sistema non inibisce la fonte, ma solo la ricezione; in altri termini: gli altri leggeranno comunque quello che a chi usa il filtro viene censurato.
Player Multimediali
BuDuScRiPt supporta diversi player multimediali, tra i quali: Amarok, Exaile, Rhythmbox, Audacious, Banshee e Last.fm .
Oltre a consentire di aprirli, chiuderli e comandarli, offre una classica funzionalità molto richiesta nel mondo IRC: l’annuncio della canzone in ascolto.
È possibile personalizzare l’annuncio in diversi modi, anche in base alla tipologia di media riprodotto; ad esempio, se si tratta di uno streaming, si può annunciare il titolo corredato da un video su YouTube mentre, se si tratta di un file MP3, si possono utilizzare i TAG di quest’ultimo.
Plugin aggiuntivi
Sempre tramite menu è possibile installare, aggiornare e addirittura rimuovere dei componenti aggiuntivi che vanno ulteriormente a personalizzare XChat e/o BuDuScRiPt.
Nel momento in cui scrivo (quindi potrebbero essere variati) abbiamo:
Il Setup Grafico è un modo alternativo di configurare lo script; anziché tramite menu, si utilizza un’interfaccia grafica che, per ogni aspetto del plugin, consente di eseguire l’opportuna variazione aiutati dalla guida contestuale.- MaxQuery è un ulteriore sistema di protezione, oltre al PK, che inibisce l’apertura di finestre private oltre a quello che si riesce a tollerare; se – fortunatamente – si è particolarmente richiesti, facile si arrivi al punto che non si riesce a sostenere il dialogo privato con ulteriori persone. Questo plugin ne inibisce l’apertura con un auto-messaggio.
- IgnoreList è un plugin che può risultare utile quando si ha l’abitudine di mettere in stato di IGNORE degli utenti indesiderati; utilizzando maschere di ignore troppo generiche, facile che si vada a colpire anche utenti che invece non si vuole ignorare. Questo plugin offre la possibilità di capire chi è stato ignorato.
- RemoveColors può essere un’alternativa semplice al FILTRO, per il solo scopo di rimuovere i codici colore dai testi.
- AutoAway è il classico sistema che commuta in automatico lo stato di AWAY (lontananza) nel momento in cui si risulta inattivi per un certo lasso di tempo.
EList è sia un plugin che un applicativo grafico che, integrandosi in BuDuScRiPt, consente di gestire un database utilizzato dallo script per associare informazioni agli utenti. Tra le varie funzionalità, infatti, c’è anche quella di riconoscere gli utenti (anche se anonimi) e associare ad essi informazioni mnemoniche che aiutino a capire di chi si tratta.- Advanced Menu è un menu aggiuntivo che contiene numerosi comandi, specifici per i server che supportano particolari comandi avanzati (ChanServ, NickServ, MemoServ e così via), ma non solo: offre la possibilità di governare il BOT (vedere più avanti) e moltissime altre cose.
- Bitlbee è un sistema che consente, attraverso IRC, di accedere a network di messaggistica istantanea diversi, come ad esempio MSN e Yahoo.
- BOT. Non si tratta di un plugin, ma di una profonda personalizzazione di BuDuScRiPt il cui scopo è quello di trasformare XChat in un vero e proprio BOT, ricco di servizi e al quale possono essere aggiunti sia ulteriori pacchetti di personalizzazione (vedi oltre) sia proprie creazioni (è corredato da procedure che aiutano l’utente nella creazione di comandi personalizzati).
- Per il BOT sono previste queste specifiche personalizzazioni:
- BOT Games; si parte dal classico trivia, fino ai giochi di parole e addirittura alla roulette francese (non so nemmeno se esistano altri che fanno questo gioco !)
- Statistiche; per conoscere le statistiche d’uso del proprio canale.
- BOTServ; per offrire file ai propri utenti, in modo analogo al sistema XDCC.
- Meteo
- Oroscopo
Gestione Files di LOG
Per default XChat non attiva i LOG delle conversazioni; io invece lo trovo abbastanza utile, capiterà sempre che si vuole recuperare qualcosa da quella tal conversazione, ecc…
Tuttavia, soprattutto se si frequentano canali molto affollati o comunque rumorosi, facile che i file di LOG raggiungano rapidamente dimensioni consistenti, diventando difficili da maneggiare.
Tramite lo script è invece semplice gestirli, facendo ricerche e archiviandoli (anche in automatico, quando superano una certa dimensione).
*****
Basta, non mi voglio dilungare ulteriormente, anche se ci sarebbe ancora molto da scrivere; il mio lo considero un plugin full-featured, nel senso che implementa da solo numerose funzionalità che altrimenti sarebbero disponibili installando decine di plugin.
È quindi chiaro che, almeno inizialmente, l’impatto può essere un po’ ostico (tante cose, in un mondo tutto nuovo) e, non lo nascondo, anche un po’ problematiche per via del fatto che la semplicità di utilizzo è sicuramente migliorabile (nonostante i mezzi a mia disposizione siano poi quelli che sono) e che, spesso, certe cose – ahimè – non vadano proprio (BUG).
I miei utenti però sanno che offro notevole disponibilità, sia ad implementare cose nuove sia a sistemare quelle che non vanno, è sufficiente segnalarmele (ho pure un Forum dedicato allo script).
Bene, spero di aver convinto a fare almeno una prova; se proprio non piace, niente paura, ho previsto persino il comando di rimozione automatica !