Autor Tema: Antispam  (Leído 3207 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Cadaver

  • Miembro de pleno derecho
  • ***
  • Mensajes: 133
  • Karma: +156/-3
  • Sexo: Masculino
Re:Antispam
« Respuesta #15 en: Marzo 31, 2021, 05:39:37 pm »
Ya en el foro se había publicado por mí algo similar para "malas palabras"  que al fin de cuentas sirve para este mismo caso incluía los comandos de agregar palabras y excepciones, nada mas busquen el post.

Este código esta bien y debería funcionar en todas las versiones pero no es así (v7.32 funciona):
Código: [Seleccionar]
//var %a comií | if ($regex($strip(%a),/\b(?:http|www|com|org|net)\b/i)) { echo -a detectado }
Dando una revisada por el foro, el código que les mencione fue eliminado como muchos otros de mi autoría.
« última modificación: Marzo 31, 2021, 05:49:30 pm por Cadaver »

Desconectado Cadaver

  • Miembro de pleno derecho
  • ***
  • Mensajes: 133
  • Karma: +156/-3
  • Sexo: Masculino
Re:Antispam
« Respuesta #16 en: Marzo 31, 2021, 10:14:27 pm »
Aquí les dejo un código que hice y esta funcionando para agregar canales donde debe funcionar y agregar excepciones debes ser nivel 200, el comando para agregar canal es .linkc +#prueba o .linkc -#prueba para quitar, el comando para agregar excepción es .linke +*ejemplo.com* o .#linke -*ejemplo.com* para quitar, no es necesario agregar youtube lo rechaza en automático. Le pueden agregar otras opciones en el avance que ya tenían.

Código: [Seleccionar]
on *:TEXT:*:#: {
  var %t = $strip($1-)
  ;; Tienes que ser nivel 200 para ejecutar, agregar quitar los canales donde funcionara y las excepciones ;;
  if ($ulevel = 200) {
    var %d = $left($2,1), %d1 = $right($2,-1)
    if ($1 == .linkc) {
      if (%d = +) {
        var %x $read($mircdirscripts/link.chan.txt,w,%d1)
        if (%x) { msg # Ya existe: %d1 - Total: $lines($mircdirscripts/link.chan.txt) }
        if (!%x) { write $mircdirscripts/link.chan.txt %d1 | msg # Agregado: %d1 - Total: $lines($mircdirscripts/link.chan.txt) }
      }
      if (%d = -) {
        var %x $read($mircdirscripts/link.chan.txt,w,%d1)
        if (%x) { write $+(-dl,$readn) $mircdirscripts/link.chan.txt | msg # Borrado: %d1 - Total: $lines($mircdirscripts/link.chan.txt) }
        if (!%x) { msg # No existe: %d1 - Total: $lines($mircdirscripts/link.chan.txt) }
      }
    }
    if ($1 == .linke) {
      if (%d = +) {
        var %x $read($mircdirscripts/link.exc.txt,w,%d1)
        if (%x) { msg # Ya existe: %d1 - Total: $lines($mircdirscripts/link.exc.txt) }
        if (!%x) { write $mircdirscripts/link.exc.txt %d1 | msg # Agregado: %d1 - Total: $lines($mircdirscripts/link.exc.txt) }
      }
      if (%d = -) {
        var %x $read($mircdirscripts/link.exc.txt,w,%d1)
        if (%x) { write $+(-dl,$readn) $mircdirscripts/link.exc.txt | msg # Borrado: %d1 - Total: $lines($mircdirscripts/link.exc.txt) }
        if (!%x) { msg # No existe: %d1 - Total: $lines($mircdirscripts/link.exc.txt) }
      }
    }
  }
  ;; Ahora si viene lo bueno ... ;;
  ;; Aqui revisa si el nick es regular y si el texto es dicho en alguno de los canales agregados y si contiene algún link y revisa que no sea de youtube ;;
  if ($nick isreg #) && ($regex(%t,/(^[+-]|(https?|www\.)(www\.)?[\S]*)/Si)) && ($read($mircdirscripts/link.chan.txt,w,#)) {
    var %z = 1
    while (%z <= $lines($mircdirscripts/link.exc.txt)) {
      var %x $read($mircdirscripts/link.exc.txt,%z)
      if (!$wildtok(%t,%x,0,32)) {
        if ($regex($gettok(%t,$gettok(%t,%x,32),32),/(^[+-]|(https?|www\.)(www\.)?[\S]*)/Si)) && (!$regex($gettok(%t,$gettok(%t,%x,32),32),/(?:^https?:\/\/|www\.)(?:[\S]*youtube\.com|youtu\.be)/i)) { ban -ku600 $chan $nick 2 Publicidad no permitida en el canal | msg #canaldebug Web Expulsando a $+($nick,$chr(40),$address,$chr(41)) por: $gettok(%t,$gettok(%t,%x,32),32) }
      }
      inc %z
    }
  }
}
« última modificación: Marzo 31, 2021, 10:28:34 pm por Cadaver »

Desconectado Hanna

  • Miembro Junior
  • **
  • Mensajes: 92
  • Karma: +14/-13
Re:Antispam
« Respuesta #17 en: Abril 10, 2021, 06:10:21 pm »
Buenas tardes

Perdón por la tardanza en responder, he tenido mucho lio y no he podido responder antes.

excelente código Cadaver

Muchisimas gracias Cadaver y Quetzalcoatl

Desconectado hank

  • Novato
  • *
  • Mensajes: 23
  • Karma: +0/-10
Re:Antispam
« Respuesta #18 en: Agosto 29, 2021, 12:09:55 pm »
Buenos días, pues llevo varios días probando este código y le veo un fallo.

cuando un usuario pone com o net sin nada solo eso... le expulsa.

11:54a <kan> net
11:54a Bot pone modo +b *!*@BeTheLight
11:54a Baneados: kan
11:54a Kick: kan fue kickeado por Bot [ [Web] Publicidad no permitida en el canal ]

11:54a <kan> com
11:54a Bot pone modo +b *!*@BeTheLight
11:54a Baneados: kan
11:54a Kick: kan fue kickeado por Bot [ [Web] Publicidad no permitida en el canal ]

Aquí dejo como tengo el código:

Código: [Seleccionar]
on *:TEXT:*:#: {
  ; == Aquí se agregaran las excepciones, el nick debe ser op en el canal e iniciar con .addexspam la frase
  if (($nick isop $chan) && (.addexspam == $strip($1))) { var %a $left($2,1), %b $right($2,-1)
    if ((+ = %a) ||  (%a = -) || (%a = ?)) { goto %a
      :+
      if ($istok(%excepciones.spam,%b,32)) { msg #canaldebug 1[Web]:   Ya esta agregada %b en las excepciones }
      else { set %excepciones.spam $addtok(%excepciones.spam,%b,32) | msg #canaldebug 1[Web]: Fue agregado %b $+, compruebelo usando: .addexspam + <patron> }
      return
      :-
      if (!$istok(%excepciones.spam,%b,32)) { msg #canaldebug 1[Web]:    No esta agregada %b en las excepciones }
      else { set %excepciones.spam $remtok(%excepciones.spam,%b,32) | msg #almeria_adm 1[Web]:   Fue eliminado %b $+, compruebelo usando: .addexspam -<patron> }
      return
      :? | msg #canaldebug 1[Web]:    Las excepciones son: %excepciones.spam | return
    }
    else { msg #canaldebug 1[Web]:   Por favor $nick use: .addexspam (?/+/-)la*pabra (se permite el uso de comodines *) | return }
  }
  ; === si el nick no es un nick regular(@,v) entonces termina
  if (!$nick(#,$nick,r)) { return }
 tokenize 32 $replace($lower($1-),$chr(225),a,$chr(233),e,$chr(237),i,$chr(243),o,$chr(250),u)
  ; === si la cadena de texto tiene algún tipo de spam, entrara
  if ($regex($strip($1-),/\b(?:http|https|www|com|org|net)\b/i)) {
    ; === revisa si esta la excepción y si lo esta sale
    var %a 1 | while ($gettok(%excepciones.spam,%a,32)) { if ($wildtok($strip($1-),$ifmatch,0,32)) { return } | inc %a }
    ; === No se encontró una excepción, procede a sancionar.
    ban -ku600 $chan $nick 2 [Web] Publicidad no permitida en el canal | msg #canaldebug 1[Web]: Expulsando: $+($nick,$chr(40), $address,$chr(41)) por: $1-
  }
}
;EOF

Muchas gracias!!!!

Desconectado Quetzalcoatl

  • Miembro de pleno derecho
  • ***
  • Mensajes: 204
  • Karma: +243/-2
  • HipercomputoHipermegared
    • elchatirc
Re:Antispam
« Respuesta #19 en: Agosto 29, 2021, 07:19:49 pm »
no es fallo por eso dice en el código

  ; === si la cadena de texto tiene algún tipo de spam, entrara
  if ($regex($strip($1-),/\b(?:http|https|www|com|org|net)\b/i)) {

entiendase una cadena de texto como cualquier palabra o palabras mencionadas por un nick en una sola linea, por ende si se coloca com o .com entrara en función, ya que los que hacen spam realizan la función de separar las palabras, en todo caso no entra si se ponen palabras como neta comunica, etc. si se coloca solo net es mas probable que quieran poner una url. Por lo que para mi compete, esta funcionando bien.

Desconectado hank

  • Novato
  • *
  • Mensajes: 23
  • Karma: +0/-10
Re:Antispam
« Respuesta #20 en: Agosto 30, 2021, 03:18:19 am »
Buenas.

Y mi pregunta es... se puede hacer una cadena que en la misma línea cumpla "www" ó "https" con "com "net"  "org"

¿o eso es imposible?

Saludos.

Desconectado Quetzalcoatl

  • Miembro de pleno derecho
  • ***
  • Mensajes: 204
  • Karma: +243/-2
  • HipercomputoHipermegared
    • elchatirc
Re:Antispam
« Respuesta #21 en: Agosto 30, 2021, 04:36:39 am »
si se puede.

Desconectado hank

  • Novato
  • *
  • Mensajes: 23
  • Karma: +0/-10
Re:Antispam
« Respuesta #22 en: Agosto 31, 2021, 01:13:42 pm »
Hola.

¿Y como se podría hacer?

Gracias.

 

anything