Bonjour à tous,
Je vous présente un petit script que j'ai utilisé pour créer une liste d'utilisateurs pour un des mes serveurs IRC.
Je mettrais régulièrement à jour ce sujet, en synchronisation avec les mises à jour sur le serveur officiel.
Tout d'abord, les pré-requis :
- Un serveur IRC
- Un mIRC
- Un serveur Web
Sachez qu'il est préférable d'avoir Windows dans ce cas (mIRC étant disponible uniquement sous celui-ci), mais WINE permet de contourner cela.
Le serveur Web et le mIRC doivent être sur le même serveur.
En effet, StatusBot écrira dans une page html, ce qui nécessite donc un serveur web à disposition (afin de consulter la liste des pseudos connectés).
Il suffira de coller dans l'éditeur de scripts de mIRC le code fourni, et ensuite configurer StatusBot, via le fichier statusbot.conf (commenté pour vous aider).
StatusBot mettra à jour la page HTML à chaque action influant le nicklist (grades, part, join, quit, ...), en personnalisant la mise en forme HTML.
StatusBot gère les modes +v,+o,+h,+q,+a.
La première version publique (0.4.2) devrait apparaître d'ici peu.
Pour le moment, je vous file la version 0.4.0, qui est très basique, et doit être configuré directement dans le script.
Code:
; ===============================
; StatusBoT - Par Falistos
; Version 0.4.0
; ===============================
on *:NICK:{
update_status #channel
}
on *:JOIN:#channel:{
unset %fake
update_status #channel
}
on *:PART:#channel:{
unset %fake
set %fake $nick
update_status #channel
on *:QUIT:{
unset %fake
set %fake $nick
update_status #channel
}
alias update_status {
var %curs = 1
var %nicks = $nick($1,0)
while (%nicks >= %curs) {
if (%curs == 1) {
if ($nick($1,%curs) != %fake) {
if (~ isin $nick($1,%curs).pnick) { set %result <U><FONT color=#FF6600><b>~ $+ $nick($1,%curs) $+ </b></FONT></U> }
elseif (& isin $nick($1,%curs).pnick) { set %result <FONT color="green"><b>& $+ $nick($1,%curs) $+ </b></FONT> }
elseif ($nick($1,%curs) isop $1) { set %result <FONT color="red"><b>@ $+ $nick($1,%curs) $+ </b></FONT> }
elseif ($nick($1,%curs) ishop $1) { set %result <FONT color="blue"><b>% $+ $nick($1,%curs) $+ </b></FONT> }
elseif ($nick($1,%curs) isvoice $1) { set %result <FONT color="purple"><b>+ $+ $nick($1,%curs) $+ </b></FONT> }
else { set %result <FONT color=#000066><b> $+ $nick($1,%curs) $+ </b></FONT> }
}
}
else {
if ($nick($1,%curs) != %fake) {
if (~ isin $nick($1,%curs).pnick) { set %result %result $+ , <U><FONT color=#FF6600><b>~ $+ $nick($1,%curs) $+ </b></FONT></U> }
elseif (& isin $nick($1,%curs).pnick) { set %result %result $+ , <FONT color="green"><b>& $+ $nick($1,%curs) $+ </b></FONT> }
elseif ($nick($1,%curs) isop $1) { set %result %result $+ , <FONT color="red"><b>@ $+ $nick($1,%curs) $+ </b></FONT> }
elseif ($nick($1,%curs) ishop $1) { set %result %result $+ , <FONT color="blue"><b>% $+ $nick($1,%curs) $+ </b></FONT> }
elseif ($nick($1,%curs) isvoice $1) { set %result %result $+ , <FONT color="purple"><b>+ $+ $nick($1,%curs) $+ </b></FONT> }
else { set %result %result $+ ,<FONT color=#000066><b> $nick($1,%curs) $+ </b></FONT> }
}
}
inc %curs
}
set %result <FONT SIZE=2><b>Sur #channel : </b> $+ %result $+ </font>
if ($exists(C:\nicks.html) == $true) { remove C:\nicks.html }
write C:\nicks.html %result
unset %result
}
Il suffit de remplacer #channel par le salon à écouter, C:\nicks.html par le chemin vers la page html à éditer
A bientôt.