# # quesedilla, by robey # v1 -- 20aug95 # v2 -- 2oct95 [improved it] # v3 -- 17mar96 [fixed it up for 1.0 multi-channel] # v3.1 -- 27aug97 [little changes for more nice page by fantomas] # # this will create an html file every so often (the default is once every # 5 minutes). the html file will have a table showing the people currently # on the channel, their user@hosts, who's an op, and who's idle. it # uses a table which some browsers (and pseudo-browsers like lynx) can't # see, but it can optionally make a second page which will support these # archaic browsers. browsers supporting push-pull will receive the updated # page automatically periodically. # # if you have a "url" field defined for a user, their nickname in the # table will be a link pointing there. otherwise it checks the info # line and comment field to see if they start with "http://" -- if so, # that link will be used. as a last resort, it will make a "mailto:" # link if an email address is recorded for the user. # # feel free to modify and play with this. the original was written in # 15 minutes, then at various times i fixed bugs and added features. # softlord helped me make the design look a little nicer. :) if you make # any nifty improvements, please let me know. # robey@netcom.com ## this line makes sure other scripts won't interfere catch {unset webfile} ## for each channel you want a webfile for, do this: set webfile(#cs) "/home/bot/html/cs.html" ## define these for channels you want alternate (lynx-friendly) web pages ## for: (the 'lynxfilerf' needs to be relative to your html directory) set lynxfile(#cs) "/home/bot/html/cs-lynx.html" set lynxfilerf(#cs) "cs-lynx.html" ## how often should these html files get updated? ## (1 means once every minute, 5 means once every 5 minutes, etc) set web_update 5 ## define email address where should ppl send comments to this page set email "bot@ccnews.ke.sanet.sk" ## this will help people figure out what timezone you're in :) set webtz [clock format 0 -format %Z] ## if that line breaks, you're using an older Tcl library and will have to ## set it manually like so: #set webtz "PST" proc do_ques {} { global webfile lynxfile web_update botnick webtz lynxfilerf email foreach chan [array names webfile] { if {[lsearch -exact [string tolower [channels]] [string tolower $chan]] == -1} {continue} set fd [open $webfile($chan) w] if {[info exists lynxfile($chan)]} { set fdl [open $lynxfile($chan) w] } else { set fdl [open "/dev/null" w] } puts $fd "" puts $fdl "" puts $fd "
" puts $fdl "" puts $fd "" puts $fdl "
"
puts $fd "I'm not on $chan right now for some reason.
"
puts $fdl "I'm not on $chan right now for some reason.
"
puts $fd "IRC isn't a very stable place these days... Please try again"
puts $fdl "IRC isn't a very stable place these days... Please try again"
puts $fd "later!
" puts $fdl "later!
" } { puts $fd "
If this page looks screwy on your browser, try" puts $fd "this page.
" } puts $fd "
Nickname | Status" puts $fd " | User@Host"
puts $fdl "People on $chan as of [date] [time] $webtz" puts $fdl "Nickname Status User@Host" foreach i [chanlist $chan] { puts $fd " |
---|