Anti spam chan [Résolu]

Messages postés
38
Date d'inscription
vendredi 27 février 2009
Dernière intervention
8 novembre 2010
- - Dernière réponse : cs_wims
Messages postés
2473
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
1 août 2010
- 28 nov. 2006 à 18:42
j ai refais un source de Delirium ( qui est la http://www.ircfr.com/codes/ANTI-SPAM-OU-GROS-MOT-AVEC-AVERTISSEMENT-PUIS_14472.aspx ) en anti spam avec regex de PaDa et sa rend bien
1-> Sa l'averti
2-> Sa le kick
3-> Sa le ban
:o)

on *:text:*:#: {
  if ($me isop $chan) {
    if $regex($strip($1-),/(http:\/\/\S+|www\.\S+|#|(?:\d{2} ){4}\d{2}|\w+@\w+\.(?:com|fr|org|net)|w w w \. (?:\S )+)/i) {
      if ($nick isop $chan) {
        notice $nick �2;�3;4C'est pas parceque t'es  @op $nick que tu peut spammer ! ( Troud'bal )
      }
      else {
        inc %pub $+ $address
        if (%pub [ $+ [ $address ] ] = 1) {
          notice $nick �2;�1F;/!\�1F; �3;4�1F;Spam�1F; !!! C'est ton %pub [ $+ [ $address ] ] $+ er avertissement $nick !!! Au 2ème c'est le kick !!! �3;1�1F;/!\�1F;
          .timer1 1 3600 .unset %pub [ $+ [ $address ] ]
        }
        else {
          if (%pub [ $+ [ $address ] ] = 2) {
            kick $chan $nick �2;�1F;/!\�1F; �3;4�1F;Spam�1F; !!! $me pas contant, c'est ton %pub [ $+ [ $address ] ] $+ ème avertissement $nick !!! Au 3ème c'est le ban !!! �3;1�1F;/!\�1F;
            .timer1 1 3600 .unset %pub [ $+ [ $address ] ]
          }
          else {
            if (%pub [ $+ [ $address ] ] = 3) {
              ban -u600 # $address
              .kick $chan $nick �2;�1F;/!\�1F; �3;4�1F;Spam�1F; !!! Je t'es avertis ... Je t'es kicker ... Bah la c'est le ban ... Va reflechir dehors 10min �3;�1F;/!\�1F;
              .unset %pub [ $+ [ $address ] ]
            }
          }
        }
      }
    }
  }

Jusque la tout va bien sauf que ...
J'ai eu une pure idée qui a murie dans ma ptite tete ^^
Si un user entre sur le salon avec une phrase auto du genre " Salut #BlaBla "
Ou que c'est un pote qui te file une site fun
Faudrais faire une commande ( Pour op ) Du genre !delpub pseudo ( ou encore mieux /msg bot delpub pseudo )
J ai essayer mais j y arrive pas
j avais pensé a


On *:text:!delpub*:#:{
  if ($me isop $chan) {
    if ($nick isop $chan) {
      if ( $$1 == %pub $+ $address) {
        .unset %pub [ $+ [ $address ] ]
        echo -at $$1 enlevé de la variable
        notice @ $+ # $$1 Enlevé de la variable
      }
    }
  }
}


Mais sa ne fonctionne pas :/
Est ce que vous pouvez m aidez ? Merci d avance ^^
Afficher la suite 

Votre réponse

1 réponse

Meilleure réponse
Messages postés
2473
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
1 août 2010
1
3
Merci
Jme permet de corrigé un peu ton code :) :

on *:text:*:#: { if ($me isop $chan) {
reviens a on @*:text:*:#:

là, jtrouve ca assez marrant :
if (%pub [ $+ [ $address ] ] = 1) {
;si le if est vérifié, alors tu est sur que c'est le premier avertissement
notice $nick /!\ 4Spam !!! C'est ton %pub [ $+ [ $address ] ] $+ er avertissement $nick !!! Au 2ème c'est le kick !!! 1/!\

là tu réutilise le %pub [ ... $+ alors que tu n'en a pas besoin , tu sais tres bien que c'est 1 ( c'est la meme chose pour deux et trois )

ban -u600 # $address
.kick $chan $nick /!\ 4Spam !!! Je t'es avertis ... Je t'es kicker ... Bah la c'est le ban ... Va reflechir dehors 10min /!\

reviens a ban -ku600 # $nick 2 "raison"
le 2 est le type de ban ( regarde a $mask pour voir a quoi correspond $address dans l'event , j'crois que c'est le type 0 )

Pour ton probleme, déja si on spam en donnant le nom du salon, cela va déclenché ton code ? car ce n'est pas censé etre du spam de dire #Ga si on est sur le salon #Ga.
Ca résoudrais le probleme de l'user qui join et qui automatiquement salut le salon.

et pour les user particulié qui aurai droit de spammé ( ca s'appelle plus du spam si tu tolere mais bon ) genre tes amis op ou non tu devrait plutot crée une variable contenant les addresses ou pseudos des user particulié et au debut de ton code tu vérifie si l'user qui spam est particulié ou non et si oui, tu /return sinon, tu met le reste de ton code =)

En gros : essaye de voir si dans le regex tu peux faire en sorte que s'il detecte un #, ca sois pas le nom du salon et faire un ptit alias pour stocké des pseudos/addresse pour ensuite vérifié au tout debut de ton code

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 87 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_wims

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.