Tapavu systeme pour bot

Contenu du snippet

Salut , voila une nouvelle source ^^
Un TAPAVU SYSTEME ...
Tout le monde connait celà mais pour ceux qui ne connaissent pas le TAPAVU sert a se renseigner si une personne est venue sur le chat.
Ayant eu un script tapavu qui fonctionnait avec des variables (donc un gros bazar dans les variables) j'ai décidé de le refaire complètement .
Et , pourquoi pas , d'y rajouter des choses "utiles"

Explications détaillées : ^^
Quand une personne se connecte le TAPAVU SYSTEME va ajouter le jour et l'heure d'arrivée , le nombre total de connection sur le chat , l'heure d'arrivé en secondes depuis la date 1/1/70 (je crois) et création du temps total passé sur le chat.
Quand une personne change de pseudo celà se note aussi
quand une personne quitte le serveur , part du chat , est kickée , est bannie , déconnecte ou est killée TAPAVU SYSTEME va logguer les informations comme l'heure ou la personne quitte le chat (d'une facon ou d'une autre) et le temps resté sera ajouté au temps total
Pour les commandes :
Si une personne tape !tapavu mais que ce n'est pas le premier token alors il indique l'erreur (une erreur a cause des chats en java qui avec la couleur ne prennent pas le premier mot pour le premier token )
si elle tape !tapavu sans rien en token $2 alors on lui demande qui elle cherchait ^^
si elle tape !tapavu pour le bot ,; pour un pseudo connecté alors on lui indique "l'erreur"
sinon on fait une recherche dans le fichier et on indique ,si ca existe ,toutes les actions trouvées
ensuite on calcule le temps de la connection jusque la personne a quitté le chat
on le retourne dans le bon format si ces informations existent.
sinon on lui indique que la personne n'a pas été vu sur le chat depuis que le robot est connecté .(connecter le robot après avoir installé le script)

Il remplace le seen du bot de salon qui lui n'est pas très complet.

Source / Exemple :


;------------------- NOUVEAU TAPAVU SYSTEME -----------------------------------

;|||||||||||||||||| Arrivée sur le chat ||||||||||||||||||||

ON *:JOIN:#:{
 if ($nick == $me) {
  .set %bot.join Le $date à $time
  .writeini -n tapavu.ini $me JOIN %bot.join
 }
 else {
  .set %nick.join Le $date à $time
  .writeini -n tapavu.ini $nick JOIN %nick.join
  .set %join.dh $ctime
  .writeini -n tapavu.ini $nick HJOIN %join.dh
  .unset %join.dh
  if (!$readini(tapavu.ini,$nick,NBJOIN)) || ($readini(tapavu.ini,$nick,NBJOIN) != 0) {
   .set %nb.nick.join $readini(tapavu.ini,$nick,NBJOIN)
   .inc %nb.nick.join
   .writeini -n tapavu.ini $nick NBJOIN %nb.nick.join
   .unset %nb.nick.join
  }
  else { .writeini -n tapavu.ini $nick NBJOIN 1 }
 if ($readini(tapavu.ini,$nick,TOTALTIME) == $null) { .writeini tapavu.ini $nick TOTALTIME 0 }
 }
}

;|||||||||||||||||| Part du chat ||||||||||||||||||||

ON *:PART:#:{
 if ($nick == $me) {
  .set %bot.part Le $date à $time
  .writeini -n tapavu.ini $me PART %bot.part
 }
 else {
   .set %nick.part Le $date à $time
   .writeini -n tapavu.ini $nick PART %nick.part
   .set %part.dh $ctime
   .writeini -n tapavu.ini $nick HPART %part.dh
   .unset %part.dh
   .unset %nick.part
   .set %tempo.duree $calc($readini(tapavu.ini,$nick,HPART)-$readini(tapavu.ini,$nick,HJOIN))
   .set %tempo.duree.total $calc($readini(tapavu.ini,$nick,TOTALTIME)+%tempo.duree)
   .writeini tapavu.ini $nick TOTALTIME %tempo.duree.total
   .unset %tempo.duree
   .unset %tempo.duree.total
 }
}

;|||||||||||||||||| quitte le chat ||||||||||||||||||||

ON *:QUIT:{
 if ($nick == $me) {
  .set %bot.quit Le $date à $time Message de QUIT : $1-
  .writeini -n tapavu.ini $me QUIT %bot.quit
 }
 else {
  .set %nick.quit Le $date à $time Message de QUIT : $1-
  .writeini -n tapavu.ini $nick QUIT %nick.quit
  .set %quit.dh $ctime
  .writeini -n tapavu.ini $nick HQUIT %quit.dh
  .unset %quit.dh
  .unset %nick.quit
  .set %tempo.duree $calc($readini(tapavu.ini,$nick,HQUIT)-$readini(tapavu.ini,$nick,HJOIN))
  .set %tempo.duree.total $calc($readini(tapavu.ini,$nick,TOTALTIME)+%tempo.duree)
  .writeini tapavu.ini $nick TOTALTIME %tempo.duree.total
  .unset %tempo.duree
  .unset %tempo.duree.total
 }
}

;|||||||||||||||||| change de pseudo sur le chat ||||||||||||||||||||

ON *:NICK:{
  .set %old.nick $nick
  .set %nick.nick De $nick à $newnick Le $date à $time
  .writeini -n tapavu.ini %old.nick NICK %nick.nick
  .set %nick.dh $ctime
  .writeini -n tapavu.ini %old.nick HNICK %nick.dh
  .unset %nick.dh
  .unset %old.nick
  .unset %nick.nick
}

;|||||||||||||||||| Au Kick du pseudo sur le chat ||||||||||||||||||||||
ON *:KICK:#:{
   ;/notice $me -- $knick -- by $nick and $me
   .set %nick.kick le $date à $time par $nick Raison : $1-
   .writeini -n tapavu.ini $knick KICK %nick.kick
   .set %kick.dh $ctime
   .writeini -n tapavu.ini $knick HKICK %kick.dh
   .unset %kick.dh
   .unset %nick.kick
   .set %tempo.duree $calc($readini(tapavu.ini,$nick,HKICK)-$readini(tapavu.ini,$nick,HJOIN))
   .set %tempo.duree.total $calc($readini(tapavu.ini,$nick,TOTALTIME)+%tempo.duree)
   .writeini tapavu.ini $nick TOTALTIME %tempo.duree.total
   .unset %tempo.duree
   .unset %tempo.duree.total
}

;|||||||||||||||||| Au ban du pseudo sur le chat ||||||||||||||||||||||||

ON *:BAN:#:{
   .set %nick.ban le $date à $time par $nick Raison : $1-
   .writeini -n tapavu.ini $bnick BAN %nick.ban
   .set %ban.dh $ctime
   .writeini -n tapavu.ini $bnick HBAN %ban.dh
   .unset %ban.dh
   .unset %nick.ban
}

;||||||||||||||| Au kill du pseudo sur le chat ||||||||||||||||||||||||||

ON *:KILL:#:{
   .set %nick.kill le $date à $time sur $server Raison : $1-
   .writeini -n tapavu.ini $nick KILL %nick.ban
   .set %kill.dh $ctime
   .writeini -n tapavu.ini $nick HKILL %kill.dh
   .unset %kill.dh
   .unset %nick.kill
   .set %tempo.duree $calc($readini(tapavu.ini,$nick,HKILL)-$readini(tapavu.ini,$nick,HJOIN))
   .set %tempo.duree.total $calc($readini(tapavu.ini,$nick,TOTALTIME)+%tempo.duree)
   .writeini tapavu.ini $nick TOTALTIME %tempo.duree.total
   .unset %tempo.duree
   .unset %tempo.duree.total
}

;||||||||||||||| A la déco du pseudo sur le chat ||||||||||||||||||||||||||

ON *:DISCONNECT:#:{
   .set %nick.deco le $date à $time
   .writeini -n tapavu.ini $nick DECO %nick.deco
   .set %kill.dh $ctime
   .writeini -n tapavu.ini $nick HDECO %deco.dh
   .unset %deco.dh
   .unset %nick.deco
   .set %tempo.duree $calc($readini(tapavu.ini,$nick,HDECO)-$readini(tapavu.ini,$nick,HJOIN))
   .set %tempo.duree.total $calc($readini(tapavu.ini,$nick,TOTALTIME)+%tempo.duree)
   .writeini tapavu.ini $nick TOTALTIME %tempo.duree.total
   .unset %tempo.duree
   .unset %tempo.duree.total
}

;||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
;|||||||||||||||||||| On attaque les commandes ^^ |||||||||||||||||||||||||
;||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||

ON *:TEXT:*!tapavu*:#:{
  if (tapavu !isin $1) { .notice $nick 4ERREUR :1 Passe en couleur noir si tu n'utilises pas de logiciel de chat (mIRC,Trillian...) }
  elseif ($2 == $null) { .notice $chan 1 J'ai pas vu qui ? }
  elseif ($2 == $me) { .notice $chan 1 Je suis là !! }
  elseif ($2 == $nick { .notice $chan 1Si ! Je l'ai vu !! Regarde dans un mirroir :p ) }
  elseif ($2 ison $chan) { .notice $chan 1Regarde bien , $$2 est sur le chan $chan !! }
  else {
   .set %demande.join $readini(tapavu.ini,$$2,JOIN)
   .set %demande.part $readini(tapavu.ini,$$2,PART)
   .set %demande.quit $readini(tapavu.ini,$$2,QUIT)
   .set %demande.nick $readini(tapavu.ini,$$2,NICK)
   .set %demande.kill $readini(tapavu.ini,$$2,KILL)
   .set %demande.deco $readini(tapavu.ini,$$2,DECO)
   .set %demande.kick $readini(tapavu.ini,$$2,KICK)
   .set %demande.ban $readini(tapavu.ini,$$2,BAN)
   .set %demande.total.time $readini(tapavu.ini,$$2,TOTALTIME)
   if (%demande.join != $null) { .notice $nick 6 $$2 1est venu'e'2 %demande.join }
   if (%demande.quit != $null) { .notice $nick 6 $$2 1a quitté $chan 2 %demande.quit }
   if (%demande.part != $null) { .notice $nick 6 $$2 1est reparti'e'2 %demande.part }
   if (%demande.nick != $null) { .notice $nick 6 $$2 1a changé de pseudo2 %demande.nick }
   if (%demande.kill != $null) { .notice $nick 6 $$2 1a été killé2 %demande.kill }
   if (%demande.deco != $null) { .notice $nick 6 $$2 1a déconnecté subitement2 %demande.deco }
   if (%demande.kick != $null) { .notice $nick 6 $$2 1a été kické2 %demande.kick }
   if (%demande.ban != $null) { .notice $nick 6 $$2 1est reparti'e'2 %demande.ban }
   if (%demande.total.time != $null) { .notice $nick 6 $$2 1est resté'e' au total2 $duration(%demande.total.time,1) }
   .set %num.connect $readini(tapavu.ini,$$2,NBJOIN)
   if (%num.connect != $null ) { .notice $nick 6 $$2 1est déja venu'e'4 %num.connect 1fois . }
   if ($readini(tapavu.ini,$$2,HJOIN) < $readini(tapavu.ini,$$2,HQUIT)) {
    .set %duree.nick $calc($readini(tapavu.ini,$$2,HQUIT)-$readini(tapavu.ini,$$2,HJOIN))
    .notice $nick 6 $$2 1est resté'e'10 $duration(%duree.nick,1) 1 sur $chan
   }
   elseif ($readini(tapavu.ini,$$2,HJOIN) < $readini(tapavu.ini,$$2,HPART)) {
    .set %duree.nick $calc($readini(tapavu.ini,$$2,HPART)-$readini(tapavu.ini,$$2,HJOIN))
    .notice $nick 6 $$2 1est resté'e'10 $duration(%duree.nick,1) 1 sur $chan
   }
   elseif ($readini(tapavu.ini,$$2,HJOIN) < $readini(tapavu.ini,$$2,HDECO)) {
    .set %duree.nick $calc($readini(tapavu.ini,$$2,HDECO)-$readini(tapavu.ini,$$2,HJOIN))
    .notice $nick 6 $$2 1est resté'e'10 $duration(%duree.nick,1) 1 sur $chan
   }
   elseif ($readini(tapavu.ini,$$2,HJOIN) < $readini(tapavu.ini,$$2,HKICK)) {
    .set %duree.nick $calc($readini(tapavu.ini,$$2,HKICK)-$readini(tapavu.ini,$$2,HJOIN))
    .notice $nick 6 $$2 1est resté'e'10 $duration(%duree.nick,1) 1 sur $chan
   }
   elseif ($readini(tapavu.ini,$$2,HJOIN) < $readini(tapavu.ini,$$2,HBAN)) {
    .set %duree.nick $calc($readini(tapavu.ini,$$2,HBAN)-$readini(tapavu.ini,$$2,HJOIN))
    .notice $nick 6 $$2 1est resté'e'10 $duration(%duree.nick,1) 1 sur $chan
   }
   elseif ($readini(tapavu.ini,$$2,HJOIN) < $readini(tapavu.ini,$$2,HKILL)) {
    .set %duree.nick $calc($readini(tapavu.ini,$$2,HKILL)-$readini(tapavu.ini,$$2,HJOIN))
    .notice $nick 6 $$2 1est resté'e'10 $duration(%duree.nick,1) 1 sur $chan
   }
   elseif ($readini(tapavu.ini,$$2,HJOIN) < $readini(tapavu.ini,$$2,HNICK)) {
    .set %duree.nick $calc($readini(tapavu.ini,$$2,HNICK)-$readini(tapavu.ini,$$2,HJOIN))
    .notice $nick 6 $$2 1est resté'e'10 $duration(%duree.nick,1) 1 sur $chan
   }
   else {
    .notice $nick 1 Depuis %bot.join , Pas de trace de6 $$2 1sur $chan . Vérifie l'ortographe de6 $$2 1si tu es sûr'e' que6 $$2 1est venu'e' !
   }
   .unset %demande.*
  }
}

Conclusion :


Testez le ;)
Aussi je pense le modifier plus tard pour que ca enregistre les infos par rapport a l'host mais pour l'instant j'ai voulu faire "simple"
J'ai toujours mes sales habitudes de "." avant les set , unset etc.. mais comme ce n'est pas une erreur , pour moi c'est un repère quand je scripte.
Pour les (%trucs != $null) au lieu de (%trucs) pour moi c'est une facon d'être sûr de ce que je fais.
idem pour les (%trucs == $null) au lieu de (!%trucs)

Voila ^^ ! Si une erreur existe dans la source , merci de m'en faire part :)
Si vous avez des idées pour la rendre encore plus complète , vous pouvez aussi m'en faire part ^^.
NB: Je sais que c'est une source de plus sur le TAPAVU mais celui c'est mon "bébé" si je peux m'exprimer ainsi ^^ .

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.