| View previous topic :: View next topic |
| Author |
Message |
bwkzb Voice
Joined: 12 Mar 2017 Posts: 16
|
Posted: Sun Mar 12, 2017 4:52 am Post subject: kick timer |
|
|
| Code: |
set channel "#vhost"
set operid "flood"
set operpass "floodflood"
bind evnt - init-server oper
bind pub -|- !vhost vhost
bind join -|- * join
proc oper init-server { putserv "OPER $::operid $::operpass" }
proc join {nick host handle chan } {
if { $chan == $::channel } {
putserv "privmsg $chan para obtener tu host tipea !vhost <tu.host.que-quieras> NOTA: el vhost solicitado sera revisado para su aprobación"
}
}
proc vhost {vhostnick vhosthost vhosthand vhostchan vhosttext} {
if { $vhostchan == $::channel } {
checkvhost $vhostnick $vhosttext
}
}
set badwords { *<censored>* *maricon* *chupalo* *pico* *conchatumare* *admin* *adminetchat* *services* *ñ* *^* *+* *´<* *#* *ircop* *sex* *ircops* }
proc checkvhost { checknick vhostcheck } {
if {[string match "*.*" [string tolower $vhostcheck]]} {
set temp 0
set results 0
#$temp<=X X = number of space delimited tokens in the badwords variable.
while {$temp<=47} {
foreach x [string tolower $::badwords] {
if {[string match $x [string tolower $vhostcheck]]} {
incr results }
}
incr temp
}
unset temp
if { $results > 0 } {
putserv "privmsg #vhost $checknick Lo siento el vhost no puede ser \002$vhostcheck\002"
} else {
putserv "PRIVMSG hostserv set $checknick $vhostcheck"
putserv "MODE #vhost +b $checknick"
putserv "PRIVMSG #vhost tu vhost solicitado se ha aprobado con exito, tipea /hs on para activarlo"
putserv "PRIVMSG #vhost tu nuevo host es \002$vhostcheck\002"
putserv "kick #vhost $checknick"
}
} else {
putserv "privmsg $::channel $checknick faltan parametros"
}
}
|
How can I add a timer to the kick so that the user is kicked out of the channel in a minute if it is not removed
Thank you |
|
| Back to top |
|
 |
Arnold_X-P Master

Joined: 30 Oct 2006 Posts: 221 Location: DALnet - Trinidad - Beni - Bolivia
|
Posted: Sun Mar 12, 2017 3:26 pm Post subject: Re: kick timer |
|
|
your tcl was containing many errors which I tried to resolve
but it works already very well
----
tu tcl contenia muchos errores los cuales trate de resolver
pero ya funciona muy bien, solo agrega el nombre del canal y listo lo demas ya se jala solo..
cambia solo estos sets set channel, set operid, set operpass, el nombre del canal por el tuyo, el acceso ircop por el acceso que tenga tu bot y listo.. la parte de abajo dejala tal cual no la modifiques solo cambia los sets mencionados.
| Code: | # esta parte es sencible a mayusculas o minusculas escribe bien el nombre
# de tu canal. / name of channel assistance
set channel "#vhost"
set operid "id-ircop"
set operpass "your-pass-ircop"
# tiempo de duracion del ban en minutos / bantime in minutes
set bantimevhost 1
bind evnt - init-server oper
bind pub -|- !vhost vhost
bind pub -|- .vhost vhost
bind join -|- * join
proc oper init-server { putserv "OPER $::operid $::operpass" }
proc join {nick host handle chan } {
if { $chan == $::channel } {
putserv "privmsg $chan para obtener tu host tipea \2!vhost tu.host.que-quieras\2 ejemplo !vhost soy.novato \2NOTA\2: el vhost solicitado sera revisado para su aprobación"
}
}
proc vhost {vhostnick vhosthost vhosthand vhostchan vhosttext} {
if { $vhostchan == $::channel } {
checkvhost $vhostnick $vhosttext
}
}
set badwords { *<censored>* *maricon* *chupalo* *pico* *conchatumare* *admin* *adminetchat* *services* *ñ* *^* *+* *´<* *#* *ircop* *sex* *irc0p* *Opers*}
proc checkvhost { checknick vhostcheck } {
global
if {[string match "*.*" [string tolower $vhostcheck]]} {
set temp 0
set results 0
#$temp<=X X = number of space delimited tokens in the badwords variable.
while {$temp<=47} {
foreach x [string tolower $::badwords] {
if {[string match $x [string tolower $vhostcheck]]} {
incr results }
}
incr temp
}
unset temp
if { $results > 0 } {
putserv "privmsg $::channel :\2$checknick\2 Lo siento el vhost no puede ser \002$vhostcheck\002"
} else {
putserv "PRIVMSG hostserv set $checknick $vhostcheck"
putserv "PRIVMSG $::channel :tu vhost solicitado se ha aprobado con exito, tipea \2/hs on\2 para activarlo"
putserv "PRIVMSG $::channel :tu nuevo host es \002$vhostcheck\002"
putserv "MODE $::channel +b $checknick"
putserv "kick $::channel $checknick :reingrese luego, aqui no se permiten idles de nicks"
timer $::bantimevhost [list puthelp "MODE $::channel -b $checknick"]
}
} else {
putserv "privmsg $::channel :\2$checknick\2 faltan parametros a su peticion, ejemplo \2!vhost soy.novato\2"
}
} |
probe el tcl y funciona de maravilla ahora tiene la opcion para quitar el ban despues de 1 minuto. _________________
thanks to that they help, that others learn  |
|
| Back to top |
|
 |
bwkzb Voice
Joined: 12 Mar 2017 Posts: 16
|
Posted: Sun Mar 12, 2017 6:24 pm Post subject: |
|
|
gracias y para qué sea en 30 segundos
el timer se debe de cambiar por
utimer $::bantimevhost [list puthelp "MODE $::channel -b $checknick"]
??? |
|
| Back to top |
|
 |
Arnold_X-P Master

Joined: 30 Oct 2006 Posts: 221 Location: DALnet - Trinidad - Beni - Bolivia
|
Posted: Mon Mar 13, 2017 12:32 pm Post subject: |
|
|
si correcto cambia en ambas lineas
| Code: |
set bantimevhost 30 |
y
| Code: | | utimer $::bantimevhost [list puthelp "MODE $::channel -b $checknick"] |
en lo personal 30 segundos es muy poco y pasan volando los segundos, y tambien existen usuarios fastidiosos que trataran molestar en excesos de cambios vhost, yo lo veo bien 1 minuto, pero bueno eso lo decides tu. _________________
thanks to that they help, that others learn  |
|
| Back to top |
|
 |
bwkzb Voice
Joined: 12 Mar 2017 Posts: 16
|
Posted: Wed Mar 15, 2017 12:37 am Post subject: |
|
|
Gracias por responder
Arnold_x-p
Me gustaria agregar una linea para que solo los nick registrados puedan pedir host
Algo asi
Ej
<nickuser> !vhost host.none
<bot> lo siento no tienes el nick registrado no puedes pedir host
Algo asi recuerdo que se usa raw *307
Estuve improvisando pero me dio error xd |
|
| Back to top |
|
 |
Arnold_X-P Master

Joined: 30 Oct 2006 Posts: 221 Location: DALnet - Trinidad - Beni - Bolivia
|
Posted: Thu Mar 16, 2017 6:09 pm Post subject: |
|
|
ok buscare una tcl que se adecue a lo que necesita _________________
thanks to that they help, that others learn  |
|
| Back to top |
|
 |
juanamores Master
Joined: 15 Mar 2015 Posts: 317
|
Posted: Fri Mar 17, 2017 1:15 pm Post subject: |
|
|
| bwkzb wrote: |
Me gustaria agregar una linea para que solo los nick registrados puedan pedir host
Algo asi
Ej
<nickuser> !vhost host.none
<bot> lo siento no tienes el nick registrado no puedes pedir host
|
Con el ejemplo que has puesto no se puede comprobar si el nick está o no registrado.
La comprobación se tiene que hacer sobre <nickuser> no sobre el vhost que solicita el usuario.
Si me dices con que comando se le puede hacer un INFO a un nick en la Red que tú estás, trato de ayudarte.
En la Red que estoy yo el comando es /msg NiCk info
Ejemplo:
Si pepito solicita un vhost, para saber si el nick pepito está o no registrado yo ejecuto el comando:
| Quote: | | /msg NiCk info pepito |
Y el bot NiCk me envía un privado y me confirma si está o no está registrado ese nick.
En otras redes el bot es NickServ, etc.
Luego de saber ese comando, te puedo realizar las adaptaciones para que chequee lo que tu deseas. _________________ If you do not understand my ideas is because I can not think in English, I help me with Google Translate. I only speak Spanish. Bear with me. Thanks  |
|
| Back to top |
|
 |
bwkzb Voice
Joined: 12 Mar 2017 Posts: 16
|
Posted: Fri Mar 17, 2017 5:49 pm Post subject: |
|
|
con el comando /msg nickserv info nick se ve si el nick esta registrado o no
gracias |
|
| Back to top |
|
 |
Arnold_X-P Master

Joined: 30 Oct 2006 Posts: 221 Location: DALnet - Trinidad - Beni - Bolivia
|
Posted: Fri Mar 17, 2017 7:21 pm Post subject: |
|
|
juanamores a eso se referia con raw *307 el amigo bwkzbcon el raw 307 se ve eso si el nick esta o no registrado no es necesario que pida info a nick o nickserv.
ya encontre una tcl asi pero tiene muchas fallas solucionando esperen. _________________
thanks to that they help, that others learn  |
|
| Back to top |
|
 |
juanamores Master
Joined: 15 Mar 2015 Posts: 317
|
Posted: Sat Mar 18, 2017 3:52 am Post subject: |
|
|
| bwkzb wrote: | con el comando /msg nickserv info nick se ve si el nick esta registrado o no
gracias |
Ok, ya tengo todo el código terminado, sólo me falta verificar 3 datos para que te funcione en tu Red y te lo paso.
Si yo ejecuto el comando para ver un INFO de un nick en mi red, me da el siguiente dato:
A) EJEMPLO con NICK NO Registrado:
| Code: | | /msg nick info pepitoperez |
| Quote: | 08:28 NiCK Información sobre el nick pepitoperez:
08:28 NiCK Estado: No Registrado
08:28 NiCK Fin de INFO del nick pepitoperez. |
B) EJEMPLO con NICK Registrado:
| Code: | | /msg nick info Tarzan |
| Quote: | 08:34 NiCK Información sobre el nick Tarzan:
08:34 NiCK Estado: ACTIVO
08:34 NiCK Realname: IRcap[8.72] www.ircap.net
08:34 NiCK Hora de registro: 15:24:02 21/Nov/2014 CET
08:34 NiCK Ultima hora por la red: 05:06:35 18/Mar/2017 CET (3hrs 27mins)
08:34 NiCK Fecha mínima de expiración: 06:06:35 16/Jul/2017 CEST
08:34 NiCK Ultimo mensaje de salida: Quit: IRcap 8.72
08:34 NiCK Host Virtual: soy.el.de.la.selva
08:34 NiCK Opciones: Seguro
08:34 NiCK Fin de INFO del nick Tarzan. |
C) HACIENDO WHOIS al BoT NiCK (nickserv)
| Quote: | 08:29 _ _[ NiCK [-@-] ---o
08:29 |---> Nombre : Servicio de nicks
08:29 |---> u-Lista? : BOT [bots de la red irc-Hispano]
08:29 |---> Servidor : deep.space Servicios de Red
08:29 |---> +info? : NiCK es un roBOT oficial de la Red
08:29 |---> +info? : NiCK Utiliza los modos [Bd] |
Necesito que realices las 3 tareas enumeradas con las letras A), B) y C)
y me copies los resultados.
| Arnold_X-P wrote: |
juanamores a eso se referia con raw *307 el amigo bwkzbcon el raw 307 se ve eso si el nick esta o no registrado no es necesario que pida info a nick o nickserv. |
Arnold_X-P, el sistema que uso yo en este caso concreto, no es con números RAW porque tengo otros TCL que funcionan con el mismo número RAW y luego se lanzan otros procesos que no deseo.
Yo lo hago con bases de datos temporales, alimentadas por datos que recojo del BoT NiCK (nickserv), que es quien me indica si un nick está o no registrado y funciona perfectamente también. _________________ If you do not understand my ideas is because I can not think in English, I help me with Google Translate. I only speak Spanish. Bear with me. Thanks  |
|
| Back to top |
|
 |
bwkzb Voice
Joined: 12 Mar 2017 Posts: 16
|
Posted: Sat Mar 18, 2017 7:52 am Post subject: |
|
|
A) nick no registrado
/ns info botayuda
-NickServ(services@servicios.host)- El nick botayuda no está registrado.
B) nick registrado
/ns info ayudabot
-NickServ(services@servicios.host)- ayudabot es bot
-NickServ(services@servicios.host)- ayudabot es un Operador de Servicios
-NickServ(services@servicios.host)- En línea desde: bot@mi.ip.host
-NickServ(services@servicios.host)- En línea desde: bot@bot.ayuda.cl
-NickServ(services@servicios.host)- Registrado: Mar 09 22:50:39 2017 EST (hace 8 días, 7 horas, 42 minutos)
-NickServ(services@servicios.host)- Último mensaje quit: xd
-NickServ(services@servicios.host)- Dirección email: mail@xxxx.cl
-NickServ(services@servicios.host)- VHost: bot.ayuda.cl
-NickServ(services@servicios.host)- Expira: Jan 12 06:33:09 2018 EST
-NickServ(services@servicios.host)- Opciones: Privado, Protección, Seguridad
C) /Whois nickserv
_[ NickServ [services@servicios.host] [desconocido] ---•
|---› Nombre : Servicio de registro de nicks
|---› +info? : NickServ is using modes +ioqS
|---› +info? : NickServ is connecting from *@servicios.host
|---› Canales?: ?&@#ayudabot
|---› Servidor : servicios.host Services for IRC Networks
|---› IRCop: : is an IRC Operator
|---› IRCop: : is a Network Service
gracias |
|
| Back to top |
|
 |
juanamores Master
Joined: 15 Mar 2015 Posts: 317
|
Posted: Sun Mar 19, 2017 8:21 am Post subject: |
|
|
Hola bwkzb, cumpliendo con lo prometido, te adapté mi script a los BoTs de la Red que usas tú.
Está SIN probar porque mi Red funciona diferente.
Ya me contarás si funciona o en caso contrario que errores te arroja.
| Code: | # esta parte es sencible a mayusculas o minusculas escribe bien el nombre
# de tu canal. / name of channel assistance
set channel "#vhost"
set operid "id-ircop"
set operpass "your-pass-ircop"
# tiempo de duracion del ban en minutos / bantime in minutes
set bantimevhost 1
bind evnt - init-server oper
bind pub -|- !vhost vhost
bind pub -|- .vhost vhost
bind join -|- * join
# lee mensajes privados enviados al BOT, para comparar cuando el bot NickServ envíe resultados acerca de una INFO a un nick.
bind msgm - * vhost:registro
proc oper init-server { putserv "OPER $::operid $::operpass" }
proc join {nick host handle chan } {
if { $chan == $::channel } {
putserv "privmsg $chan para obtener tu host tipea \2!vhost tu.host.que-quieras\2 ejemplo !vhost soy.novato \2NOTA\2: el vhost solicitado sera revisado para su aprobación"
}
}
proc vhost {vhostnick vhosthost vhosthand vhostchan vhosttext} {
if { $vhostchan == $::channel } {
# cuando solicitan vhost consulto al bot NickServ para saber si el nick está o no registrado
putserv "PRIVMSG NickServ :info $vhostnick"
# timer de 5 segundos para darle tiempo al bot a procesar la petición
utimer 5 [list verarchn $vhostnick $vhosthost $vhosthand $vhostchan $vhosttext ]
proc verarchn { vhostnick vhosthost vhosthand vhostchan vhosttext} {
# consulta al archivo regtest para saber estado del nick, sino existe archivo se crea.
if {![file exists regtest]} {
set fs [open "regtest" w+]
puts $fs 0
close $fs
set temp [open "regtest" r]
set regtest [gets $temp]
set nickregtest [lindex $regtest 0]
close $temp
} else {
set temp [open "regtest" r]
set regtest [gets $temp]
set nickregtest [lindex $regtest 0]
close $temp
}
# comparo resultado del archivo, si es 1 nick no registrado paro el script, si es 0 nick registrado y continuo con el proceso
if {$nickregtest == 1} { putmsg $chan [encoding convertfrom utf-8 "Lo siento \002$vhostnick\002, no tienes el nick registrado no puedes pedir host."];return}
if {$nickregtest == 0 } {
checkvhost $vhostnick $vhosttext
}
}
} else {return}
}
set badwords { *<censored>* *maricon* *chupalo* *pico* *conchatumare* *admin* *adminetchat* *services* *ñ* *^* *+* *´<* *#* *ircop* *sex* *irc0p* *Opers*}
proc checkvhost { checknick vhostcheck } {
global
if {[string match "*.*" [string tolower $vhostcheck]]} {
set temp 0
set results 0
#$temp<=X X = number of space delimited tokens in the badwords variable.
while {$temp<=47} {
foreach x [string tolower $::badwords] {
if {[string match $x [string tolower $vhostcheck]]} {
incr results }
}
incr temp
}
unset temp
if { $results > 0 } {
putserv "privmsg $::channel :\2$checknick\2 Lo siento el vhost no puede ser \002$vhostcheck\002"
} else {
putserv "PRIVMSG hostserv set $checknick $vhostcheck"
putserv "PRIVMSG $::channel :tu vhost solicitado se ha aprobado con exito, tipea \2/hs on\2 para activarlo"
putserv "PRIVMSG $::channel :tu nuevo host es \002$vhostcheck\002"
putserv "MODE $::channel +b $checknick"
putserv "kick $::channel $checknick :reingrese luego, aqui no se permiten idles de nicks"
timer $::bantimevhost [list puthelp "MODE $::channel -b $checknick"]
}
} else {
putserv "privmsg $::channel :\2$checknick\2 faltan parametros a su peticion, ejemplo \2!vhost soy.novato\2"
}
}
# proceso que se dispara cuando el bot NickServ nos envía un privado, ante una consulta del comando de mas arriba.
proc vhost:registro {nick NickServ!services@servicios.host hand text} {
# comparo en el texto enviado por privado del bot si se encuentra la frase "no está registrado", si la encuentra pone valor en archivo de 1
if {[string match -glob -ascii "*no está registrado*" $text]} {
set fs [open "regtest" w+]
puts $fs 1
close $fs
set temp [open "regtest" r]
set regtest [gets $temp]
set nickregtest [lindex $regtest 0]
close $temp
return 0
}
# comparo en el texto enviado por privado del bot si se encuentra la palabra textual "Registrado", si la encuentra pone valor en archivo de 0
if {[string match -exact "*Registrado*" $text]} {
set fs [open "regtest" w+]
puts $fs 0
close $fs
set temp [open "regtest" r]
set regtest [gets $temp]
set nickregtest [lindex $regtest 0]
close $temp
return 0
}} |
_________________ If you do not understand my ideas is because I can not think in English, I help me with Google Translate. I only speak Spanish. Bear with me. Thanks  |
|
| Back to top |
|
 |
bwkzb Voice
Joined: 12 Mar 2017 Posts: 16
|
Posted: Mon Mar 20, 2017 5:29 pm Post subject: |
|
|
<bot> [18:35] Tcl error in script for 'timer14':
<bot> [18:35] wrong # args: should be "global varName ?varName ...?"
gracias por responder bueno ese es el error qué me arroja |
|
| Back to top |
|
 |
SpiKe^^ Owner

Joined: 12 May 2006 Posts: 792 Location: Tennessee, USA
|
Posted: Mon Mar 20, 2017 6:03 pm Post subject: |
|
|
bwkzb,
Remove this entire line from the above script. _________________ SpiKe^^
Get BogusTrivia 2.06.4.7 at www.mytclscripts.com
or visit the New Tcl Acrhive at www.tclarchive.org
. |
|
| Back to top |
|
 |
bwkzb Voice
Joined: 12 Mar 2017 Posts: 16
|
Posted: Tue Mar 21, 2017 1:34 am Post subject: |
|
|
gracias por contestar spike^^
quite la linea global
ya no salia el error
pero no ejecutaba nada
cambie estas lineas
| Code: |
putmsg $chan [encoding convertfrom utf-8 "Lo siento \002$vhostnick\002, no tienes el nick registrado no puedes pedir host."];return}
|
por
| Code: |
putserv "PRIVMSG $::channel Lo siento \002$vhostnick\002, no tienes el nick registrado no puedes pedir host."
;return
}
|
estás lineas tambien las cambie
| Code: |
putserv "PRIVMSG hostserv set $checknick $vhostcheck"
putserv "PRIVMSG $::channel :tu vhost solicitado se ha aprobado con exito, tipea \2/hs on\2 para activarlo"
putserv "PRIVMSG $::channel :tu nuevo host es \002$vhostcheck\002"
putserv "MODE $::channel +b $checknick"
putserv "kick $::channel $checknick :reingrese luego, aqui no se permiten idles de nicks"
timer $::bantimevhost [list puthelp "MODE $::channel -b $checknick"]
}
|
por estás
| Code: |
putquick "PRIVMSG hostserv set $checknick $vhostcheck"
putserv "PRIVMSG $::channel :tu vhost solicitado se ha aprobado con exito, tipea \2/hs on\2 para activarlo"
putserv "PRIVMSG $::channel :tu nuevo host es \002$vhostcheck\002"
putquick "MODE $::channel +b $checknick"
putquick "kick $::channel $checknick :reingrese luego, aqui no se permiten idles de nicks"
timer $::bantimevhost [list puthelp "MODE $::channel -b $checknick"]
}
|
pero no funcionaron los cambios
elimine los tildes acentos de las palabras "está" la cambie por esta "esta"
pero no hay resultados
bueno gracias por la ayuda. |
|
| Back to top |
|
 |
|