Record d'audiance

Contenu du snippet

un petit add-on pour enregistrer les records d'users sur vos salons IRC.
j'ai fait une petite recherche et j'en trouvé que 2 sur le site, donc bon
j'ai essayé d'en faire un en prenant en compte les critiques deja existante.
http://www.ircfr.com/code.aspx?ID=22143 <-- juki_webmaster
http://www.ircfr.com/code.aspx?ID=29620 <-- greg13127

Source / Exemple :


ON 1:LOAD:World_mIRC.PuB
ON 1:UNLOAD:World_mIRC.PuB

menu menubar,channel { 
  -
  <@> Record User <@>:/dialog -m Record_table Record_table 
  -
}

dialog Record_table {
  title "<@> Système de record <@>"
  size -1 -1 185 170
  option dbu
  box "Ajouter salon", 1, 5 5 175 35
  text "Veuillez préciser le nom de salon à surveiller (sans oublier le #)", 2, 10 15 165 8
  edit "", 3, 10 25 60 10
  combo 4, 115 25 60 80, size drop
  button "Valider", 5, 75 25 35 10, flat
  box "Liste des Salons sous surveillance", 6, 5 45 175 105
  text "", 7, 10 55 80 8, center
  list 8, 10 65 80 40, sort size vsbar
  button "Supprimer le salon", 9, 10 110 80 12, flat
  radio "Actif", 10, 108 53 30 8, group
  radio "Inactif", 11, 140 53 30 8
  text "Actuellement", 12, 100 64 40 8
  edit "", 13, 140 63 35 10, read center
  text "Record Users", 14, 100 75 40 8
  edit "", 15, 140 74 35 10, read center
  text "Record Date", 16, 100 86 40 8
  edit "", 17, 140 85 35 10, read center
  text "Record Heure", 18, 100 97 40 8
  edit "", 19, 140 96 35 10, read center
  button "RAZ", 20, 100 110 75 12, flat
  check "Désactiver les annonces des nouveaux record on-line", 21, 10 125 165 10
  check "Désactiver les commandes !record - !nombre - !count", 22, 10 135 165 10
  button "Fermer", 23, 5 155 175 12, default flat ok
}

on *:dialog:Record_table:*:*:{
  if ($devent == sclick) { 
    if ($did == 5) {
      if (($did(Record_table,3).text) && ((!$did(4).seltext) || ($did(4).seltext == Autre Salon ...))) {
        if ($left($did(Record_table,3).text,1) != $chr(0035)) { if ($input(Vous devez mettre un $chr(0035) devant le nom du salon (case de gauche),308,Warning)) { halt } }
        else { var %ac = $did(Record_table,3).text }
      }
      elseif ((!$did(Record_table,3).text) && ($did(4).seltext) && ($did(4).seltext != Autre Salon ...)) { var %ac = $did(4).seltext } 
      else { if ($input(Pour enregistrer un salon vous devez soit taper son nom (avec le $chr(0035) $+ ) dans la case de gauche - ou alors - le choisir parmi ceux de la liste de droite (mais pas les 2),308,Warning)) { halt } } 
      if (!$istok($readini(Record.ini,CHANNEL,Liste),%ac,32)) {
        if ($me ison %ac) {
          writeini -n Record.ini CHANNEL Liste $readini(Record.ini,CHANNEL,Liste) %ac 
          writeini -n Record.ini %ac Etat ON 
          writeini -n Record.ini %ac RecordUser $nick(%ac,0)
          writeini -n Record.ini %ac RecordDate $date 
          writeini -n Record.ini %ac RecordHeure $time
          writeini -n Record.ini %ac Annonce ON
          writeini -n Record.ini %ac Commande ON
          did -u Record_table 10,11 | did -r Record_table 13,15,17,19 | chan.load
          var %ru = $readini Record.ini %ac RecordUser, %rd = $readini Record.ini %ac RecordDate, %rh = $readini Record.ini %ac RecordHeure
          echo -a 7[RECORD] 4» 2Record actuel sur6 %ac :4 %ru Users2 le [12 $+ %rd $+ ]2 à [10 $+ %rh $+ ]
        }
        else {
          writeini -n Record.ini CHANNEL Liste $readini(Record.ini,CHANNEL,Liste) %ac 
          writeini -n Record.ini %ac Etat ON 
          writeini -n Record.ini %ac RecordUser 0
          writeini -n Record.ini %ac RecordDate 00/00/0000 
          writeini -n Record.ini %ac RecordHeure 00:00:00
          writeini -n Record.ini %ac Annonce ON
          writeini -n Record.ini %ac Commande ON
          did -u Record_table 10,11 | did -r Record_table 13,15,17,19 | chan.load
        } 
      }
      else { if ($input(Le salon %ac est déjà enregistré dans la liste,308,Warning)) { halt } }
    }
    if ($did(8).seltext) {
      did -e Record_table 9,10,11,20,21,22
      if ($readini(Record.ini,$did(8).seltext,Etat) == ON) { did -c Record_table 10 | did -u Record_table 11 } | else { did -c Record_table 11 | did -u Record_table 10 }
      if ($me ison $did(8).seltext) { did -o Record_table 13 1 $nick($did(8).seltext,0) } | else { did -o Record_table 13 1 ... }
      did -o Record_table 15 1 $readini(Record.ini,$did(8).seltext,RecordUser) 
      did -o Record_table 17 1 $readini(Record.ini,$did(8).seltext,RecordDate) 
      did -o Record_table 19 1 $readini(Record.ini,$did(8).seltext,RecordHeure)
      if ($readini(Record.ini,$did(8).seltext,Annonce) == ON) { did -u Record_table 21 } | else { did -c Record_table 21 }
      if ($readini(Record.ini,$did(8).seltext,Commande) == ON) { did -u Record_table 22 } | else { did -c Record_table 22 }
    }
    if ($did == 9) {
      remini Record.ini $did(8).seltext
      var %lc = $readini Record.ini CHANNEL Liste, %lc2 = $deltok(%lc,$findtok(%lc,$did(8).seltext,1,32),32)
      if (%lc2) { writeini -n Record.ini CHANNEL Liste %lc2 } | else { remini Record.ini CHANNEL }
      did -d Record_table 8 $did(8).sel | did -u Record_table 10,11,21,22 | did -r Record_table 13,15,17,19 | did -b Record_table 9,10,11,20,21,22
      did -o Record_table 7 1 Nombre total de Chan :: $did(8).lines 
    }
    if ($did == 10) { writeini -n Record.ini $did(8).seltext Etat ON | did -c Record_table 10 | did -u Record_table 11 | set %Record.Chan $did(8).seltext | .record.view }
    if ($did == 11) { writeini -n Record.ini $did(8).seltext Etat OFF | did -c Record_table 11 | did -u Record_table 10 }
    if ($did == 20) { 
      writeini -n Record.ini $did(8).seltext RecordUser 0 
      writeini -n Record.ini $did(8).seltext RecordDate 00/00/0000 
      writeini -n Record.ini $did(8).seltext RecordHeure 00:00:00 
      did -o Record_table 15 1 $readini(Record.ini,$did(8).seltext,RecordUser) 
      did -o Record_table 17 1 $readini(Record.ini,$did(8).seltext,RecordDate) 
      did -o Record_table 19 1 $readini(Record.ini,$did(8).seltext,RecordHeure)
    }
    if ($did == 21) { 
      if ($readini(Record.ini,$did(8).seltext,Annonce) == ON) { writeini -n Record.ini $did(8).seltext Annonce OFF | did -c Record_table 21 }
      else { writeini -n Record.ini $did(8).seltext Annonce ON | did -u Record_table 21 }
    }
    if ($did == 22) { 
      if ($readini(Record.ini,$did(8).seltext,Commande) == ON) { writeini -n Record.ini $did(8).seltext Commande OFF | did -c Record_table 22 }
      else { writeini -n Record.ini $did(8).seltext Commande ON | did -u Record_table 22 }
    }
  }
  if ($devent == init) { if ($did == 0) { did -b Record_table 9,10,11,20,21,22 | chan.load | chan.liste } }
}

ON *:JOIN:*:{ 
  if (($istok($readini(Record.ini,CHANNEL,Liste),$chan,32)) && ($readini(Record.ini,$chan,Etat) == ON)) {
    if ($nick == $me) { set %Record.Chan $chan | /timer1 1 3 .record.view }
    else { 
      if ($nick($chan,0) > $readini(Record.ini,$chan,RecordUser)) {
        writeini -n Record.ini $chan RecordUser $nick($chan,0) 
        writeini -n Record.ini $chan RecordDate $date 
        writeini -n Record.ini $chan RecordHeure $time
        if ($dialog(Record_table)) {
          did -o Record_table 15 1 $readini(Record.ini,$did(8).seltext,RecordUser) 
          did -o Record_table 17 1 $readini(Record.ini,$did(8).seltext,RecordDate) 
          did -o Record_table 19 1 $readini(Record.ini,$did(8).seltext,RecordHeure)
        }     
        if ($readini(Record.ini,$chan,Annonce) == ON) {
          var %ru = $readini Record.ini $chan RecordUser, %rd = $readini Record.ini $chan RecordDate, %rh = $readini Record.ini $chan RecordHeure
          msg $chan 7[RECORD] 4» 2Nouveau record sur6 $chan 2avec4 %ru Users2, le [12 $+ %rd $+ ]2 à [10 $+ %rh $+ ] 
        }
      }
    }
  }
}

ON *:TEXT:*:*:{ 
  if (($istok($readini(Record.ini,CHANNEL,Liste),$chan,32)) && ($readini(Record.ini,$chan,Commande) == ON)) {
    if ($1 == !record) { 
      var %ru = $readini Record.ini $chan RecordUser, %rd = $readini Record.ini $chan RecordDate, %rh = $readini Record.ini $chan RecordHeure
      msg $chan 2le record d'audiance sur6 $chan 2est de4 %ru Users2 depuis le [12 $+ %rd $+ ]2 à [10 $+ %rh $+ ] 
    }
    if ($1 == !nombre) { msg $chan 2il y a actuellement4 $nick(#,0) Users2 sur le salon }
    if ($1 == !count) { msg $chan 2je surveille actuellement4 $gettok($readini(Record.ini,CHANNEL,Liste),0,32) chan(s) } 
  }
}

alias -l chan.load {
  var %n = 1, %l = 0, %c = $gettok($readini(Record.ini,CHANNEL,Liste),1,32) 
  while (%c) { inc %l 1 | did -o Record_table 8 %l %c | inc %n 1 | var %c = $gettok($readini(Record.ini,CHANNEL,Liste),%n,32) }
  did -o Record_table 7 1 Nombre total de Chan :: $did(8).lines | return
}

alias -l chan.liste { 
  var %l = 1, %c = $chan(%l) | did -o Record_table 4 1 Autre Salon ...
  while (%c) { inc %l 1 | did -o Record_table 4 %l %c | var %c = $chan(%l) }
  return
}

alias -l record.view {
  if ($nick(%Record.Chan,0) > $readini(Record.ini,%Record.Chan,RecordUser)) {
    writeini -n Record.ini %Record.Chan RecordUser $nick(%Record.Chan,0) 
    writeini -n Record.ini %Record.Chan RecordDate $date 
    writeini -n Record.ini %Record.Chan RecordHeure $time 
    did -o Record_table 15 1 $readini(Record.ini,$did(8).seltext,RecordUser) 
    did -o Record_table 17 1 $readini(Record.ini,$did(8).seltext,RecordDate) 
    did -o Record_table 19 1 $readini(Record.ini,$did(8).seltext,RecordHeure)
    if ($readini(Record.ini,%Record.Chan,Annonce) == ON) {
      var %ru = $readini Record.ini %Record.Chan RecordUser, %rd = $readini Record.ini %Record.Chan RecordDate, %rh = $readini Record.ini %Record.Chan RecordHeure
      msg %Record.Chan 7[RECORD] 4» 2Nouveau record d'audiance sur6 %Record.Chan avec4 %ru Users2, le [12 $+ %rd $+ ]2 à [10 $+ %rh $+ ] 
    }
    unset %Record.Chan
  }
}

alias -l World_mIRC.PuB {
  echo -a 12(¯`'·.(¯`'·. _______________ .·'¯).·'¯)
  echo -a 4» 3Add-on Record User pour IRC 12- © - By Folken
  echo -a 4» 7Auteur 3:: Folken
  echo -a 4» 10Site 3:: http://www.pub-line.com/world.mirc/
  echo -a 12 (_.·'(_.·' ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ `'·._)`'·._)
}

Conclusion :


Je sais : j'ai bidouillé a fond les radio et check.
-> mais sinon fallait clicker dessus 2 fois pour que sa affiche vraiment le resultat.

Toutes les infos sont stockées dans un fichier .ini --> aucune variable encombrante !

walaaa, a vous de juger :)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.

Du même auteur (World_mIRC)