proc pubm:pretime {nick uhost handle channel args} { global pretimedb set fileinfo "" set predornuked "PRED" if { $args == "{}" } { set sql "SELECT `name`, `type`, `time`, `group`, `size`, `files`, `genre`, `nuke`, `nuke_reason`, `unnuke`, `unnuke_reason` FROM `release` ORDER BY `time` DESC LIMIT 1" set query [mysqlsel $pretimedb $sql] set predornuked "PRED" set fileinfo "" mysqlmap $pretimedb {name type time group size files genre nuke nuke_reason unnuke unnuke_reason} { putserv "PRIVMSG $channel :[formatpre $name $type $time $group $size $files $genre $nuke $nuke_reason $unnuke $unnuke_reason $predornuked $fileinfo]" } } else { set args [split $args " "] set or "" foreach arg $args { set arg [mircstrip $arg] set arg [removechar $arg \{] set arg [removechar $arg \}] if {$or == ""} { set or " `name` LIKE '%$arg%'" } else { set or "$or AND `name` LIKE '%$arg%'" } } set sql "SELECT `name`, `type`, `time`, `group`, `size`, `files`, `genre`, `nuke`, `nuke_reason`, `unnuke`, `unnuke_reason` FROM `release` WHERE $or ORDER BY `time` DESC LIMIT 1" set query [mysqlsel $pretimedb $sql] if {$query == 1} { mysqlmap $pretimedb {name type time group size files genre nuke nuke_reason unnuke unnuke_reason} { putserv "PRIVMSG $channel :[formatpre $name $type $time $group $size $files $genre $nuke $nuke_reason $unnuke $unnuke_reason $predornuked $fileinfo]" } } else { putquick "PRIVMSG $channel :\[14PRED\] Found no matching releases" } } } proc formatpre {name type timestamp group size files genre nuke nuke_reason unnuke unnuke_reason predornuked fileinfo} { set countdown "[countdowntime $timestamp true]" if {$size != 0 && $genre != ""} {set fileinfo "14\[12$files\14F/12$size\14MB/12$genre14\]12 "} if {$size != 0 && $genre == ""} {set fileinfo "14\[12$files\14F/12$size\14MB\]12 "} if {$size == 0 && $genre != ""} {set fileinfo "14\[12$genre14\]12 "} if {$nuke == 1} {set predornuked "04NUKED"} if {$unnuke == 1} {set predornuked "09UNNUKED"} if {$nuke == 1} {set nuke "14\[NUKED:04 $nuke_reason14\]"} if {$unnuke == 1} {set nuke "14\[UNNUKED:09 $unnuke_reason14\]"} if {$nuke == 0} {set nuke ""} return "14\[12$predornuked14/12$type14\]12 $name $fileinfo\was released $countdown ago $nuke" } ################################################################################ ## general used/important stuff ################################################################################ proc countdowntime {lasttime tonow} { #This is equiv to mIRC's $duration() function set years 0 ; set weeks 0 ; set days 0 ; set hours 0 ; set mins 0 ; set secs 0 ; if {$tonow == "true"} { set time [expr [unixtime] - $lasttime] } else { set time $lasttime } if {$time == 0} {set output "$time\s"} if {$time >= 31536000} {set years [expr int([expr $time/31536000])] ; set time [expr $time - [expr 31536000*$years]]} if {$time >= 604800} {set weeks [expr int([expr $time/604800])] ; set time [expr $time - [expr 604800*$weeks]]} if {$time >= 86400} {set days [expr int([expr $time/86400])] ; set time [expr $time - [expr 86400*$days]]} if {$time >= 3600} {set hours [expr int([expr $time/3600])] ; set time [expr $time - [expr 3600*$hours]]} if {$time >= 60} {set mins [expr int([expr $time/60])]; set time [expr $time - [expr 60*$mins]]} if {$time >= 1} {set secs $time} if {$years == 0} {set output ""} elseif {$years == 1} {set output "1year"} {set output "$years\years"} if {$weeks == 1} {lappend output "1week"} elseif {$weeks > 1} {lappend output "$weeks\weeks"} if {$days == 1} {lappend output "1day"} elseif {$days > 1} {lappend output "$days\days"} if {$hours == 1} {lappend output "1hour"} elseif {$hours > 1} {lappend output "$hours\hours"} if {$mins == 1} {lappend output "1min"} elseif {$mins > 1} {lappend output "$mins\mins"} if {$secs == 1} {lappend output "1sec"} elseif {$secs > 1} {lappend output "$secs\secs"} return "[string trimright [join $output] ", "]" } proc removechar {string error} { set Start [string first $error $string] set End [expr $Start + [string length $error] - 1] set string [string replace $string $Start $End ] return $string } proc mircstrip { text } { regsub -all {\002|\003([0-9]{1,2}(,[0-9]{1,2})?)?|\017|\026|\037} $text {} text return $text }