aide pour le script - Version imprimable +- Communauté Eggdrop (https://forum.eggdrop.fr) +-- Forum : Eggdrop et TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=8) +--- Forum : Scripts TCL (https://forum.eggdrop.fr/forumdisplay.php?fid=4) +--- Sujet : aide pour le script (/showthread.php?tid=1407) |
aide pour le script - Nostromo1st - 11/09/2013 Bonjour, j'ai un soucis avec ce script. quand le bot détecte les informations a mettre dans la base de donné, si "age" et "an" ne sont pas vide il doit passer et refermer la connexion, dans le cas ou c'est vide je souhaite faire un update pour entrer les données et annoncer sur un canal l'info. mais si l'info arrive plusieurs fois de plusieurs bot différent c'est autant de fois répéter, moi je souhaiterai qu'il soit répéter qu'une fois et comme par la suite ce n'est plus vide qu'il ne fasse rien d'autre. Merci pou votre aide, Nos... Code : proc addinfo { nick uhost handle chan text } { RE: aide pour le script - CrazyCat - 11/09/2013 OMG, quelle horreur. On va se limiter à coeur du problème: tcl
donc $sql est une liste tcl
Pourquoi pas plutôt [llength $sql]? Ensuite, je ne vois pas l'intérêt de ton script: si l'enregistrement n'existe pas, tu ne fais rien mais s'il existe tu le mets à jour ? Donc il n'est jamais créé par le script ? RE: aide pour le script - ZarTek - 12/09/2013 Un petit cou de débroussailleuse : Code : proc addinfo { nick uhost handle chan text } { (11/09/2013, 18:44)Nostromo1st a écrit : quand le bot détecte les informations a mettre dans la base de donné, si "age" et "an" ne sont pas vide il doit passer et refermer la connexion,Je pense que c'est résolu, connexion ce ferme. (11/09/2013, 18:44)Nostromo1st a écrit : dans le cas ou c'est vide je souhaite faire un update pour entrer les données et annoncer sur un canal l'info.Je pense que c'est résolu aussi. (11/09/2013, 18:44)Nostromo1st a écrit : mais si l'info arrive plusieurs fois de plusieurs bot différent c'est autant de fois répéter, moi je souhaiterai qu'il soit répéter qu'une fois et comme par la suite ce n'est plus vide qu'il ne fasse rien d'autre.Pas sur d'avoir tout compris. Si c'est exécuté sur plusieurs robots(?). Il me semble que le premier va mettre a jour la base de données et l'afficher sur les salons. Est ce que sa révolutionne le soucis? PS: Le code je n'ai pas tester. RE: aide pour le script - Nostromo1st - 12/09/2013 Bonjour, alors tout d'abord merci pour vos réponses: CrazyCat: Citation :OMG, quelle horreur. Désolé, mais comme je te l'ai dis je suis un débutant en tcl et j'essaie de faire du mieux que je peux :/... Sinon tu me demande: Citation :Pourquoi pas plutôt [llength $sql]? cela ne change pas mon problème : la base de donnée se met bien à jour mais mon problème c'est l'annonce qui se fait autant de fois qu'on envoie l'information sur le canal $infochan. Moi je souhaiterai qu'il n’annonce qu'une seule fois lors de la mise à jour ensuite il ne doit plus annoncer. mcdeffice: Le code est magnifique comme cela, mais, comme je l'explique plus haut, si 10 utilisateurs ou robots mettent la même info en même temps, alors il y a 10 annonces identiques sur le canal $echochan, ce qui me fais me dire que je mets à jour à chaque fois la base de donnée aussi... En gros voici le code comme je l'imagine (je mets les commentaires): Code : proc addinfo { nick uhost handle chan text } { Voila je ne sais pas si je pense bien mais en tout cas la base de donnée se rempli bien, mais l'annonce sur $echochan ne s’arrête pas à une seule annonce si plusieurs envoie la même information. Donc comment je peux faire pour que la mise à jour de la base de donnée et l’annonce ne se fait qu'une seule fois pour la même information ? A bientôt Nos... RE: aide pour le script - ZarTek - 12/09/2013 Bonjour, As-tu essayer mon code ? Parce que d’après comment tu image la chose, mon code le fais. Reste à savoir si il annonce plusieurs fois sur echochan RE: aide pour le script - Nostromo1st - 12/09/2013 re, mcdeffice: oui oui j'ai testé ton code mais en partyline mon eggdrop me répond: Tcl error [addinfo]: can't read "name": no such variable Je pense que le SQL_SEL doit se faire après le "set name" je teste ça. Nos... re, mcdeffice: Bon alors j'ai testé ton code je n'est plus d'erreur mais plus de remplissage de la base de donnée qui reste vide et cela n'anonce plus non plus. Une idée ? Nos... RE: aide pour le script - ZarTek - 12/09/2013 Code : proc addinfo { nick uhost handle chan text } { A priori le soucis, serais le faite que [llength $SQL_SEL] compté toujours 2 longueurs même si elle s'etais "NULL" du coup changer en Code : && ( [lindex $SQL_SEL 0] == "" || [lindex $SQL_SEL 1] == "" J'ai profiter pour corriger l'erreur du $name RE: aide pour le script - Nostromo1st - 12/09/2013 re, Désolé mais non cela fait pareil que tout à l'heure, il ne se passe rien et dans mysql les cases "age" et "an" reste désespérément vide :/... une autre idée peut être? Nos RE: aide pour le script - CrazyCat - 12/09/2013 Bon, arrêtez de ramer, je vous aide: (12/09/2013, 18:23)mcdeffice a écrit : imho, $name, $age et $an seront toujours vide vu que tu utilises $args pour les remplir alors que la procédure parle de $text. C'est ballot, un petit putlog de la requête l'aurait montré de suite. Comme quoi faut pas nettoyer son code trop vite RE: aide pour le script - Nostromo1st - 14/09/2013 Bonjour, merci encore pour vos réponses, et oui effectivement dans le code il faut changer: TCL
par: TCL
ou alors rajouter avant: TCL
ceci: TCL
et changer aussi TCL
par: TCL
les 2 fonctionnent... Par contre a des moment le eggdrop doit perdre les pédales car il se remet a annoncer plusieurs fois la même chose mais ce n'est que de temps en temps. Peut etre peut on régler cela par un regex ou quelque chose du genre pour etre sur q'une fois l'info enregistrer il n'enregistre plus rien du coup il n'annoncera lus rien d'autre également. si vous avez des idées n’hésitez pas... Nos... PS: CrayzyCat: Citation :C'est ballot, un petit putlog de la requête l'aurait montré de suite. Comme quoi faut pas nettoyer son code trop viteTu pourrais m'en dire plus ou me redirigé sur un post qui en parle merci d'avance. RE: aide pour le script - CrazyCat - 14/09/2013 Il n'y a pas de post particulier où je le dis, je le dis à peu près chaque fois qu'on dit "il y a une erreur dans mes données, je ne vois pas pourquoi". Moi, dès que j'ai un souci, je mets des putlog pour voir où je passe dans le script, avec quelles données. RE: aide pour le script - Nostromo1st - 15/09/2013 bonjour CrazyCat, Alors dans mon script pourrai tu me montrer a quoi ressemblerai le putlog stp? Merci Nos... RE: aide pour le script - CrazyCat - 15/09/2013 Non. Pas par méchanceté, mais parce qu'au bout d'un moment, il faut chercher un peu par soi-même. RE: aide pour le script - Nostromo1st - 16/09/2013 Bonjour, Oui effectivement je comprends t’inquiète pas je ne t'en veux pas Je vais regarder ca Nos |