#!/usr/local/bin/tclsh8.4
package require mime
set candidates {
"Andrew Grumet"
"Bart Teeuwisse"
"Caroline Meeks"
"Joel Aufrecht"
"Malte Sussdorff"
"Peter Marklund"
"Rocael Hernandez"
}
foreach candidate $candidates {
set $candidate 0
}
set ballots [glob ballots/*]
foreach ballot $ballots {
set fd [open $ballot r]
set data [read $fd]
close $fd
set mime [mime::initialize -string $data]
array set headers [mime::getheader $mime]
if { ![info exists headers(From)] } {
error "missing from header"
}
array set from [lindex [mime::parseaddress $headers(From)] 0]
set voter [string tolower $from(address)]
set content [mime::getproperty $mime content]
if { $content ne "text/plain" && $content ne "text/html" } {
set mime2 [lindex [mime::getproperty $mime parts] 0]
if { [mime::getproperty $mime2 content] ne "text/plain" } {
error "first child not plain"
}
set mime $mime2
}
set body [mime::getbody $mime]
set no_votes 0
foreach candidate $candidates {
if { [regexp $candidate $body] } {
incr no_votes
incr $candidate
}
}
set voters($voter) $no_votes
}
puts "
"
foreach candidate $candidates {
puts "| $candidate | [set $candidate] |
"
}
puts "
"
puts ""
foreach voter [array names voters] {
puts "| [regsub @ $voter " AT "] | $voters($voter) |
"
}
puts "
"