###########################
### HTMLOpVote.tcl	###
### Version 1.2		###
### By Wcc		###
### irc.dal.net		###
###########################

###########################################################################################
## This script allows ops to vote on a topic.	Only ops in the voting channel may vote. ##
###########################################################################################

##############
## COMMANDS ##
##################################################################
## MSG ## /msg <botnick> vote <nick> <yes/no> <reason>		##
######### Places a vote. All votes are logged with the voter's	##
######### nick and host, and the exact time.			##
##################################################################

##########################################################
## Just load the script, set the variables, and rehash.	##
##########################################################

##########################################
# Set the channel ops will vote in here. #
##########################################

set votechan "#|DAWG|Net"

##################################
# Set the html logfile filename. #
##################################

set votepage "voteresults.html"

##############################
# Set the database filename. #
##############################

set database "voteresults.db"

####################
# Code begins here #
####################

bind msg - vote htmlvote

proc htmlvote {nick uhost hand text} {
	global votechan botnick
	if {([isop $nick $votechan])} {
		if {([lindex $text 0] == "") || ([lindex $text 1] == "") || ([lindex $text 2] == "")} {
			puthelp "NOTICE $nick :HTMLOPVOTE: Usage: \"/msg $botnick vote <nick> <yes/no> <reason>\"."
		} elseif {([string tolower [lindex $text 1]] != "yes") && ([string tolower [lindex $text 1]] != "no")} {
				putserv "NOTICE $nick :HTMLOPVOTE: Usage: \"/msg $botnick vote <nick> <yes/no> <reason>\"."
		} else {
			set host $uhost
			set vote [lindex $text 1]
			set for [lindex $text 0]
			set rsn "\"[lrange $text 2 end]\""
			putvotelog $nick $host $vote $for $rsn
			puthelp "NOTICE $nick :HTMLOPVOTE: Vote accepted. You voted $vote for $for. The reason given was $rsn"
		}	
	} else { 
		putserv "NOTICE $nick :Only ops in $votechan may vote."
	}
}
proc putvotelog {nick host vote for rsn} {
	global votepage database
	set databaseid [open $database a+]
	puts $databaseid "<tr>"
	puts $databaseid "<td align=left bgcolor=#c0c0c0><font size=\"4\">[clock format [clock seconds] -format "%I:%M:%S %p %x"]</font></td>"
	puts $databaseid "<td align=left bgcolor=#e0e0e0><font size=\"4\"><center>$nick</center></font></td>"
	puts $databaseid "<td align=left bgcolor=#c0c0c0><font size=\"4\"><center>$host</center></font></td>"
	puts $databaseid "<td align=left bgcolor=#e0e0e0><font size=\"4\"><center>$vote</center></font></td>"
	puts $databaseid "<td align=left bgcolor=#c0c0c0><font size=\"4\"><center>$for</center></font></td>"
	puts $databaseid "<td align=left bgcolor=#e0e0e0><font size=\"4\"><center>$rsn</center></font></td>"
	puts $databaseid "</tr>"
	puts $databaseid "</table>"
	puts $databaseid "</center>"
	close $databaseid
	set votepageid [open $votepage w]	
	set databaseid [open $database r]
	puts $votepageid "<html>"
	puts $votepageid "<head>"
	puts $votepageid "<title>Vote Results</title>"
	puts $votepageid "</head>"
	puts $votepageid "<body>"
	puts $votepageid "<font size=\"6\" color=000000><center>Vote Results</center></font><br>"
	puts $votepageid "<center>"
	puts $votepageid "<table>"
	puts $votepageid "<tr>"
	puts $votepageid "<td align=left bgcolor=8080c0><font size=\"5\"><center>Time</center></font></td>"
	puts $votepageid "<td align=left bgcolor=8080e0><font size=\"5\"><center>Nick</center></font></td>"
	puts $votepageid "<td align=left bgcolor=8080c0><font size=\"5\"><center>Host</center></font></td>"
	puts $votepageid "<td align=left bgcolor=8080e0><font size=\"5\"><center>Vote</center></font></td>"
	puts $votepageid "<td align=left bgcolor=8080c0><font size=\"5\"><center>For</center></font></td>"
	puts $votepageid "<td align=left bgcolor=8080e0><font size=\"5\"><center>Reason</center></font></td>"
	puts $votepageid "</tr>"
	while {![eof $databaseid]} {
		gets $databaseid line
		puts $votepageid $line
	}
	puts $votepageid "</body>"
	puts $votepageid "</html>"
	close $votepageid
	close $databaseid
	putlog "HTMLOPVOTE: $nick \($host\) voted $vote for $for. The given reason was $rsn."
}

putlog "HTMLOPVOTE: HTMLOpVote.tcl Vervion 1.2 by wcc is loaded."
putlog "HTMLOPVOTE: Voting Channel Is $votechan."
putlog "HTMLOPVOTE: Voting log page is $votepage."