Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
heretoc
18/10/2011, 13:10
Bonjour,
Ayant decider de reprendre legerement le TCL, j'avais pour idée de faire un "compteur de mots" hors je ne voit pas du tout comment faire, même après recherche dans le forum (ou alors je suis pas doué).
Plus l'utilisateur parle sur un salon, plus sa augmente sont compteur de mots dans une base de donnée (non defini) par salon.
Via une commande du style "!mots pseudo" le robot effectuerais une requete afin de me sortir le total des mots que l'utilisateur à dit sous la forme suivante:
"!mots blabla"
> Blabla Xmots sur #chan1
> Blabla Wmots sur #chan2
Je m'excuse d'avance pour l'orthographe.
Merci aux gens qui prenne la peine de lire le sujet
Il te faut d'abord définir ta base, ou du moins sur quoi elle sera faite (fichier, MySQL, SQLite, ...).
Si c'est une base de type MySQL, une structure simple peut suffire:
pour faire une structure simple
en tcl, je te conseil d utiliser la commande "dict" avec un array
par exemple:
tcl
bind pubm - * stat:incrproc stat:incr{nick host hand chan arg}{variable stat
set$chan[string tolower $chan]if![info exists stats($nick)]{set stat($nick)[dict create]}
dict incr stat($nick)$chan[llength$arg]}
bind pub - !mots stat:returnproc stat:return{nick host hand chan arg}{variable stat
set pseudo [lindex$arg0]if[info exists stats($pseudo)]{foreachlist[dict get $stat($pseudo)]{
putserv "PRIVMSG $chan :$pseudo à dit [lindex $list 1] sur [lindex $list 0]"}}else{
putserv "PRIVMSG $chan :$pseudo inconnu"}}
avec un "bind save" pour sauvegarder toutes les heures dans un fichier ou sur une base sql (au choix)
edit: ne pas oublier de charger le fichier (ou la base de donnée sql) au chargement du tcl
heretoc
18/10/2011, 18:09
Daccord, merci de toutes ces indications, je vais faire surement en SQL afin de pouvoir si le coeur m'en dit retransmettre facilement les informations sur une page internet.
Juste est-il possible d'avoir une explication sur le "dict" car j'ai pas forcement compris sont fonctionnement à partir du wiki : http://wiki.eggdrop.fr/Dict
c'est une manière différente de gérer une variable en fait.
en gros la ta variable stat(pseudo) contiendra
"#salon1 35 #salon2 12 salon3 50"
si tu fais
heretoc a écrit :Daccord, merci de toutes ces indications, je vais faire surement en SQL afin de pouvoir si le coeur m'en dit retransmettre facilement les informations sur une page internet.
Juste est-il possible d'avoir une explication sur le "dict" car j'ai pas forcement compris sont fonctionnement à partir du wiki : http://wiki.eggdrop.fr/Dict
Attention, en passant par SQL, le système de comptage sera différent. En te basant sur ma structure de base initiale, il te faudra 2 requètes chaque fois (un select et un replace/insert).
Alors qu'avec du tcl pur et dict, ça se fait en une passe et c'est autonome.