Bonjour, je me permets une nouvelle fois de faire appel à vos lumiéres et à votre aide.
Mon problème est le suivant:
Je travail actuellement sur un Bot irc , (le programme en lui même importe peu ...), je voudrais que celui ci est capable d'interagir avec les évènements serveurs comme un l'entrée d'un utilisateur enfin c'est un detail .
Aucune connaissance du protocole irc n'est réquise pour mon probléme.
Je souhaiterais en gros pouvoir "détecter" l'entrée des l'utilisateur à savoir si par exemple il y a plus de trois entrées (join) en moins de 10 secondes celui ci n'est pas voicé ou kicker enfin la méthode importe peu ici c'est la détection et la gestion du timing qui me pose probléme.
On peut facilement envisager une utilisation de cette boucle dans une autre utilisation .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 temps = 0 while true : . . . . if data.find ( 'JOIN' ) != -1: #detection de l'entrée d'un utilisateur print temps if ( temps != 0 and (time.clock() < temps + 10)): # nbrjoin = 0 #on ne rentre jamais ici ici car la condition n'est j'amais vrai : ( else : nbrjoin = nbrjoin + 1 if nbrjoin > 3: irc.send('PRIVMSG #salon:Join trop important probabilite de clones\n') #c'est toujours vrai au bout de 4 join : ( else: nick = data.split ( '!' ) [ 0 ].replace ( ':', '' ) #récupération de son pseudonyme irc.send ( 'MODE #salon +v ' + nick + '\n' ) #on donne la parole à l'utilisateur temps=time.clock()
Mon probléme est simple , je pense qu'il vient de time.clock() , lorsque je stock time.clock() dans une variable (temps), il stock le temps processeur à l'instant T et non de maniére dynamique en continuant de compter comme je le voudrais pour pouvoir faire ma comparaison dans le premier IF.
Lorsque que je fais un print temps dans ma boucle il me renvoie toujours une valeur comprise entre 0.15 ou 0.16 .
Y'a t il moyen de pouvoir stocker le temps de maniére dynamique ? que celui ci continue de s'incrémenter même dans une variable ? Par dictionnaire ou liste je ne sais pas ou grace au thread ? .. Ou peu être que je n'utilise pas la bonne méthode de gestion du temps (je pense à time() par exemple.)
J'ai penché une bonne partie de la nuit sur ce soucis sans voir comme résoudre ce soucis de gestion du temps ....
TOUTES les idées sont évidement les bienvenues peu être que je cherche encore midi à quatorze heures.
Je vous remercie d'avance pour vos réponses.
Partager