Autor Tema: Addon para cazar robot  (Leído 450 veces)

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

Desconectado akw

  • Novato
  • *
  • Mensajes: 15
  • Karma: +2/-1
Addon para cazar robot
« en: Febrero 02, 2020, 05:31:28 am »
Buenas noches.

Tengo un código que según un patrón para que caze los bot y la mayoría los suele ir cazando, me funcona bien, pero en vez de banearle el nick ahora lo he querido poner que expulse por ipvirtual, hasta ahí bien.

El problema viene cuando quiero que cuando lo excluya quite el ban puesto a ese nick y no lo hace, lo pone como nick en excepción, pero el ban sigue vigente en el canal.

Y si es un error, y el usuario quiere quitarse el ban, dice que le ha borrado el ban pero continua dentro, a ver, si me podéis ayudar a que quite el ban cuando lo añado a la lista de excepción o el mismo usuario se lo pone al bot en privado

(me he explayado mucho) xD

Código: [Seleccionar]
on *:join:#sevilla: {
  set %nickban $address($nick,2)
  set %nickkick $nick
  .enable #whoisban
  /whois $nick
}

#whoisban off
raw 311:*: {
  set %realnameban $6-

}
raw 319:*: {
  set %canalesban $3-
  baneawhois
  .disable #whoisban
}
#whoisban end

alias baneawhois {
  var %lee 1
  while %lee <= $lines(backup\Sumidero.txt) {
    if (%nickban isin $read(backup\Sumidero.txt,%lee)) {
      halt
      return
    }
    inc %lee
  }
  var %fullnameaban = Usuario Kiwi de Chat Hispano - https://chathispano.com/webchat
  if  ($chr(125) isin %nickban) || QuieroChat isin %identban { halt }
  if (%realnameban == %fullnameaban) || (%realnameban == %nickban) {
    if ((lesbianas isin %canalesban)) {
      mode #sevilla +b %nickban
      kick #sevilla %nickkick Bot spam NO permitido en el canal.
      timerbotborra 1 600 mode #sevilla -b %nickban
    }
  }
  unset %realnameban
  unset %nickban
  unset %canalesban
}

on *:text:*:#debug: {
  var %TextoUser = $strip($2-)
  if ($1 == !nobot) {
    if ($read(backup\Sumidero.txt,w,%TextoUser) != $null) {
    msg #debug 1[4ERROR1]4 $2- 1ya estaba en mi 4BDD | halt }
  write backup\Sumidero.txt $strip($2-) | mode #sevilla -b %nickban | msg #debug El nick: $2- ha sido añadido como NO Bot y borrado el ban. }
  else if ($1 == !borranobot) && ($2- != $null) {
    if ($read(backup\Sumidero.txt,w,%TextoUser) != $null) {
      write -dl $+ $readn backup\Sumidero.txt
      msg #debug 4El nick: %TextoUser ha sido borrado.
    }
    else msg #debug 9No existe el nick: %TextoUser
  }
  if ($1 == !listanobot) { msg #debug Listado de nicks incluídos (Total: $lines(backup\Sumidero.txt) $+ ) | play -q $nick backup\Sumidero.txt 1200
  }
}

on *:text:*:?: {
  if (no soy bot isin $strip($1-)) {
    write backup\Sumidero.txt $nick
    mode #sevilla -b %nickban
    msg $nick Su nick ha sido liberado como bot de spam. Pruebe a entrar de nuevo y perdone las molestias causadas.
  }
}

Un saludo.

Muchísimas gracias!
Modificar mensaje

Desconectado Quetzalcoatl

  • Miembro Junior
  • **
  • Mensajes: 54
  • Karma: +116/-2
  • HipercomputoHipermegared
    • elchatirc
Re:Addon para cazar robot
« Respuesta #1 en: Febrero 02, 2020, 10:10:31 pm »
después de leer el código así rápido, no creo que sea buena idea manejar las variables de nick y address en una variable estática en ves de usar una dinámica, pero igual si usas raw, entonces saldría sobrando la de %nickban y %nickkick, pero bueno...

enfocando al problema directo de la eliminación del ban en el canal es quizás por que se sobrescribe la variable de %nickban
dado que tienes parte del código así:


on *:text:*:#debug: {
  var %TextoUser = $strip($2-)
  if ($1 == !nobot) {
    if ($read(backup\Sumidero.txt,w,%TextoUser) != $null) {
    msg #debug 1[4ERROR1]4 $2- 1ya estaba en mi 4BDD | halt }
  write backup\Sumidero.txt $strip($2-) | mode #sevilla -b %nickban | msg #debug El nick: $2- ha sido añadido como NO Bot y borrado el ban. }
  else if ($1 == !borranobot) && ($2- != $null) {
    if ($read(backup\Sumidero.txt,w,%TextoUser) != $null) {
      write -dl $+ $readn backup\Sumidero.txt
      msg #debug 4El nick: %TextoUser ha sido borrado.
    }
    else msg #debug 9No existe el nick: %TextoUser
  }
  if ($1 == !listanobot) { msg #debug Listado de nicks incluídos (Total: $lines(backup\Sumidero.txt) $+ ) | play -q $nick backup\Sumidero.txt 1200
  }
}

on *:text:*:?: {
  if (no soy bot isin $strip($1-)) {
    write backup\Sumidero.txt $nick
    mode #sevilla -b %nickban
    msg $nick Su nick ha sido liberado como bot de spam. Pruebe a entrar de nuevo y perdone las molestias causadas.
  }
}

en on *:text:*:#debug: la variable de %nickban cambiala por $address($2,2)
y en on *:text:*:?: cambiarias %nickban por $address($nick,2)

Saludos akw

Desconectado akw

  • Novato
  • *
  • Mensajes: 15
  • Karma: +2/-1
Re:Addon para cazar robot
« Respuesta #2 en: Febrero 03, 2020, 11:58:36 am »
Hola.

No se usar los raw's, por eso lo puse así, ¿cómo modificarías tú esa parte?

- Lo he probado, pero no borra el ban  cuando el usuario pone "no soy bot" en el privado del bot.
- Y tampoco cuando pongo !nobot pepe (lo excluye pero no borra el ban en el canal.)

Muchas gracias!!!
« última modificación: Febrero 03, 2020, 12:04:45 pm por akw »

Desconectado Quetzalcoatl

  • Miembro Junior
  • **
  • Mensajes: 54
  • Karma: +116/-2
  • HipercomputoHipermegared
    • elchatirc
Re:Addon para cazar robot
« Respuesta #3 en: Febrero 03, 2020, 05:27:43 pm »
Hola
Citar
No se usar los raw's, por eso lo puse así, ¿cómo modificarías tú esa parte?
los usuaria mandándolos como parámetros de $1 $2 etc, o solo con $1- y de hay tomar lo que requiero
con lo que respecta a :
Citar
- Lo he probado, pero no borra el ban  cuando el usuario pone "no soy bot" en el privado del bot.
- Y tampoco cuando pongo !nobot pepe (lo excluye pero no borra el ban en el canal.)

lo que puedes hacer es antes del mode agregar echo -s eso para poder ver que parámetros esta usando el código al aplicar el mode,  me parece raro que no te removiera el ban, pero con eso puedes verificarlo.

Desconectado akw

  • Novato
  • *
  • Mensajes: 15
  • Karma: +2/-1
Re:Addon para cazar robot
« Respuesta #4 en: Febrero 05, 2020, 06:05:33 am »
Hola.

No sé si lo hice bien el echo -s pero me sale esto.

Lo hice solo en una parte para probar:

Código: [Seleccionar]
on *:text:*:?: {
  if (no soy bot isin $strip($1-)) {
    write backup\Sumidero.txt $nick
    echo -s mode #sevilla -b $address($nick,2)
    msg $nick Su nick ha sido liberado como bot de spam. Pruebe a entrar de nuevo y perdone las molestias causadas.
  }
}

Y me sale esto en status:

Código: [Seleccionar]
mode #sevilla -b


« última modificación: Febrero 05, 2020, 06:31:47 am por akw »

Desconectado Quetzalcoatl

  • Miembro Junior
  • **
  • Mensajes: 54
  • Karma: +116/-2
  • HipercomputoHipermegared
    • elchatirc
Re:Addon para cazar robot
« Respuesta #5 en: Febrero 05, 2020, 06:33:26 pm »
parece que tu ial esta desactivado
 IAL = Internal Address List
 puedes revisarlo usando //echo -s $ial en caso de ser $false requieres activarlo con el comando de /ial on

otra causa puede ser por los servidores que usan InspIRCd-3 como el hispano trae un problema cuando entras a un canal y no te detecta ni los +/-@,v y address cuando entras a un canal. No se en que red estes, pero se supone que con el ial activado debería detectarte cuando al bot le manden un privado.

Trata de revisar esa situación y si te funciona o no, comenta de nuevo en este post.

Saludos

Desconectado akw

  • Novato
  • *
  • Mensajes: 15
  • Karma: +2/-1
Re:Addon para cazar robot
« Respuesta #6 en: Febrero 05, 2020, 08:26:08 pm »
Hola de nuevo.

Estaba el IAL desactivado, lo he activado como me has comentado, he reiniciado el mirc y sigue con el mismo problema sale el mismo  echo -s que puse en el anterior post.

También substituir $address($nick,2) por $banmask  pero tampoco va.

En Chathispano.

Desconectado Quetzalcoatl

  • Miembro Junior
  • **
  • Mensajes: 54
  • Karma: +116/-2
  • HipercomputoHipermegared
    • elchatirc
Re:Addon para cazar robot
« Respuesta #7 en: Febrero 05, 2020, 09:38:31 pm »
Revise en especifico esa parte que mencionas, por alguna razon solo no me responde en chathispano tampoco, pero en otras networks si, asi que probé otra alternativa
Código: [Seleccionar]
  echo -s mode #sevilla -b *!*@ $+ $gettok($ial($nick),2,64)
inténtalo y si te funciona ya solo quitarías el echo -s

Desconectado akw

  • Novato
  • *
  • Mensajes: 15
  • Karma: +2/-1
Re:Addon para cazar robot
« Respuesta #8 en: Febrero 06, 2020, 05:13:03 am »
Hola.

Sigue sin remover el ban.

Código: [Seleccionar]
mode #sevilla -b *!*@
Intente añadir $remove pero seguro que pongo algo mal...  y por eso me dice Invalid format

El que puse despues del que me diste:   
Código: [Seleccionar]
echo -s mode #sevilla -b *!*@ $+ $remove($gettok($ial($nick),2,64)
Pero tampoco valio.

Un saludo.

Desconectado akw

  • Novato
  • *
  • Mensajes: 15
  • Karma: +2/-1
Re:Addon para cazar robot
« Respuesta #9 en: Febrero 06, 2020, 05:49:54 am »
Hola.

Olviden el post anterior.

Bueno encontré la forma de que lo removiera... casi es igual al que me pasaste:

Código: [Seleccionar]
mode #sevilla -b *!*@ $+ $gettok($address,2,64)
Borra el ban... pero tengo un problema, lo añade al documento de Sumidero.

Pero si ese mismo nick vuelve a entrar de nuevo, le vuelve a cazar el BAN.

Código: [Seleccionar]
write backup\Sumidero.txt $nick <-- ¿Debería modificar algo ahí?

¡Gracias!

Desconectado Quetzalcoatl

  • Miembro Junior
  • **
  • Mensajes: 54
  • Karma: +116/-2
  • HipercomputoHipermegared
    • elchatirc
Re:Addon para cazar robot
« Respuesta #10 en: Febrero 06, 2020, 06:40:57 am »
Hola

Citar
Intente añadir $remove pero seguro que pongo algo mal...  y por eso me dice Invalid format

No se por que quieres añadir el remove, asi tal cual esta bien, ademas el remove, le faltan parámetros en tu sintaxis por eso te da que el formato es invalido, con lo que respecta a lo de nick en la lista de txt, el error debe estar en el while que haces el código para la búsqueda
originalmente lo tienes asi
Código: [Seleccionar]
var %lee 1
  while %lee <= $lines(backup\Sumidero.txt) {
    if (%nickban isin $read(backup\Sumidero.txt,%lee)) {
      halt
      return
    }
    inc %lee
  }

se me ocurre que quizas te funcione mejor :
Código: [Seleccionar]
var %lee 1
while ($read(backup\Sumidero.txt,%lee)) { if (%nickban == $v1) { return } | inc %lee }

prueba con eso haber que tal te anda

Saludos.


Desconectado akw

  • Novato
  • *
  • Mensajes: 15
  • Karma: +2/-1
Re:Addon para cazar robot
« Respuesta #11 en: Febrero 07, 2020, 02:44:02 am »
Hola.

Lo he modificado, pero sigue cazando al nick que mete en excepción.

Y he mirado si está en la lista de excepciones... y si sale en esa lista.


Desconectado Quetzalcoatl

  • Miembro Junior
  • **
  • Mensajes: 54
  • Karma: +116/-2
  • HipercomputoHipermegared
    • elchatirc
Re:Addon para cazar robot
« Respuesta #12 en: Febrero 07, 2020, 06:19:50 pm »
Hola
cargue tu el código completo y realice cambios como el %nickban y %nickcick que definitivamente lo quite, así como mover la revisión al join y no al hacer el whois, este lo probé y si me lo detecto, quite los halts, la variable %identban la repare, por que ni siquiera se estaba seteando en el código original, en el raw 319 quite las variables y las mande como parámetros al alias de revision, etc.
Prueba y me comentas.
Código: [Seleccionar]
on *:join:#sevilla: {
  var %lee 1 | while ($read($archivo,%lee)) { if ($v1 == $nick) { return } | inc %lee }
  .enable #whoisban
  whois $nick
}

#whoisban off
raw 311:*: { set %realnameban $6- }
raw 319:*: { baneawhois $2- | .disable #whoisban }
#whoisban end
alias -l archivo return $shortfn(backup/Sumidero.txt)
alias baneawhois {
  var %identban $gettok($remove($address($1,0),*!),1,64)
  var %fullnameaban = Usuario Kiwi de Chat Hispano - https://chathispano.com/webchat

  if  (($chr(125) isin $1) || (QuieroChat isin %identban)) { return }
  if ((%realnameban == %fullnameaban) || (%realnameban == $1)) {
    if ((lesbianas isin $3-)) {
      mode #sevilla +b $address($1,2)
      kick #sevilla $1 Bot spam NO permitido en el canal.
      .timerbotborra 1 600 mode #sevilla -b $address($1,2)
    }
  }
  unset %realnameban
}

on *:text:*:#debug: { tokenize 32 $strip($1-)
  if ($1 == !nobot) {
    if ($read($archivo,w,$2) != $null) { msg #debug 1[4ERROR1]4 $2- 1ya estaba en mi 4BDD | return }
  write $archivo $2 | mode #sevilla -b $address($2,2) | msg #debug El nick: $2- ha sido añadido como NO Bot y borrado el ban. }
  else if ($1 == !borranobot) && ($2 != $null) {
    if ($read($archivo,w,$2) != $null) { write -dl $+ $readn $archivo | msg #debug 4El nick: $2 ha sido borrado. }
    else { msg #debug 9No existe el nick: $2 }
  }
  if ($1 == !listanobot) { msg #debug Listado de nicks incluídos (Total: $lines($archivo) $+ ) | play -q $nick $archivo 1200 }
}

on *:text:*:?: {
  if (no soy bot isin $strip($1-)) {
    write $archivo $nick
    mode #sevilla -b *!*@ $+ $gettok($ial($nick),2,64)
    msg $nick Su nick ha sido liberado como bot de spam. Pruebe a entrar de nuevo y perdone las molestias causadas.
  }
}
;EOF
Saludos

pd: en tu archivo de sumidero.txt revisa si no hay caracteres de color y/o caracteres extraños.

Desconectado akw

  • Novato
  • *
  • Mensajes: 15
  • Karma: +2/-1
Re:Addon para cazar robot
« Respuesta #13 en: Febrero 07, 2020, 09:51:38 pm »
Hola.

1- Sigue sin añadir los nicks en excepción (ahora ni sale en el documento de Sumidero)
2- El borrado de ban cuando ponemos !nobot <nick> no lo borra ni lo mete en el sumidero, le puse un echo -s  y sale mode #sevilla -b
3- el ban de "no soy bot" notifica y borra el ban pero no lo mete en el sumidero
4- He revisado el documento Sumidero.txt y está en blanco.

Un saludo y muchas gracias!

Desconectado Quetzalcoatl

  • Miembro Junior
  • **
  • Mensajes: 54
  • Karma: +116/-2
  • HipercomputoHipermegared
    • elchatirc
Re:Addon para cazar robot
« Respuesta #14 en: Febrero 07, 2020, 10:52:49 pm »
Hola
Citar
1- Sigue sin añadir los nicks en excepción (ahora ni sale en el documento de Sumidero)
pero antes los añadia no?
Citar
2- El borrado de ban cuando ponemos !nobot <nick> no lo borra ni lo mete en el sumidero, le puse un echo -s  y sale mode #sevilla -b
3- el ban de "no soy bot" notifica y borra el ban pero no lo mete en el sumidero
supongo que hubo un whois previo?
Citar
4- He revisado el documento Sumidero.txt y está en blanco.
¿hiciste un borrado del archivo?

dime la red y nick con el que estas para checarlo directamente, ya que lo probe en un mirc con version 7.57 y me funciono en chathispano

 

anything