Détecteur badword en PV qui Kick,ignore et ferme le PV

Résolu
cs_freenaute Messages postés 147 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 6 avril 2009 - 5 oct. 2007 à 06:17
cs_freenaute Messages postés 147 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 6 avril 2009 - 8 oct. 2007 à 01:51
bonjour tous !

J'ai "compilée" cette remote qui détecte des badwords dans mes PV et répond par kick,donne la raison puis ignore et ferme le PV et ban l'user insultant.

<ol><li>on *:text:*:?:{</li><li>  if ( insulte_A isin $1-) /k #nom_du_chan $nick raison</li><li>  if ( insulte_B isin $1-) /k #nom_du_chan $nick raison</li><li>  if ( insulte_C etc..etc..</li><li> /ignore $nick </li><li>  close -m $nick</li><li>/mode # nom_du_chan +b $nick</li><li>}</li></ol>
questions:

- comment faire réagir if (vers un fichier "insultes.txt") pour éviter d'avoir une remote à ralonge avec des "if"qui se succèdent...
- comment ignorer uniquement les PV du $nick 
---je ne sais plus faire un timer 30 minutes pour ce ban ...:/

j'avais osé faire ceci::

on *:text:*:?:{
 if ( insultes isin $1-) $read(insultes.txt)/k #nom_du_salon $nick raison
/ignore $nick
close -m $nick
/mode # nom_du_chan +b $nick
}

mais visiblement ça coince !!!

merci.

 

9 réponses

RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
5 oct. 2007 à 14:54
tu veux utiliser un .txt pour simplifier le code c'est ça ?

tu peux le simplifier autrement :
on *:text:*:?:{
  if ($regex($1-,/(^|\s)(test|badword)(\s|$)/)) {
    ban -ku300 #tonsalon $nick raison
    ignore $nick
    close -m $nick
  }
}

300 <=> 5min
3
cs_ISoKa Messages postés 435 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 17 octobre 2008
5 oct. 2007 à 13:26
Bonjour,

-pour la detection : tout comme si tu colle dans ton remote cash tes criteres de detection ca va devenir long à la longue, il en va de mm pour le fichier texte et ca risk d'etre assez lent comme systeme vu que tu vas etre obligé de bouclé sur chaque ligne du fichier texte. l'idéal à mon avi serai  de faire quelque chose  melangeant  htable et regex  c'est  à dire mettre les criteres  de detection  formaté pour du regex dans une htable et ensuite appeler ton htable pour tes tests mm si c'est un peu plus compliké que du $read.

-pour l'ignore de pv : ignore -p $nick << ca devrai marcher si mes souvenirs sont bon ca

-pour le ban de 30min : ban -u1800 #salon $nick <<< ca doit etre ca il me semble la syntaxe

ensuite sur les codes que tu as mis :

<ol><li>on *:text:*:?:{</li><li>  if ( insulte_A isin $1-) /k #nom_du_chan $nick raison</li><li>  if ( insulte_B isin $1-) /k #nom_du_chan $nick raison</li><li>  if ( insulte_C etc..etc..</li><li> /ignore $nick </li><li>  close -m $nick</li><li>/mode # nom_du_chan +b $nick</li><li>}</li></ol>-pose des elseif au lieu de if en cascade
-les "/" ne servent à rien
-verifi peut etre d'etre op avant de kicker ca t'evite d'envoyer des commandes pour rien
-pareil verifi que le nick est present sur le salon ou tu le kickban

on *:text:*:?:{
 if ( insultes isin $1-) $read(insultes.txt)/k #nom_du_salon $nick raison
/ignore $nick
close -m $nick
/mode # nom_du_chan +b $nick
}
- là je devine que tu as essayé  de detecté avec un fichier txt, mais de cette facon c'est pas possible tu es obligé de faire une boucle soit sur chaque mot de ta phrase et verif qu'il se trouve dans ton fichier texte soit sur chaque ligne du fichier texte.
et verif si il se trouve dans la phrase.
-si tu veux faire par fichier txt il faut que tu mettes tes criteres avec des wildcards genre "encul*" et ensuite tu boucle sur chak ligne de ton txt. mais dans ce cas là sert toi du "file handling " sinon ton systeme sera super lent.

enfin bref si tu veux faire un truc efficace et propre bon courage y a du taff : )
ISoKa
0
cs_freenaute Messages postés 147 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 6 avril 2009
5 oct. 2007 à 15:52
yep ! merci pour l'éclairage lSoKa et thx ArKan!s c'est ce que j'espèrais trouver.
j'applique .

 
0
cs_ISoKa Messages postés 435 Date d'inscription jeudi 27 avril 2006 Statut Membre Dernière intervention 17 octobre 2008
5 oct. 2007 à 18:08
Par contre, si tu te sers des regexs, pour eviter d'avoir 7896545655585 detections differentes genre enculé enculer enculay etc...* (.?)+ et ? .

ISoKa
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_freenaute Messages postés 147 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 6 avril 2009
5 oct. 2007 à 18:26
oki bien vu lSoKa, ça va le faire hein ! Cette remote allège des boulays éventuels...c tjrs ça de gagné en économie d'énergie !
donc réponse acceptée aussi hein lSoKa ;) thx

 
0
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
5 oct. 2007 à 18:39
on $*:text:/(^|\s)(test|badword)(\s|$)/S:?:{
ban -ku300 #tonsalon $nick raison
ignore $nick
close -m $nick
}

Pour faire plaisir a certaine personne mais ça peut tenir en une ligne !
0
cs_freenaute Messages postés 147 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 6 avril 2009
5 oct. 2007 à 20:30
ouep ! en une seule ligne, ça aide à se débarrasser parfois d'un user obstiné qui harcèle , en effet! merci à toi wims!
en fait je peux aussi refuser simplement les PV par /mode pseudo -D ce qui est d'une rare efficacité...lol.,
il y a aussi le /mode pseudo +R pour ne recevoir que les PV des users enregistrés sur le serveur...
Le mieux étant de couper sa connexion si on est un ours mal léché, comme ça personne ne fait de PV...
je rève de trouver un addon qui fasse ma vaisselle et mon ménage + servir le p'tit dej !
arffff...
;) merci à tous si kkun trouve cet addon... (ou cet apps)

 
0
cs_TropNul Messages postés 340 Date d'inscription dimanche 18 septembre 2005 Statut Membre Dernière intervention 22 octobre 2009
7 oct. 2007 à 05:56
elo

il serait aussi bien de verifier si la pseudonyme se trouve effectivement sur
un/le salon ou tu es operateur. cela evitera de faire les commandes sanctionnantes
lorsque ce ne sera pas le cas.

ca pourrait ressembler a ce qui suit.


Var %i = 1
While $chan(%i){
  Var %c = $v1
  If ($nick ison %c) &amp;&amp; ($me isop %c) {
    [commandes sanctionnantes]
  }
  Inc %i
}



Cordialement,
TropNul
0
cs_freenaute Messages postés 147 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 6 avril 2009
8 oct. 2007 à 01:51
'rci TropNul pas nul ;)
c noté.thx

 
0
Rejoignez-nous