Anti spam chan

Résolu
azerty10100 Messages postés 38 Date d'inscription vendredi 27 février 2009 Statut Membre Dernière intervention 8 novembre 2010 - 28 nov. 2006 à 12:45
cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre 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 ^^

1 réponse

cs_wims Messages postés 2466 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 1 août 2010 1
28 nov. 2006 à 18:42
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
3
Rejoignez-nous