cs_PaDa
Messages postés1802Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 2009
-
3 août 2004 à 05:59
Kerrigan
Messages postés708Date d'inscriptionlundi 15 juillet 2002StatutMembreDernière intervention17 mars 2005
-
3 août 2004 à 15:11
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
Kerrigan
Messages postés708Date d'inscriptionlundi 15 juillet 2002StatutMembreDernière intervention17 mars 2005 3 août 2004 à 15:11
var %i $lines(antispam.txt)
while %i {
if ( $read(antispam.txt,%i) isin $1- ) { $iif((%avdespam),annspm $nick) | close -m $nick | .ignore $address($nick,2) | halt }
dec %i
}
c'est pas une bonne façon de traiter tout ça je te propose ça :
var %i = 1
while $read(antispam.txt,%i) {
if ( $ifmatch isin $1- ) { $iif((%avdespam),annspm $nick) | close -m $nick | .ignore $address($nick,2) | halt }
inc %i
}
ça devrait etre un tout petit peu plus rapide mais faudrait faire le test.
neko01
Messages postés10Date d'inscriptionmardi 2 décembre 2003StatutMembreDernière intervention 6 septembre 2004 3 août 2004 à 06:44
merci PaDa pour ces conseils , moi et l'optimisation ce n'est pas ca , de plus pour l'avertissement sur le salon je me suis trompé de ligne c vrai . je corrige ca de suite.
Par contre pour les autres utilité comme kick etc ... je verrais plus tard "surement" car la jai mon script a faire et vu que javai pas vu de sources comme celle ci je me suis dis pourquoi pas la postée juste pour aidé au moin un peu :D
Voila
[n3k0]
cs_PaDa
Messages postés1802Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 3 août 2004 à 06:02
ouhla j'viens de me lourder dans mon optimisation :p ca merdouille : ca ce sera mieux :
var %a = $comchan($1,0)
while %a {
msg $comchan($1,%a) 4/!\ Spam de $1 --> $address($1,2)
dec %a
}
cs_PaDa
Messages postés1802Date d'inscriptionmardi 15 juillet 2003StatutMembreDernière intervention22 septembre 20095 3 août 2004 à 05:59
Ce n'est pas vraiment un antispam , mais plutot un détecteur de spam en pv : la différence étant que quand on me parle d'antispam , je vois des pseudos qui se connectent par sockets et "testent" des nicks ou alors font des joins part sans arrêt etc... et que les spams un peu perfectionnés ne viendront jamais te voir si t'es op sur un salon commun avec ce qui limite fortement le truc ...mais bon pas grave ca j'ai ptet pas la même vision que tout le monde :p
Sinon je trouve dommage de pas avoir trop le controle sur ce que tu détectes (l'utilisateur lambda va pas comprendre qu'il peut mettre plein de détections différentes puiske tout est écrit a la suite dans un fichier texte , et il saura pas ou visualiser ce qu'il détecte) une liste aurait ptet été bien
De plus ce que tu détectes est très rigide : si tu veux te pencher dessus utilise des regex
text Entrez ici le text ( ou une partie de ce text ) à stopper,4,80 60 250 15 < on voit pas le "stopper"
Sinon niveau code :
if ( $read(antispam.txt,%i) isin $1- || $read(antispam.txt,%i) == $1- ) le deuxième truc est inutile , déja couvert par la première condition ... tape //echo > $iif(blabla isin blabla,1,0) si tu veux t'en convaincre .
Suggestion : tu pourrais ptet compléter ta source aussi , en proposant diverses réactions autre que "avertir sur le salon" , kick par un bot ou t'as un access , ou avertissement en /echo , ou .spam (commande des ops offs pour demander un kill sur le spammer) etc
Tu devrais mettre button Ok ,7, 240 130 60 20,ok au lieu de button Ok ,7, 240 130 60 20 , et ainsi tu pourrais te passer du dialog -x dans le sclick ...
Enfin l'avertissement est bizarrement fait :
var %a 1
while ( %a <= $comchan($1,0) ) {
set %chanspam $comchan($1,%a)
inc %a
}
msg %chanspam 4/!\ Spam de $1 --> $address($1,2)
avec ca tu n'avertis pas sur les salons ou le spammeur est qu'il spam , mais tu avertis sur le dernier salon ou il est seulement... ne serait ce pas plutot :
var %a 1,%chanspam
while ( %a <= $comchan($1,0) ) {
%chanspam = $comchan($1,%a)
msg %chanspam 4/!\ Spam de $1 --> $address($1,2)
inc %a
}
ou même en un peu mieux optimisé (plus beau a mon gout):
var %a = $comchan($1,0)
while $comchan($1,%a) {
msg $v1 4/!\ Spam de $1 --> $address($1,2)
dec %a
}
($ifmatch au lieu de $v1 pour les anciennes version de mirc) ...
3 août 2004 à 15:11
while %i {
if ( $read(antispam.txt,%i) isin $1- ) { $iif((%avdespam),annspm $nick) | close -m $nick | .ignore $address($nick,2) | halt }
dec %i
}
c'est pas une bonne façon de traiter tout ça je te propose ça :
var %i = 1
while $read(antispam.txt,%i) {
if ( $ifmatch isin $1- ) { $iif((%avdespam),annspm $nick) | close -m $nick | .ignore $address($nick,2) | halt }
inc %i
}
ça devrait etre un tout petit peu plus rapide mais faudrait faire le test.
3 août 2004 à 06:44
Par contre pour les autres utilité comme kick etc ... je verrais plus tard "surement" car la jai mon script a faire et vu que javai pas vu de sources comme celle ci je me suis dis pourquoi pas la postée juste pour aidé au moin un peu :D
Voila
[n3k0]
3 août 2004 à 06:02
var %a = $comchan($1,0)
while %a {
msg $comchan($1,%a) 4/!\ Spam de $1 --> $address($1,2)
dec %a
}
3 août 2004 à 05:59
Sinon je trouve dommage de pas avoir trop le controle sur ce que tu détectes (l'utilisateur lambda va pas comprendre qu'il peut mettre plein de détections différentes puiske tout est écrit a la suite dans un fichier texte , et il saura pas ou visualiser ce qu'il détecte) une liste aurait ptet été bien
De plus ce que tu détectes est très rigide : si tu veux te pencher dessus utilise des regex
text Entrez ici le text ( ou une partie de ce text ) à stopper,4,80 60 250 15 < on voit pas le "stopper"
Sinon niveau code :
if ( $read(antispam.txt,%i) isin $1- || $read(antispam.txt,%i) == $1- ) le deuxième truc est inutile , déja couvert par la première condition ... tape //echo > $iif(blabla isin blabla,1,0) si tu veux t'en convaincre .
Suggestion : tu pourrais ptet compléter ta source aussi , en proposant diverses réactions autre que "avertir sur le salon" , kick par un bot ou t'as un access , ou avertissement en /echo , ou .spam (commande des ops offs pour demander un kill sur le spammer) etc
Tu devrais mettre button Ok ,7, 240 130 60 20,ok au lieu de button Ok ,7, 240 130 60 20 , et ainsi tu pourrais te passer du dialog -x dans le sclick ...
Enfin l'avertissement est bizarrement fait :
var %a 1
while ( %a <= $comchan($1,0) ) {
set %chanspam $comchan($1,%a)
inc %a
}
msg %chanspam 4/!\ Spam de $1 --> $address($1,2)
avec ca tu n'avertis pas sur les salons ou le spammeur est qu'il spam , mais tu avertis sur le dernier salon ou il est seulement... ne serait ce pas plutot :
var %a 1,%chanspam
while ( %a <= $comchan($1,0) ) {
%chanspam = $comchan($1,%a)
msg %chanspam 4/!\ Spam de $1 --> $address($1,2)
inc %a
}
ou même en un peu mieux optimisé (plus beau a mon gout):
var %a = $comchan($1,0)
while $comchan($1,%a) {
msg $v1 4/!\ Spam de $1 --> $address($1,2)
dec %a
}
($ifmatch au lieu de $v1 pour les anciennes version de mirc) ...
voilou bonne continuation