WORLDDMT ANTISPAM V2.1 (WANTISPAM)

cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 - 6 mai 2008 à 19:15
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 - 12 mai 2008 à 18:46
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/46568-worlddmt-antispam-v2-1-wantispam

cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
12 mai 2008 à 18:46
N'utilise pas les niveau, pourquoi ne fait tu pas simplement une liste d'exeption soit par pseudo ou host ou autre ? Les level d'accès sont généralement utilisé dans des scripts entier.
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
12 mai 2008 à 18:38
je comprend parfaitement Arkanis
mais celui qui a un script qui a un level plus haut i pourra modifier le level qu'il veu c'est rien que 2 etape il peux meme faire remplacé 101 par 1000 par ex.

en tt cas je vais amelioré encore pour la liste d'exeption

je vais faire un nouveau Wantispam V2.2 et les niveau seront a 100000 :p lol
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
12 mai 2008 à 18:31
la ligne du if, faut effectivement rajouter une parenthèse tout à la fin pour équilibrer.

if ($regex($1-,/(\#\w+\b|(?:[-_\.]\w+)?@\w+([-_\.]?\w+)?\.\w+\b|(www\.|http:\/\/)\w+([-_\.]?\w+)?\.\w{2,4})/i)) ban -k $chan $nick 2 SPAM INTERDIT 1WorldDMTT

et oui, je ne teste pas les codes que je mets en commentaire et je n'ai pas l'habitude de dire quand je teste, malgré le fait que ce soit tellement rare :p

le 100 est arbitraire, quelqu'un d'autre pourrait vouloir que ça ne fonctionne pas pour ceux en dessous de 1000, etc ...

perso, j'utilise JAMAIS les levels, y'a trop de problèmes de compatibilité


CsDarkman, pourquoi ça ne fonctionnerait pas ?
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
12 mai 2008 à 18:06
mais bien sur ça doi etre chez moi "moi" veux dire celui qui a le script donc chaqun qui charge ce script chez lui a des condition pour les users
donc le script enregistre dans users le niveau et puisque le script est chez moi donc c'est de chez moi que les commande kick sortent lors d'un spam tu comprend ce que je veu dire
ex:
si je t'ajoute ds la liste ton niveau chez moi sera 101 ds ce cas si tu spam le script le te kick pas tu aura une exeption tu vois un peu?
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
12 mai 2008 à 17:46
Oui, bah tu le met si tu veux, mais ça ne marche que chez toi
car la gestion des utilisateurs est différente chez les autres, ça se trouve chez qqun, le level 100 désigne les user basique et ton code sera incorrect, utilise simple if ($nick isop $chan) (déja présent), si tu veux que les halfop ne soit pas touché non plus rajoute un if ($nick ishop $chan) etc..

Oui ton code permet de géré les level des users, mais ici, les codes sont destiné a tout le monde, celui qui doit utilisé ton code ne peux pas gardé sont system d'accès, donc c'est pas une très bonne idée, sinon tu fait un system qui permet de protégé des users selon leur level d'acces en plus de leur status (op, halfop , voice) :)
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
12 mai 2008 à 17:39
WIMS
a propos de if ($ulevel >= 100) return
je ne sais pas si j'ai bien compris ta question mais

quand on ajoute un user au niveau 101

menu nicklist,query {
-
Wantispam
.proteger:.guser 101 $1
.suprimer:.ruser $1!
}

donc le if ($ulevel >= 100) return c'est que cet utilisateur qui est au niveau 101 ne sera plus kick au cas un spam et voilà l'exeption dont je parle
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
12 mai 2008 à 17:32
Effectivement pour le if.
Je ne comprend pas ton if ($ulevel >= 100) return rajoute le dans les condition du /return si tu veux :)
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
12 mai 2008 à 17:25
il fau ajouter 2 () donc:

if ($regex($1-,/(\#\w+\b|(?:[-_\.]\w+)?@\w+([-_\.]?\w+)?\.\w+\b|(www\.|http:\/\/)\w+([-_\.]?\w+)?\.\w{2,4})/i)) ban -k $chan $nick 2 SPAM INTERDIT 1WorldDMT


là ça donne mais il n'y a pas d'exception donc le if ($ulevel >= 100) return doi etre presente si nn ce n'est plus avec exception
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
12 mai 2008 à 17:19
toi aussi WIMS

/elseif: invalid format (line 3, script.ini)

ça donne tjr pas :/
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
12 mai 2008 à 17:03
Étant donné que ça reste assez basique, je pense que souvent, comme moi, il écris le code a la volée ds les commentaires directement, et donc souvent c'est non testé (moi je le signale souvent quand j'ai testé ou pas), il manque juste une parenthèse au début du if,

if ($regex($1-,/(\#\w+\b|(?:[-_\.]\w+)?@\w+([-_\.]?\w+)?\.\w+\b|(www\.|http:\/\/)\w+([-_\.]?\w+)?\.\w{2,4})/i) ban -k %chan %nick 2 SPAM INTERDIT 1WorldDMTT
}

Autre remarque, Lorsque tu rediriges un evenement vers un alias directement dans l'evenement (comme c'est le cas ds le code d'Arkanis) tout ce qui étais dispo dans l'evenement est dispo dans l'alias, sans avoir a fournir les paramètres
petit exemple :
on *:text:*:#salon:GaisGa
alias GaisGa echo -a $nick $chan

Le code final donnerait :

alias traitement_anti_spam {
if ($nick isop $chan) || ($wildtok($1-,#*,1,32) == $chan) return
if ($regex($1-,/(\#\w+\b|(?:[-_\.]\w+)?@\w+([-_\.]?\w+)?\.\w+\b|(www\.|http:\/\/)\w+([-_\.]?\w+)?\.\w{2,4})/i) ban -k $chan $nick 2 SPAM INTERDIT 1WorldDMTT
}

on @*:NOTICE:*:#:traitement_anti_spam $strip($1-)
on @*:ACTION:*:#:traitement_anti_spam $strip($1-)
on @*:TEXT:*:#:traitement_anti_spam $strip($1-)
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
12 mai 2008 à 15:57
CsDarkman
Arkanis fais de bon cript souvent mais des fois ds les commentaires c'est comme si il ne teste pas sont script avant de posté :p
mais bon il m'a donné une idé genial sur alias comme tu dis il y aura un V3 :p
mais bon Arkanis j'ai pas pus tester le script pour voir si les niveau travaille tjr
car selon les niveau on pourra faire une exemption sur quelque users preci.
CsDarkman Messages postés 24 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 16 mai 2008
12 mai 2008 à 15:43
ce code corrigé est parfait en partie théorique mais ca marche pa avec tt les version des script ini de script
surtt les nouvelles versions de nos jours
WORLDDMT profite de cette correction avec tn prelmier essaie pour
faire tn code personnel par exemple v3
:D
pamal comém je t'encourage.
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
12 mai 2008 à 12:43
merci Arkanis
mais esque tu a testé le script??

* /if: 'ban' unknown operator (line 5, script.ini)
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
12 mai 2008 à 12:05
ne t'en fais pas pour les notes ... perso j'aime pas en mettre, vu que tout est relatif :D

le . devant ban ne sert à rien
vérifie que tu sois bien op (en rajoutant @ sur les events)

j'aime pas trop que t'utilises les levels (ulevel > 100) vu que ça dépend entièrement de l'utilisateur !

le point 6) de Wims est assez important.

alias traitement_anti_spam {
var %chan $1, %nick $2
if (%nick isop %chan) return
tokenize 32 $strip($3-)
if ($wildtok($1-,#*,1,32) == %chan) return
;"if ($ulevel >= 100) return" ne fonctionnera plus à mon avis
if $regex($1-,/(\#\w+\b|(?:[-_\.]\w+)?@\w+([-_\.]?\w+)?\.\w+\b|(www\.|http:\/\/)\w+([-_\.]?\w+)?\.\w{2,4})/i) ban -k %chan %nick 2 SPAM INTERDIT 1WorldDMT™
}
on @*:NOTICE:*:#:traitement_anti_spam $chan $nick $1-
on @*:ACTION:*:#:traitement_anti_spam $chan $nick $1-
on @*:TEXT:*:#:traitement_anti_spam $chan $nick $1-

t'auras ainsi le nick dans %nick, chan dans %chan, et le texte dans $1-, comme tes 3 events
mais t'aurais pu garder $1 $2 et $3-. J'ai fait ça pour que tu comprennes mieux l'analogie.

Au final, ton alias de traitement donnerait :
alias traitement_anti_spam {
tokenize 32 $strip($1-)
if ($2 isop $1) return
if ($wildtok($3-,#*,1,32) == $1) return
if $regex($3-,/(\#\w+\b|(?:[-_\.]\w+)?@\w+([-_\.]?\w+)?\.\w+\b|(www\.|http:\/\/)\w+([-_\.]?\w+)?\.\w{2,4})/i) ban -k $1-2 2 SPAM INTERDIT 1WorldDMT™
}

le code est plutôt propre sinon

d'autres petits détails : le nombre de téléchargements ne compte que ceux du .zip étant donné qu'il n'y a aucun moyen de contrôler le c/c du texte au milieu. En conséquence, n'en tiens pas compte.
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
9 mai 2008 à 19:25
aucune note :S
j'espere que c'est pas si nul que ça :/
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
9 mai 2008 à 18:45
ok merci
voilà comme prevu :)
donnez moi des idée qui pourron amelioré ce script merci
Utilisateur anonyme
9 mai 2008 à 15:44
Hello. Tu peux mettre à jour celle-ci. J'ai supprimé la nouvelle source (v2), comme demandé par message.
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
9 mai 2008 à 14:59
Non justement, l'autre et tu met celle ci a jour
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
9 mai 2008 à 14:58
oups là il va falloir l'aide d'un adm
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
9 mai 2008 à 14:57
je suprime celle là alors :p
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
9 mai 2008 à 14:39
Tu n'as pas le droit d'ajouter une nouvelle version de ta source en tant que nouvelle source, tu doit mettre celle-ci a jour.
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
9 mai 2008 à 12:45
voilà une nouvelle version configurable ;)

Wantispam V2.1

http://www.ircfr.com/codes/WANTISPAM-V2_46600.aspx
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
8 mai 2008 à 14:40
Ben du spam c'est du spam, donné un site internet ou un server irc c'est pareil ds ce cas là, mais c'est comme tu veux :)
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
8 mai 2008 à 09:33
ok merci WIMS

mais a propos de /\b(\^@\S+|www\.\S+|http://\S+|irc\.\S+|irc://\S+|\w+(?:[\.-]\w+)?@\w+(?:[\.-]\w+)?\.[a-z]{2,4})\b/gi

tu a oublié le chan!! pour le server IRC c'est rare d'avoir des cas pareil et finalement nous somme des ops donc si le bot ou le script va tt faire on n'a plus de role ;)

j'avais pas mis pour les mail t'a raison bon je fais celà ça te dirais quelque chose?

/(\#\w+\b|(?:[-_\.]\w+)?@\w+([-_\.]?\w+)?\.\w+\b|(www\.|http:\/\/)\w+([-_\.]?\w+)?\.\w{2,4})/i)
et pour que ça soit configurable je travail sur ça merci pour les conseils
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
6 mai 2008 à 19:15
Pas si mal, pas si mal, mais il y a quand même bcp de chose a dire :

1)Il manque deux espace a chaque fois ici : {halt} et des /return suffirait amplement (plus propre)

2)Ce n'est pas configurable, tu pourrais faire en sorte que l'on puisse choisir sur qui ça doit kické (ici seul les op sont epargné)

3) tu ne vérifie pas si l'on peut kické (ds le cas contraire, une erreur du server sera retourné)

4)Tu pourrais utiliser le $regex pour controler, et les url, et les #salon

5)Tu n'utilises pas $strip partout, et tu devrais utiliser /tokenize 32 $strip($1-) en début de code histoire d'avoir les paramètre directement strippé

6)Ce point est le plus important, ton code n'est qu'une succession de trois copier/coller, seul les evenement change, donc utilise un alias qui regroupe tout

7) pour kick ban, utilise /ban -k #salon $nick 2 raison_kick (le ban se fera sur le type 2, ce qui correspond a $address($nick,2) ($wildsite dans un evenement :p)), tu peux rajouté un ban sur le pseudo si tu veux mais là tu ne ban que sur le pseudo

8)Je ne sais pas si le pattern du regex et de toi ou si tu la trouvé ou autre, mais je te propose celui là, bcp plus poussé, il detecte les email, server irc, et url bien sur :
/\b(\^@\S+|www\.\S+|http://\S+|irc\.\S+|irc://\S+|\w+(?:[\.-]\w+)?@\w+(?:[\.-]\w+)?\.[a-z]{2,4})\b/gi
mais c'est uniquement si tu veux

Ce genre de source existe surement déja sur le site donc tu devrait amelioré ce code en le rendant configurable histoire qu'il est de l'interet sur le site :)
Rejoignez-nous