rendered paste body 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
}