ClanBase.info.dawg0100644000076400010010000000102407411456022014615 0ustar AdministratorNoneInformation: This script gets clan information from www.ClanBase.com and reports it to a channel when you type a trigger. Information includes next war and clan rank next war NOTE: The bot will pause briefly during an update. Based on code by ppslim. Changes log for ClanBase.tcl: Version 1.1 * Released to the public from the |DAWG| Scripting Team web site. * Fixed some things that were broken due to ClanBase's web site changing. * Cleaned up some regsubs. * Added !update. * You can now change the command names.ClanBase1.1.tcl0100644000076400010010000001575707503765414013777 0ustar AdministratorNone################################## ### ClanBase.tcl ### ### Version 1.1 ### ### By Wcc ### ### wcc@techmonkeys.org ### ### http://www.dawgtcl.com:81/ ### ### EFnet #|DAWG|Tcl ### ################################## ############################################################################ ### Copyright © 2000 - 2002 |DAWG| Scripting Group. All rights reserved. ### ############################################################################ ################################################################## ## This script gets clan information from www.ClanBase.com and ## ## reports it to a channel when you type a trigger. Information ## ## includes next war and clan rank next war. ## ## ## ## NOTE: The bot will pause briefly during an update. ## ## ## ## Based on code by ppslim. ## ################################################################## ############## ## COMMANDS ## ############################################ ## PUB ## !clanrank (Can be changed) ## ######### Shows the current rank and ## ######### points your clan currently has. ## ######### ------------------------------- ## ######### !nextwar (Can be changed) ## ######### Shows information about the ## ######### next war. ## ######### ------------------------------- ## ######### !update (Can be changed) ## ######### Manually updates ClanBase info. ## ############################################ ########################################################## ## Just load the script, edit the settings, and rehash. ## ########################################################## ################################################ # Set the flag required to view the info here. # ################################################ set clanbase_setting(flag) "-|-" ################################## # Set the next-war command here. # ################################## set clanbase_setting(cmd_nxtwar) "!nextwar" ################################### # Set the clan rank command here. # ################################### set clanbase_setting(cmd_crank) "!clanrank" ################################ # Set the update command here. # ################################ set clanbase_setting(cmd_updt) "!update" ################################## # Set your League ID (LID) here. # ################################## set clanbase_setting(lid) "320" ################################ # Set your Clan ID (CID) here. # ################################ set clanbase_setting(cid) "59053" ######################################################################## # How often (In minutes) would you like the information to be updated? # ######################################################################## set clanbase_setting(timer_update) "10" #################### # Code begins here # #################### if {![string match 1.6.* $version]} { putlog "\002CLANBASE:\002 \002CRITICAL ERROR\002 ClanBase.tcl requires eggdrop 1.6.x to run." die "\002CLANBASE:\002 \002CRITICAL ERROR\002 ClanBase.tcl requires eggdrop 1.6.x to run." } if {[info tclversion] < 8.2} { putlog "\002CLANBASE:\002 \002CRITICAL ERROR\002 ClanBase.tcl requires Tcl 8.2 or above to run." die "\002CLANBASE:\002 \002CRITICAL ERROR\002 ClanBase.tcl requires Tcl 8.2 or above to run." } package require http bind pub $clanbase_setting(flag) $clanbase_setting(cmd_crank) clanbase_showrank bind pub $clanbase_setting(flag) $clanbase_setting(cmd_nxtwar) clanbase_shownext bind pub $clanbase_setting(flag) $clanbase_setting(cmd_updt) clanbase_update if {![string match *clanbase_time_update* [timers]]} { timer $clanbase_setting(timer_update) clanbase_time_update } proc clanbase_update {nick uhost hand chan text} { clanbase_time_update putserv "PRIVMSG $chan :The ClanBase information has been updated." } proc clanbase_time_update {} { global clanbase_data clanbase_setting set q [::http::formatQuery wars 1 cid $clanbase_setting(cid) lid $clanbase_setting(lid)] set q2 [::http::formatQuery cid $clanbase_setting(cid)] ::http::config -useragent "ClanBase.tcl" set tok [::http::geturl http://www.clanbase.com/claninfo.php -query $q] if {[::http::ncode $tok] != 200} { set clanbase_data(rank) 0 } else { if {[regexp {Rank: (.*) \((.*) points\)} [::http::data $tok] match rank points]} { set clanbase_data(rank) [list $rank $points [unixtime]] } else { set clanbase_data(rank) 0 } } set tok2 [::http::geturl http://www.clanbase.com/cbjswarupcoming.php -query $q2] if {[::http::ncode $tok2] != 200} { set clanbase_data(nextwar) 0 } else { regsub -all -- "\"" "[::http::data $tok2]" "" data regsub -all -- "," "$data" "" data if {[regexp {cbjsWarUpcoming_Start\(\)\;cbjsWarUpcoming_Each\((.*)\)\;cbjsWarUpcoming_End\(\)\;} $data match data]} { set clanbase_data(nextwar) 0 } if {[llength $data] < 10} { set clanbase_data(nextwar) 0 putlog "BUG: ClanBase has changed, make sure your cid and lid settings are correct. If not, e-mail wcc@techmonkeys.org with this data: $data" } else { set wid [lindex $data 0] set with [lindex $data 1] set time [lindex $data 4] set date [lindex $data 5] set game [lindex $data 8]/[lindex $data 9] set clanbase_data(nextwar) [list $with $time $date $game http://www.clanbase.com/warinfo.php?[::http::formatQuery wid $wid] [unixtime]] } } ::http::cleanup $tok ::http::cleanup $tok2 if {![string match *clanbase_time_update* [timers]]} { timer $clanbase_setting(timer_update) clanbase_time_update } } proc clanbase_showrank {nick uhost hand chan text} { global clanbase_data if {![info exists clanbase_data(rank)]} { puthelp "PRIVMSG $chan :The information has not been downloaded yet. Please wait until the next update." } elseif {[string equal $clanbase_data(rank) 0]} { puthelp "PRIVMSG $chan :An error occurred the last time the information was downloaded. Try again later." } else { set ts "[duration [expr [unixtime] - [lindex $clanbase_data(rank) end]]] ago." puthelp "PRIVMSG $chan :Rank: [lindex $clanbase_data(rank) 0] Points: [lindex $clanbase_data(rank) 1] Updated: $ts" } } proc clanbase_shownext {nick uhost hand chan text} { global clanbase_data if {![info exists clanbase_data(nextwar)]} { puthelp "PRIVMSG $chan :The information has not been downloaded yet. Please wait until the next update." } elseif {[string equal $clanbase_data(nextwar) 0]} { puthelp "PRIVMSG $chan :An error occurred the last time the information was downloaded. Try again later." } else { set ts "[duration [expr [unixtime] - [lindex $clanbase_data(nextwar) end]]] ago." puthelp "PRIVMSG $chan :Next War: [lindex $clanbase_data(nextwar) 0], [lindex $clanbase_data(nextwar) 1] [lindex $clanbase_data(nextwar) 2], [lindex $clanbase_data(nextwar) 3]. Details: [lindex $clanbase_data(nextwar) 4] Updated: $ts" } } putlog "\002CLANBASE:\002 ClanBase.tcl Version 1.1 by Wcc is loaded."