Recycled-IRC
http://recycled-irc.net/forum/

[mIRC] StatusBoT
http://recycled-irc.net/forum/viewtopic.php?f=5&t=1188
Page 1 sur 1

Auteur:  Falistos [ Jeu Oct 02, 2008 8:18 pm ]
Sujet du message:  [mIRC] StatusBoT

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.

Page 1 sur 1 Heures au format UTC + 1 heure
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/