#!/bin/env tclsh
package require sqlite3
proc fatal {reason {code -1}} {
puts stderr "$argv0: fatal: $reason"
exit $code
}
proc usage {} {
global argv0
puts stderr "usage: $argv0 DB-PATH"
exit -1
}
if {[llength $argv] != 1} usage
set dbpath [lindex $argv 0]
if {[catch {sqlite3 db $dbpath -create false}]} {
fatal "can't open \"$dbpath\""
}
set unplayed [db eval {SELECT name,href,comment FROM titles WHERE played ISNULL AND ignore = 0}]
set played [db eval {SELECT name,href,played,comment FROM titles WHERE played NOTNULL AND ignore = 0}]
puts "<!DOCTYPE html>"
puts "<html>"
puts "<head>"
puts " <meta charset=utf-8 />"
puts " <title>Game Stats</title>"
puts "</head>"
puts "<body>"
puts " <h1>Unplayed Games</h1>"
puts " <ul>"
foreach {name href comment} $unplayed {
if {$comment == ""} {
puts " <li><a href=\"$href\">$name</a></li>"
} else {
puts " <li><a href=\"$href\">$name</a><p>$comment</p></li>"
}
}
puts " </ul>"
puts " <h1>Played Games</h1>"
puts " <ul>"
foreach {name href played comment} $played {
if {$comment == ""} {
puts " <li><a href=\"$href\">$name</a> - played <code>$played</code></li>"
} else {
puts " <li><a href=\"$href\">$name</a> - played <code>$played</code><p>$comment</p></li>"
}
}
puts " </ul>"
puts "</body>"
puts "</html>"