Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

SOURCE DE STATS COMMENTÉ


Information sur la source

Catégorie :Bots Classé sous : stats, statistique Niveau : Débutant Date de création : 22/10/2005 Vu : 3 537

Note :
6,8 / 10 - par 5 personnes
6,80 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note

Description

voici une source a titre éducative .
elle vous montre comment faire des statistiques en irc.
Vous pouvez modifier la source a votre guise et je les commenté pour que vous puissiez comprendre :)

 

Source

  • on *:join:#:{
  • ;//la remote réagira quand quelqu'un join le salon
  • set %connec [ $+ [ $nick ] ] $ctime
  • ;//on set la variable de connection du nick
  • if (!%maxchan [ $+ [ $chan ] ]) {
  • ;si la variable %maxchan du salon n'est pas créé
  • /set %maxchan [ $+ [ $chan ] ] $nick($chan,0)
  • ;on créé la variable avec comme valeur le nombre de nick connecté
  • /set %maxchan_date [ $+ [ $chan ] ] $date à $timestamp
  • ;on créé la variable de date du record avec comme valeur la date et l'heure
  • }
  • if ($nick($chan,0) >= %maxchan [ $+ [ $chan ] ]) && (%maxchan [ $+ [ $chan ] ] != $nick($chan,0)) {
  • ;si le nombre de personne connecté est plus grand que la variable et si la variable n'est pas égale au nombrez de connecté
  • /set %maxchan [ $+ [ $chan ] ] $nick($chan,0)
  • ;on met a jour la variable de nombre d'utilisateur connecté
  • /set %maxchan_date [ $+ [ $chan ] ] $date à $timestamp
  • ;on met a jour la variable de la date du record
  • /msg $chan Nouveau Record de connection simultanée ! %maxchan [ $+ [ $chan ] ] users
  • ;on affiche un message sur le salon
  • }
  • on *:part:#:{
  • ;//la remote réagira quand quelqu'un part du salon
  • unset %connec [ $+ [ $nick ] ]
  • ;//on détruit la variable du nick pour éviter que les statistique de connection soit faux
  • }
  • on *:text:*:#:{
  • ;//la remote réagira a tout les mot sur le canal
  • inc %lignes [ $+ [ $nick ] ]
  • if ($strip($1) == !max) {
  • ;si le premier mot est !max
  • /notice $nick le record actuelle est de %maxchan [ $+ [ $chan ] ] users connecté simultanément . Record établie le %maxchan_time [ $+ [ $chan ] ] .
  • ;on envoit une notice au nick
  • }
  • inc %lignes [ $+ [ $nick ] ]
  • ;// on incremente la variable %lignes du nick a chaque phrases
  • set %lettres [ $+ [ $nick ] ] $calc(%lettres [ $+ [ $nick ] ] + $len($strip($1-)))
  • ;//on set la variable %lettres du nick avec un calcul . le calcul correspond a la variable %lettres + le nombres de lettres qu'il vient de dire dans la phrase
  • if ( :) isin $strip($1-)) {
  • ;//si le mot ":)" apparait dans la phrase .
  • inc %sourire [ $+ [ $nick ] ]
  • ;//on increment la variable sourire du nick.
  • }
  • if :'( isin $strip($1-) || :( isin $strip($1-) {
  • ;//si les mots ":'(" ou ":(" apparaissent dans la phrase .
  • inc %triste [ $+ [ $nick ] ]
  • ;//on incremente la variable triste du nick.
  • }
  • if ($strip($1) == !stats) {
  • ;//si le premier mot est !stats
  • if (!$strip($2)) {
  • ;//si il n'y a pas de deuxieme mot
  • /msg $nick Voici vos statistiques sur le canal4 $chan :
  • /msg $nick  %lignes [ $+ [ $nick ] ] lignes . %lettres [ $+ [ $nick ] ] lettres.
  • ;on affiche les variable %lignes et %lettres du nick
  • /msg $nick  %sourire [ $+ [ $nick ] ]  sourires et %triste [ $+ [ $nick ] ] visage triste !!
  • ;on affiche les variable %sourire et %triste du nick
  • /msg $nick Vous etes sur le canal $chan depuis $duration($calc($ctime - %connec [ $+ [ $nick ] ] ))
  • ;on calcule le temps depuis qu'il est connecté en faisant le calcul de durée
  • /msg $nick il y a $nick($chan,0) connéctés en ce moment sur $chan dont4 $nick($Chan,0,o) son des ops et 2 $nick($chan,0,v)  sont voicés.
  • ;on retourne le nombre de personne d'op et de voicée
  • }
  • if ($strip($2) != $null) {
  • ;//si il y a un deuxieme mot
  • ;//si le premier mot de la phrase et !stats et qu'il y a un deuxieme mot
  • /msg $nick Voici les statistiques de $2 sur le canal4 $chan :
  • /msg $nick  %lignes [ $+ [ $2 ] ] lignes . %lettres [ $+ [ $2 ] ] lettres.
  • ;on affiche les variable %lignes et %lettres du deuxieme mot
  • /msg $nick  %sourire [ $+ [ $2 ] ]  sourires et %triste [ $+ [$2 ] ] visage triste !!
  • ;on affiche les variable %sourire et %triste du mot
  • /msg $nick $2 est sur le canal $chan depuis $duration($calc($ctime - %connec [ $+ [ $2] ] ))
  • ;on calcule le temps depuis qu'il est connecté en faisant le calcul de durée
  • /msg $nick il y a $nick($chan,0) connéctés en ce moment sur $chan dont4 $nick($Chan,0,o) son des ops et 2 $nick($chan,0,v)  sont voicés.
  • ;on retourne le nombre de personne d'op et de voicée
  • }
  • }
  • }
  • }
on *:join:#:{
  ;//la remote réagira quand quelqu'un join le salon
  set %connec [ $+ [ $nick ] ] $ctime
  ;//on set la variable de connection du nick 
  if (!%maxchan [ $+ [ $chan ] ]) {
    ;si la variable %maxchan du salon n'est pas créé
    /set %maxchan [ $+ [ $chan ] ] $nick($chan,0)
    ;on créé la variable avec comme valeur le nombre de nick connecté
    /set %maxchan_date [ $+ [ $chan ] ] $date à $timestamp 
    ;on créé la variable de date du record avec comme valeur la date et l'heure 
  }
  if ($nick($chan,0) >= %maxchan [ $+ [ $chan ] ]) && (%maxchan [ $+ [ $chan ] ] != $nick($chan,0))  {
    ;si le nombre de personne connecté est plus grand que la variable et si la variable n'est pas égale au nombrez de connecté
    /set %maxchan [ $+ [ $chan ] ] $nick($chan,0)
    ;on met a jour la variable de nombre d'utilisateur connecté
    /set %maxchan_date [ $+ [ $chan ] ] $date à $timestamp 
    ;on met a jour la variable de la date du record
    /msg $chan Nouveau Record de connection simultanée ! %maxchan [ $+ [ $chan ] ] users
    ;on affiche un message sur le salon  
  }
  on *:part:#:{
    ;//la remote réagira quand quelqu'un part du salon
    unset %connec [ $+ [ $nick ] ]
    ;//on détruit la variable du nick pour éviter que les statistique de connection soit faux
  }
  on *:text:*:#:{
    ;//la remote réagira a tout les mot sur le canal 
    inc %lignes [ $+ [ $nick ] ]
    if ($strip($1) == !max) {
      ;si le premier mot est !max
      /notice $nick le record actuelle est de %maxchan [ $+ [ $chan ] ] users connecté simultanément . Record établie le %maxchan_time [ $+ [ $chan ] ] .
      ;on envoit une notice au nick
    }
inc %lignes [ $+ [ $nick ] ]
    ;// on incremente la variable %lignes du nick a chaque phrases
    set %lettres [ $+ [ $nick ] ] $calc(%lettres [ $+ [ $nick ] ] + $len($strip($1-)))
    ;//on set la variable %lettres du nick avec un calcul . le calcul correspond a la variable %lettres + le nombres de lettres qu'il vient de dire dans la phrase
    if ( :) isin $strip($1-)) {
      ;//si le mot ":)" apparait dans la phrase .
      inc %sourire [ $+ [ $nick ] ]
      ;//on increment la variable sourire du nick.
    }
    if :'( isin $strip($1-) || :( isin $strip($1-) {
      ;//si les mots ":'(" ou ":("  apparaissent dans la phrase .
      inc %triste [ $+ [ $nick ] ]
      ;//on incremente la variable triste du nick.
    }
    if ($strip($1) == !stats) {
      ;//si le premier mot est !stats
      if (!$strip($2)) {
        ;//si il n'y a pas de deuxieme mot 
        /msg $nick Voici vos statistiques sur le canal4 $chan :
        /msg $nick  %lignes [ $+ [ $nick ] ] lignes . %lettres [ $+ [ $nick ] ] lettres.
        ;on affiche les variable %lignes et %lettres du nick
        /msg $nick  %sourire [ $+ [ $nick ] ]  sourires et %triste [ $+ [ $nick ] ] visage triste !!
        ;on affiche les variable %sourire et %triste du nick
        /msg $nick Vous etes sur le canal $chan depuis $duration($calc($ctime - %connec [ $+ [ $nick ] ] ))
        ;on calcule le temps depuis qu'il est connecté en faisant le calcul de durée
        /msg $nick il y a $nick($chan,0) connéctés en ce moment sur $chan dont4 $nick($Chan,0,o) son des ops et 2 $nick($chan,0,v)  sont voicés.
        ;on retourne le nombre de personne d'op et de voicée
      }
      if ($strip($2) != $null) {
        ;//si il y a un deuxieme mot 
        ;//si le premier mot de la phrase et !stats et qu'il y a un deuxieme mot 
        /msg $nick Voici les statistiques de $2 sur le canal4 $chan :
        /msg $nick  %lignes [ $+ [ $2 ] ] lignes . %lettres [ $+ [ $2 ] ] lettres.
        ;on affiche les variable %lignes et %lettres du deuxieme mot 
        /msg $nick  %sourire [ $+ [ $2 ] ]  sourires et %triste [ $+ [$2 ] ] visage triste !!
        ;on affiche les variable %sourire et %triste du mot
        /msg $nick $2 est sur le canal $chan depuis $duration($calc($ctime - %connec [ $+ [ $2] ] ))
        ;on calcule le temps depuis qu'il est connecté en faisant le calcul de durée
        /msg $nick il y a $nick($chan,0) connéctés en ce moment sur $chan dont4 $nick($Chan,0,o) son des ops et 2 $nick($chan,0,v)  sont voicés.   
        ;on retourne le nombre de personne d'op et de voicée 
      }
    }
  }

}

Conclusion

je n'ai pas testé entierement le code mais il devrait fonctionner .

donner vos remarque et vos suggestions j'en prendrait part et je mettrzit la source a jour
 

Commentaires et avis

signaler à un administrateur
Commentaire de RCA ArKanis le 22/10/2005 22:17:52

tu peux mettre if (!%var) au lieu de if (%var != $null)
des hash tables auraient été mieux :p

les / devant les commandes ne servent à rien => /msg devient msg

au lieu de faire $strip($1-) tout plein de fois, fais tokenize 32 $strip($1-) tout au début de ton ON TEXT

Tu oublies (c'est peut-être fait exprès) les ON KICK, ACTION, RAWMODE, ...

Mets une protection sur tes commandes !stats, elles floodent pas mal (tu peux même rajouter des petits timers)

if :'( isin $strip($1-) || :( isin $strip($1-) {
tu as testé ?
perso j'aurai plutôt mis if (($+(:',$chr(41)) isin $1-) || ($+(:,$chr(41)) isin $1-)) { ... }, avec le $strip au début bien sûr
pareil ici : if ( :) isin $strip($1-)), avec le $chr(40)

qui a mis 10/10 sans mettre aucun commentaire ? :p

signaler à un administrateur
Commentaire de Mc_AbBeR le 23/10/2005 10:38:28

10/10 ... C'est un peu trop sa pour cette source..

Du même avi que RCA ArKanis, les hash tables ce serai plus kewl.
6/10

signaler à un administrateur
Commentaire de COOLMAN002 le 23/10/2005 12:16:07

Pour faire des stats, le mieux est encore de passer par un fichier .ini.

Sinon, Arkanis a tout dit.

signaler à un administrateur
Commentaire de GiUsTiNo le 24/10/2005 13:14:43

Petite correction pas bien grave pour Arkanis :
"tu peux mettre if (!%var) au lieu de if (%var != $null)"
=> (%var) veut dire (%var != $null) donc (!%var) veut dire (%var == $null)
Voila, je suis sur que c'était pas fait exprêt et que tu dois connaitre cela :)
Sinon, pour le code, on a déjà vu plus optimisé :)
Bonne continuation

signaler à un administrateur
Commentaire de abdoulax le 26/10/2005 22:00:42

Ce ki pourrai etre sympas c d'avoir les résultats dans un graph en pikwin...

Have fun

signaler à un administrateur
Commentaire de InFerNaLeX le 27/10/2005 20:53:38

je l'ai mise et ca me dit balance ca tt le tps :
20:48:21] 4Commande inconnu : ON.
[20:48:21] 4Commande inconnu : ON.
[20:48:21] 4Commande inconnu : ISIN.
[20:48:21] 4Commande inconnu : ON.
[20:48:21] 4Commande inconnu : ON.
[20:48:21] 4Commande inconnu : ISIN.
en plus quand je tape !stats ça fait rien du tout...

signaler à un administrateur
Commentaire de RCA ArKanis le 27/10/2005 20:57:51

le tout dernier } devrait être avant le ON PART
c'est pour ça que tu as des blêmes :p

signaler à un administrateur
Commentaire de AgoRa_ScripT le 28/10/2005 09:55:19

Oui pour les smiley,
:'( isin $strip($1-)
:) isin $strip($1-)
ainsi que les autres, je crois pas que ça marche.
Si tu veux t'aider pour les smiley, une autre source de stats présente sur ircfr, utilise $regex et $count.
Jte c/c comme ça la phrase de la source dont je te parle:

on *:text:*:#: {
  writeini -n $+(knoxtop\sourires\,$chan,.ini) $nick sourires $calc($readini($+(knoxtop\sourires\,$chan,.ini),$nick,sourires) + $regex($1-,/(\:|;)(-)?(P|X|D|\/|\\|\[|\])/ig) + $count($1-,: $+ $chr(40),:- $+ $chr(40),: $+ $chr(41),:- $+ $chr(41),; $+ $chr(40),;- $+ $chr(40),; $+ $chr(41),;- $+ $chr(41)))
}

C'est vraiment pas pareil que toi, puisque ça écrit dans un fichier .ini et que ça prend en compte tout les smileys (et biensur la présence de $regex et $count..) mais ça pourrai t'aider..
Dommage, ton code pourrait être bien compact et court même avec les commentaires.(qui ne sont jamais de trop.. ^^)

5/10

@+

signaler à un administrateur
Commentaire de trasher le 31/10/2005 17:48:19

merci beaucoup man

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Notify Stats [ par W[a]nted--0[0]7 ] [font=Times new roman] Bjr tlm j'aimerai savoir comment calculer le nbre de notifié online / offlinemerci [/font] service de stats [ par sebabulle ] Bonjour,voila je suis a la recherche d'aide loolEn fait j'ai un ami qui a ouvert un serveur irc... on a fait un bot de stats mais voila on se demande stats [ par Solisoft ] Salut,Je recherche le moyen de pouvoir mettre en page web les stats de mon channel qui serrais gerées as partir de l'irc que j'utilise. Merci. Stats perso! [ par NiCeOn3 ] Salut tout le monde,J'aimerais savoir comment faire des stats persos (c'est à dire avec le nombre de lettres, de phrases, de kick, de op...)Donc voilà Bot qui fait des statistique d'un chan [ par Elnath ] Bonjour, j'aimerais savoir si quelqu'un pourrais me faire, ou me trouver un bot qui permet de faire des statistique d'un chan ( nombre moyen de person TCL /lusers stats [ par TeniX ] SalutJe voudrais savoir comment recupére un nombre d'user connecté a un serveur irc et l'ecrire dans un fichier texte , tous cela avec un eggdrop , si stats [ par InFerNaLeX ] bonjour, je cherche un systeme de stats qui dit le % de majusculesAleKs ZeNooB PISG [ par l1solent ] Help !!J'ai vraiment du mal à configurer mon fichier pisg.confEn faite j'aimerais savoir s'il est possible de creer les stats pour plusieurs salo stats [ par pti_suisse ]                   salut,en fait je voudrait savoir comment f stats dans une boite de dialog [ par ajm187 ] voila j'aimerais de l'aide j'ai fais un ti truc dialog avec + et - en faite quand je tape + ça ajoute exemple: je tape sur + sa fai 1-0 je rapui


Nos sponsors

Sondage...

CalendriCode

Septembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
2930     

Consulter la suite du CalendriCode

Téléchargements



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,53 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.