WANTISPAM V3.0

RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009 - 14 mai 2008 à 19:03
loulouzou Messages postés 58 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 7 mars 2009 - 7 mars 2009 à 12:04
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/46666-wantispam-v3-0

loulouzou Messages postés 58 Date d'inscription mercredi 21 novembre 2007 Statut Membre Dernière intervention 7 mars 2009
7 mars 2009 à 12:04
ses le must a mon avis de anti spam sur le site 10/10
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
15 mai 2008 à 21:11
Ok pour la regex :) Elle est assez bien foutue pour détecter un maximum de choses sans faire trop de faux-positifs, je pense que si tu te plonges dedans tu arriveras à la rendre plus lisible mais pas l'améliorer de beaucoup. En tout cas ton amélioration me parait intéressante.

Et je ne cherche pas à fusionner d'autres langages avec mIRC (bien que ce soit possible), je donnais juste un exemple pour illustrer mon propos, à savoir : "coder en un minimum de lignes ne me parait pas être un objectif raisonnable" :)

Bonne continuation, à bientôt :)
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
15 mai 2008 à 20:17
Merci CsDarkman pour la note :)

PADA TropNul m'a attiré l'attention sur le regex

$regex($strip($1-),/(\#\w+\b|(www\.|http:\/\/)\w+([-_\.]?\w+)?\.\w{2,4})/i)

Et moi j'ai refais comme ça

$regex($3-,/(\#\w+\b|(?:[-_\.]\w+)?@\w+([-_\.]?\w+)?\.\w+\b|(www\.|http:\/\/)\w+([-_\.]?\w+)?\.\w{2,4})/i)

Il y a une différence je pense et c’est pas mal de l'utiliser je pense :/ j'ai ajouter pour les mail et si tu veux j'ajouterai pour les serveur irc aussi :)

pour le premier code c'etait le premier code que j'ai fais dans ma vie c'est sur que ça doit etre a ce point je te rappel que j'ai commencé a scripter depuis novembre 2006 et j'ai arreté en decembre car j'etais occupé ensuite j'ai repris depuis 1 ou 2 semaines :)
donc je suis nouveau née en script mIRC :)


Je ne vois pas pk tu cherche a fusionner les code php, perl, ruby ou autre ak mIRC !!

Nous somme ici pour présenté nos codes et avoir des coms pour les améliorer :)

Tien par exemple avant cette version j'avais fais l'exception des user par niveau on m'a dis que ça va pas trop marcher ensuite j'ai vu le code de CsDarkman pour traduction ça m'a donné une idée pour développer le mien et soit sur si il n'y avait pas de "1" il n'aurait jamais eus de "2" ;)

Arkanis m’a tjr aidé a amélioré mes codes je suis débutant c’est normale :)
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
15 mai 2008 à 20:05
Troll detected :-)

L'important quand tu fais du dev à un niveau un peu sérieux, c'est souvent (en entreprise notamment) que ton code 1/ remplisse la fonction pour lequel il est écrit avec un certain nombre de contraintes (performance, modularité, montée en charge, interfaçage avec d'autres systèmes), 2/ soit lisible/maintenable/possible à reprendre par un autre développeur.

Un petit exemple pour la route ?
Voici du Perl :
perl -le '$|=$_=1; (1x$_)!~/^(11+)\1+$/o && print while ++$_'

C'est court, c'est sûr. Mais je doute que tu comprennes instantannément à quoi ça sert (le premier qui trouve sans le lancer a droit à mon admiration éternelle :-)) Et je doute également qu'un développeur "normal" arrive à l'adapter à ses besoins facilement...

My 2 cents...
CsDarkman Messages postés 24 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 16 mai 2008
15 mai 2008 à 19:37
Lol +10 WORLDMT
tn code fonctionne bien
on peut avoir 1000 syntaxes pour faire un code comme ca l'important ke le code fonctionne bien
o monde de programmation soit java c++ vb irc tcl j sais pa koi
l'important c la resultat en moindre de ligne et ta fai ca alors tu mérite ta +10 bon courage ^^
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
15 mai 2008 à 15:12
C'est surtout que je fais plus de mIRC assez souvent, et si je ne dis pas de bêtises, dans d'autres langages, la condition porte sur la ligne entière quand tu mets un séparateur type ";" (en php, perl, ruby par exemple). Enfin, ce serait à vérifier !

Pour la regex, tu as repris telle quelle la regex de TropNul sur ta source précédente ? A vue de nez elle doit pouvoir se rendre un peu plus lisible en la construisant avec des variables, puisque le même motif se répète plusieurs fois.
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
15 mai 2008 à 14:44
(au temps :p)
comme quoi, cette syntaxe est loin d'être la plus claire ! à éviter au maximum donc
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
15 mai 2008 à 13:27
Ok, (au temps|autant) pour moi, mon cerveau était éteint hier, désolé. Comme quoi je suis pas encore en osmose avec mIRC..

(saloperie de mIRC)
cs_SornDrixer Messages postés 2084 Date d'inscription jeudi 12 décembre 2002 Statut Membre Dernière intervention 30 janvier 2011 8
15 mai 2008 à 11:00
Titre de la source modifié, merci d'éviter l'usage de superlatifs dedans ;)
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
15 mai 2008 à 10:44
merci PADA
mais je voulais t'eclairsir quelque choses :)
pour que tu sois mechant ou pas je ne te juge pas et je prefaire un commentaire mechant qu'une flatterie :)

en plus pour

if (($2 isop $1) || ($readini(protect_user.ini,prot,$nick)) || ($wildtok($3-,#*,1,32) == $1) || (!$regex($3-,/(\#\w+\b|(?:[-_\.]\w+)?@\w+([-_\.]?\w+)?\.\w+\b|(www\.|http:\/\/)\w+([-_\.]?\w+)?\.\w{2,4})/i))) return | ban -k $1-2 2 4Spam Protection 1by WorldDMT 14 trouve moi en pv en cas d'erreur


dsl PADA mais j'ai bien dis que j'ai testé alors si ça ne ne s'execute pas qui m'a kick alors ??? regarde le "|" :) ce qui veu dire moi le debutan je te dis que si le nick est op ou est ds la liste proteger ou a ecrit le nom du chan ou n'est pas ds le regex return mais si nn ça serait ban -k ;)

et j'ai tester et je me suis touver ak un kick ban :D mais t'a raison apres le return ya pas d'action mais si c'etait sans le "|" :)
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
15 mai 2008 à 10:35
PaDa, ce que tu dis est vrai s'il y avait des { }, mais ce n'est pas le cas
dans un IF, si tu n'as pas de { }, il ne fait que la 1ere action
//if (1 == 2) echo -a k1 | echo -a k2
affichera k2 dans tous les cas
si maintenant à la place du k1 tu as return, le k2 ne s'affichera que si la condition est fausse.


ce qu'il tenait à faire, c'est ça :
if (($2 isop $1) || ($readini(protect_user.ini,prot,$nick)) || ($wildtok($3-,#*,1,32) == $1) || (!$regex($3-,/(\#\w+\b|(?:[-_\.]\w+)?@\w+([-_\.]?\w+)?\.\w+\b|(www\.|http:\/\/)\w+([-_\.]?\w+)?\.\w{2,4})/i))) return
ban -k $1-2 2 4Spam Protection 1by WorldDMT 14 trouve moi en pv en cas d’erreur

et il s'est dit (truc stupide, certes), qu'il peut tout mettre en une ligne en rajoutant |. Ca fonctionne, mais c'est laid
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
15 mai 2008 à 00:43
Rah...

if (($2 isop $1) || ($readini(protect_user.ini,prot,$nick)) || ($wildtok($3-,#*,1,32) == $1) || (!$regex($3-,/(\#\w+\b|(?:[-_\.]\w+)?@\w+([-_\.]?\w+)?\.\w+\b|(www\.|http:\/\/)\w+([-_\.]?\w+)?\.\w{2,4})/i))) return | ban -k $1-2 2 4Spam Protection 1by WorldDMT 14 trouve moi en pv en cas d'erreur

Voici le code que tu as écrit dans un de tes commentaires : là-dedans, le "ban -k" ne peut pas être exécuté, puisqu'il est mis après un "return" qui arrête l'exécution du code.

Ouvre ton éditeur de remotes.
Tape ceci :
alias blah {
echo -s avant
if ($true) return | echo -s return!
echo -s après
}

Et amuse-toi :-)

Ensuite, je ne tiens pas à être méchant, mais je n'ai pas vraiment besoin de tester ton code pour savoir ce qu'il fait, s'il marche en gros, et s'il m'intéresse. Comme je l'ai dit plus haut, je le trouve intéressant pour l'aspect pédagogique. Il est relativement original, et plutôt bien écrit pour un débutant qui passerait, et pourrait s'en inspirer. Les autres t'ont déjà fait des remarques constructives sur ta manière de coder, tu vas pouvoir progresser avec cela, et petit à petit tu pourras arriver à une source vraiment sympa ! Mes commentaires ne sont pas méchants ou négatifs, je pense sincèrement que ta source est intéressante, je faisais juste remarquer que l'un de tes codes DANS TES COMMENTAIRES était un peu mal foutu.

Et puis, pour mon premier comment, je te taquine juste, désolé si ça t'a été désagréable, ça n'était pas le but.

Bonne continuation !
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
14 mai 2008 à 23:06
moi je teste tjr avant de poster et ça marche a 100%
alors que toi t'a pas testé je ne sais pas sur quoi tu te base ;-)
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
14 mai 2008 à 23:01
@WorldDMT: non, je n'ai pas testé : je n'ai pas de doute sur le fait que ton code s'exécute bien, c'est ce que tu as mis en commentaire, juste au dessus du mien, qui ne pouvait pas marcher, relis-toi ;o)
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
14 mai 2008 à 22:37
CsDarkman merci
mais j'ai pas compris "utilise aussi un halt apré l'action"
CsDarkman Messages postés 24 Date d'inscription samedi 12 avril 2008 Statut Membre Dernière intervention 16 mai 2008
14 mai 2008 à 22:28
bein ta corrigé le max d'erreur
ta mis tt sous l alias
ta version comém a encore besoin de mise a jour
Pour ta action
ban -k $1-2 2 4Spam Protection 1by WorldDMT 14 trouve moi en pv en cas d'erreur
utilise aussi un halt apré l'action
Pour les multi version essaye de faire des mise a jour o méme code
Pas créer chaque jour une nouvelle v$
:)
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
14 mai 2008 à 22:18
PADA esque t'as testé le script ?? :) mon ban -k s'execute super bien ;)

Arkanis si c'est pour le | ok j'enlève :p

et pour la faute j'avais pris sur "d'" :/ j'avais pas fais attention t'a raison :pp
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
14 mai 2008 à 21:56
le but, c'est de ne pas avoir de | (c'est super moche et ça ralenti inutilement le code !!!)
ne pas non plus abuser des lignes super longues
le regex est déjà assez long en lui même pour que tu puisses lui attribuer une ligne à lui tout seul

les fautes d'orthographe que je t'ai données sont bien entendu corrigées ... à toi de les trouver dans ta description qui fait partie de la source.

le unload peut lui aussi tenir en une ligne :
on *:unload:echo * Merci d'avoir utiliser WorldDMT Anti Spam (Wantispam V3.0)
(en corrigeant cette horrible faute au passage)

tu ne perds pas tellement en clarté en plus.
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
14 mai 2008 à 21:56
C'est super cool, mais il n'y a aucune chance que ton "ban -k" s'exécute un jour ;-) Tu peux mettre n'importe quoi c'est la même chose...
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
14 mai 2008 à 21:29
salut Arkanis

tu a vu ça ou??? "Gaffe sur l'ortho (d'avoir installé, la liste des nicks protégés, d'avoir utilisé) progégé ? loooooooooool :pp

et pour le

if (($nick isop $chan) || ($readini(protect_user.ini,prot,$nick)) || ($wildtok($3-,#*,1,32) == $chan)) return

pourquoi pas aussi ça

if (($2 isop $1) || ($readini(protect_user.ini,prot,$nick)) || ($wildtok($3-,#*,1,32) == $1) || (!$regex($3-,/(\#\w+\b|(?:[-_\.]\w+)?@\w+([-_\.]?\w+)?\.\w+\b|(www\.|http:\/\/)\w+([-_\.]?\w+)?\.\w{2,4})/i))) return | ban -k $1-2 2 4Spam Protection 1by WorldDMT 14 trouve moi en pv en cas d’erreur

;) c'est cool nn :p
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
14 mai 2008 à 21:19
PADA :)

moi perso j'ai jamais vu des anti spam avec une liste d'exception c'est ce que j'ai essayé de faire c'est pas le regex qui compte :)

cette petite remote me permet d'avoir un antispam mieu que les autre a mon avis :)
cs_PaDa Messages postés 1804 Date d'inscription mardi 15 juillet 2003 Statut Membre Dernière intervention 22 septembre 2009 5
14 mai 2008 à 21:11
"LE MEILLEUR ANTISPAM DE LA SAISON PAR WORLDDMT"
Tu fais aussi dans l'humour ?

C'est un petit remote intéressant, surtout pour un débutant puisqu'il est lisible, mais ce n'est pas parce que tu as pondu une petite regex assez basique que tu peux dire ce genre de chose..

Bonne continuation
RCA ArKanis Messages postés 1287 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 21 février 2009
14 mai 2008 à 19:03
Wims t'avait précédemment fait remarquer qu'il n'était pas nécessaire d'utiliser $chan et $nick lors de l'appel de l'alias de traitement.
Sinon, je ne vois pas pourquoi avoir fait un nouveau oO remplacer l'ancien aurait été tout aussi bien, à moins que tu le supprimes (et oui, tu ne vas pas laisser 2 versions dont une qui ne sert à rien)

Dans le menu, tu peux utiliser les $style pour indiquer directement s'il est dans la liste ou pas (le 1, cf /help $style)

Gaffe sur l'ortho (d'avoir installé, la liste des nicks protégés, d'avoir utilisé)
progégé ? :p

Je vais pas m'amuser à corriger les fautes de la description par contre.

if ($2 isop $1) return
if ($wildtok($3-,#*,1,32) == $1) return
if (!$readini(protect_user.ini,prot,$nick)) {

deviennent :
if (($nick isop $chan) || ($readini(protect_user.ini,prot,$nick)) || ($wildtok($3-,#*,1,32) == $chan)) return
Rejoignez-nous