1
Ayuda scripting IRcap / Re:antiMayusuculas con advertencia
« Último mensaje por Dino en Hoy a las 03:47:55 am »sigue algunas veces fallando el sinnc puede ser que tenga razon cadaver habria que ver ese detalle
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
}
}
}
//var %a comií | if ($regex($strip(%a),/\b(?:http|www|com|org|net)\b/i)) { echo -a detectado }
on *:TEXT:*:#: {
var %canalesactivos #cadiz #sevilla #madrid
if (!$wildtok(%canalesactivos,$chan,0,32)) { return }
; == 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)) { .notice $nick ya esta agregada %b en las excepciones }
else { set %excepciones.spam $addtok(%excepciones.spam,%b,32) | .notice $nick fue agregado %b $+, compruébelo usando: .addexspam ? }
return
:-
if (!$istok(%excepciones.spam,%b,32)) { .notice $nick No esta agregada %b en las excepciones }
else { set %excepciones.spam $remtok(%excepciones.spam,%b,32) | .notice $nick fue eliminado %b $+, compruébelo usando: .addexspam ? }
return
:? | .notice $nick Las excepciones son: %excepciones.spam | return
}
else { .notice $nick 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)) || ($ulevel = 100)) { 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(?: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 Publicidad no permitida en el canal | msg #canaldebug Web Expulsando a $+($nick,$chr(40),$address,$chr(41)) por : $1-
}
}
;EOF
Tengo otra duda, en el código que puso Hanna he visto que se puede poner que solo puedan usar el comando de cierto nivel, y mi duda es, está bien puesto como lo ha puesto Hanna?No habia mirado como lo puso, pero se supone que
; == Aquí revisa si el usuario tiene un nivel, de modificación para que no sea tomado en cuenta al validar su texto
if ($ulevel = 100) { return }
debe de estar dependiendo del uso que se implemente como se menciona en la respuesta #6 de este tema, en la parte final hay otras opciones, que quizás te sean de interés.if (!$nick(#,$nick,r)) { return }
o mezclada con ella con ||, quedando comoif ((!$nick(#,$nick,r)) || ($ulevel = 100)) { return }
específicamente para el código que Hanna puso en la respuesta #9 debido a que los que pueden agregar las excepciones serian los ops del canal, pero usuarios que no sean regulares(+@,+v,+~,+%) estarán exentos de poner lineas que contengan spam. Eso se menciona en la respuesta #6, siendo que no se sancionaran los usuarios de ese nivel igual se tendría que modificar agregando la verificación de nivel para que también pudieran agregar excepciones sin ser ops o dar un rango como un (100 <= $ulevel <= 120), si es que se meteran personal en el bot como root, master, mantenimiento, protegidos, etc.