Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


Detecter Flood texte
#1
Bonjour,

j'aimerais savoir comment détecter le même caractère dans un flood.je m'explique beaucoup d'user flood avec les meme caractere du genre:

helloooooooooooooooooooooooooooooo ect ... et j'aimerais restreindre cela.
j'ai trouver divers TCL mais il ne détecte seulement la longueur de la phrase malheureusement.auriez vous un exemple de proc pour détecter la longueur du mot flood et non le texte ?

en espérant que j'ai pu être clair :x

Cordialement
La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.
#2
Oui, ça me semble assez clair, mais ce n'est pas du flood :)
Il faudrait utiliser une regexp du genre:

Code:
(.)(\1{3,})
Celle-ci permet de capter lorsqu'un même caractère est répété au moins 3 fois.

En TCL, ça donnerait:

tcl
bind pubm - "*" repet_test
proc repet_test { nick uhost hande chan text } {
   if { [regexp -all -- {(.)(\1{3,})} $text] } {
      putserv "PRIVMSG $chan :Dis donc $nick, tu as bloqué ta touche ?"
   }
   return
}


Le "& #92;" est à remplacer par \
Edit
Testé par DnS, ça fonctionne. J'avais commit une petite erreur : ne pas mettre le -inline dans les options de regexp si on veut avoir un résultat booléen (-inline retourne le tableau de ce qui a matché).
zeolia: tchat gratuit, sans inscription ni publicité
Merci de ne pas demander d'aide en MP
Away
#3
BOnjour,

j'aimerais savoir si il est possible de remplacer le 3 dans

PHP Code:
(.)(\1{3,}) 

par une variable ?

PHP Code:
set NFD "50"

bind pubm "*" repet_test
proc repet_test 
nick uhost hande chan text } {
   if { [
regexp -all -- {(.)(\1{$::NFD,})} $text] } {
      
putserv "PRIVMSG $chan :Dis donc $nick, tu as bloqué ta touche ?"
   
}
   return

La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.
#4
Déjà, il te manque le \ avant le 1.
Et la solution est:

tcl
set NFD "50"
 
bind pubm - "*" repet_test
proc repet_test { nick uhost hande chan text } {
   if { [regexp -all -- "\(.\)\(\\1\{$::NFD\,\}\)" $text] } {
      putserv "PRIVMSG $chan :Dis donc $nick, tu as bloqué ta touche ?"
   }
   return
}

zeolia: tchat gratuit, sans inscription ni publicité
Merci de ne pas demander d'aide en MP
Away
#5
merci CrazyCat pour cette solution

juste une chose pourquoi ajouter les \ dans le regexp ?
certes j'ai bien vue que sans les \ il prenais pas le nombres dans la variable ,mais j'aurais pas pensé à ajouter les \
La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.
#6
parcontre je rencontre un souci avec ce code.je m'explique que je charge le script mon eggy monte en CPU 67.3 et ce qui fait que mon bot ping

Quote:dns 31966 67.3 0.3 5244 3428 pts/1 R 23:08 3:50 ./eggdrop DnS.conf

et qd je suprime le tcl mon bot tourne normalement :x

Quote:dns 5296 0.0 0.2 4812 3124 pts/1 S 23:15 0:00 ./eggdrop DnS.conf

une idée sur ce souci svp ?


Cordialement
La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.
#7
Non seulement l'eggdrop analyse tout les messages qui passent sur le (ou les) canal, mais en plus l'expression régulière est très gourmande car elle est sous forme de string et doit être interprétée.
Si tu utilisais la première expression régulière, ça consommerait bien moins.
zeolia: tchat gratuit, sans inscription ni publicité
Merci de ne pas demander d'aide en MP
Away
#8
merci pour cette réponse CrazyCat.
La différence entre Linux et Windows ,c'est que Linux c'est comme une belle fille , il faut l'apprivoiser , la comprendre , la séduire tandis que Windows , c'est comme une prostitué , il faut payer et surtout bien se protéger.


Possibly Related Threads…
Thread Author Replies Views Last Post
  [Résolu] récupérer texte dans page html BrYcOu 5 5,703 22/09/2015, 06:46
Last Post: BrYcOu
  Lire les dernières lignes d'un fichier texte. Ryan 4 5,158 23/09/2012, 18:34
Last Post: CrazyCat
  Script servant à lire le contenu d'un fichier texte KiBa 4 5,934 07/03/2012, 16:14
Last Post: KiBa
  Flood texte a repetition bewess 13 9,245 04/12/2010, 22:51
Last Post: lesny
  Découpage de texte MenzAgitat 6 5,769 05/02/2010, 00:43
Last Post: MenzAgitat

Forum Jump:


Users browsing this thread: 1 Guest(s)