please help.
Code: Select all
######################################################################################################################
######################################################################################################################
proc pub_wish { nick uhost handle chan arg } {
global CanalesRadio CanalAdmins CanalDjs limit
set temp [open "peticiones" r]
set peticiones [gets $temp]
close $temp
if {$peticiones == "Abiertas"} {
if {$arg == ""} { putquick [encoding convertfrom utf-8 "privmsg $chan :6 $nick 14Por Favor 13Especifica 14El Tema Que 13Deseas Pedir.6 !pedido Artista - Tema 14Gracias Por 13Sintonizar: 1 fanaticaextrema(com) "]; return 0}
set host [lindex [split [getchanhost $nick $chan] @] 1]
set idents [lindex [split [getchanhost $nick $chan] @] 0]
if {[onchan $nick]} {set im "*!*@[join [lrange [split $host .] 0 end] .]"} else {set im "$nick"}
if {[onchan $nick]} {set ident1 "*![join $idents]@*" }
if {"$idents" == "ircap"} {set ident1 "*![join $idents]@[join $host]"
} else {
set ident1 "*![join $idents]@[join $host]" }
#para probarlo SOLO modifique la linea siguiente por if $chan == $CanalesRadio, porque el proceso/archivo status esta en otra parte del codigo y siempre daba q la radio estaba off
if { [info exist arg] } {
set temp [open "djnick" r]
set djnick [gets $temp]
close $temp
if {![info exist limit]} { set limit 360}
foreach {_nick time} [array get ::flood] { if {[expr [clock seconds] - $time] > $limit} { unset ::flood($_nick) } }
foreach {_ident1 time} [array get ::flood] { if {[expr [clock seconds] - $time] > $limit} { unset ::flood($_ident1) } }
# Crear una variable global que guarde el tiempo en segundos que se ejecutó el comando:
# (al final del todo está)
# Comprobar si la variable existe y todavía no ha transcurrido el tiempo límite de 360 segundos
if {([info exists ::flood($nick)]) || ([info exists ::flood($ident1)])} {
# Existe, así que comprobar el tiempo transcurrido
set timeago [expr [clock seconds] - $::flood($nick)]
set timeago [expr [clock seconds] - $::flood($ident1)]
# ahora $timeago contiene el tiempo que ha pasado entre ahora y cuando lo ejecutó
# si $timeago es menos tiempo que el que pusimos de límite...
if {$timeago < $limit} {
set rest [expr $limit - $timeago]
putmsg $chan [encoding convertfrom utf-8 "6 $nick 14espera 4 [duration $rest] 14para solicitar otra 6canción nuevamente."]
if { $rest > 340 } {
newignore $im $handle "antiflood 2min" "2"
#putquick "PRIVMSG $chan :6 $nick 14espera 4 [duration $rest] 14para solicitar otra 6canción nuevamente.4?"
putlog "Ignore ($nick): $im $handle antiflood 2min"
newignore $ident1 $handle "antiflood2min" "2"
putlog "Ignore ($nick): $ident1 $handle antiflood 2min"
putmsg $CanalAdmins "4AVISO1!!!14 Se ha puesto en \002ignore\002 a \002$nick\002 (Antiflood 2 minutos) "
} else { return }
}
} else {
# Este usuario es nuevo, le creamos la variable
putquick [encoding convertfrom utf-8 "privmsg $CanalDjs :1Petición / En 01 $chan el nick 6 $nick solicita: 06 $arg "]
putquick [encoding convertfrom utf-8 "privmsg $CanalAdmins :1Petición / En 01 $chan el nick 6 $nick solicita: 06 $arg "]
putquick [encoding convertfrom utf-8 "privmsg $djnick :1Petición / En 01 $chan el nick 6 $nick solicita: 06 $arg "]
putquick [encoding convertfrom utf-8 "privmsg $chan :6Tema 6aceptado 14con exito 06 $nick 14En un momento más 6la escucharas."]
set ::flood($nick) [clock seconds]
set ::flood($ident1) [clock seconds]
}
} else {
putquick "privmsg $chan :6Lo Siento 14El Comando 13No Se Puede 6Usar La 13Radio 14Está 6Fuera 13De 14Línea." }
} else {
putquick [encoding convertfrom utf-8 "privmsg $chan : 4Error1! 01 $nick 1Por ahora las peticiones estan cerradas."]
return 0
}
}
######################################################################################################################
######################################################################################################################
## Advert the Request List
bind pub -|- !listapedidos requestlist
proc requestlist {nick uhost hand chan arg} {
global CanalDjs
if {$chan == $CanalDjs} {
set reqnumber 0
set filename "requestlist.txt"
set in [open $filename r]
while {1} {
set line [gets $in]
if {$line == ""} {
putnow "PRIVMSG $CanalDjs :There are no requests at the moment."
break
} else {
if {[eof $in]} {
putnow "PRIVMSG $CanalDjs :Fin Listado peticiones"
close $in
break
}
if {$reqnumber == 0} {
putnow "PRIVMSG $CanalDjs :Inicio Listado peticiones"
incr reqnumber
} else {
putnow "PRIVMSG $CanalDjs :$reqnumber: $line"
incr reqnumber
}
}
}
}
}
## Clear the Request List
bind pub -|- !limpiarlista clearlist
proc clearlist {nick uhost hand chan arg} {
global CanalDjs
if {$chan == $djchan} {
if {[isop $nick $chan] == 1 || [ishalfop $nick $chan] == 1} {
set filename "requestlist.txt"
set out [open $filename w]
set line ""
puts $out $line
putnow "PRIVMSG $CanalDjs :$nick has cleared the request list."
close $out
}
}
}
## Delete Request Func + Timer
bind pub -|- !borrarpedido requestproc
proc requestproc {reqitem} {
set filename "requestlist.txt"
set testin [open $filename r]
set line [gets $testin]
close $testin
if {$line == ""} {
set out [open $filename [list RDWR APPEND CREAT]]
set newline $reqitem
puts -nonewline $out $newline
close $out
} else {
# Create a Timestamp for the file
set timestamp [clock format [clock seconds] -format {%Y%m%d%H%M%S}]
# Create a Temp and Backup File
set temp $filename.new.$timestamp
# Set In/Out to Open Peak.txt in Read-Only/Write-Only
set in [open $filename r]
set out [open $temp [list RDWR APPEND CREAT]]
set line $reqitem
puts $out $line
set file_data [read $in]
puts -nonewline $out $file_data
close $in
close $out
file rename -force $temp $filename
}
}
######################################################################################################################
######################################################################################################################