diff --git a/mkdb.tcl b/mkdb.tcl index a69328f..7e60716 100644 --- a/mkdb.tcl +++ b/mkdb.tcl @@ -7,6 +7,7 @@ sqlite3 db register.db # clients will submit at 9 AM their time. db eval {CREATE TABLE hits ( ip_address_hash TEXT NOT NULL + , arch TEXT NOT NULL , date TEXT NOT NULL )} @@ -16,6 +17,7 @@ db eval {CREATE UNIQUE INDEX hits_unique_daily ON hits(ip_address_hash, date)} # table, but databases have indexes for a reason. db eval {CREATE TABLE package_installs ( package_name TEXT NOT NULL + , arch TEXT NOT NULL , date TEXT NOT NULL )} diff --git a/site.tcl b/site.tcl index 7fef889..955bd75 100644 --- a/site.tcl +++ b/site.tcl @@ -22,10 +22,16 @@ proc wapp-default {} { } proc wapp-page-submit {} { + wapp-allow-xorigin-params + set systemTime [clock seconds] set iphash [md5::md5 [wapp-param REMOTE_ADDR]] - set method [wapp-param REQUEST_METHOD] + set arch [wapp-param arch] + set body [wapp-param CONTENT ""] + + wapp-set-param TODAY $systemTime + wapp-set-param IPHASH $iphash if {[string match {POST} $method] == 0} { # bad method @@ -38,11 +44,6 @@ proc wapp-page-submit {} { return } - wapp-set-param TODAY $systemTime - wapp-set-param IPHASH $iphash - - set body [wapp-param CONTENT ""] - if {[string match {} $body] == 1} { # bad request wapp-reply-code 400 @@ -55,11 +56,13 @@ proc wapp-page-submit {} { } db eval {BEGIN} - db eval {INSERT INTO hits(ip_address_hash, date) VALUES ($iphash, date($systemTime, 'unixepoch'))} + db eval {INSERT INTO hits(ip_address_hash, arch, date) VALUES ($iphash, $arch, date($systemTime, 'unixepoch'))} set pkgs [split $body "\n"] foreach pkg $pkgs { - db eval {INSERT INTO package_installs(package_name, date) VALUES ($pkg, date($systemTime, 'unixepoch'))} + if {[string length $pkg] != 0} { + db eval {INSERT INTO package_installs(package_name, arch, date) VALUES ($pkg, $arch, date($systemTime, 'unixepoch'))} + } } db eval {COMMIT} diff --git a/submit.sh b/submit.sh new file mode 100755 index 0000000..79f2f01 --- /dev/null +++ b/submit.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +SUBMISSION_URL=http://127.0.0.1:8080/submit +arch="$(uname -m)" + +cat /etc/apk/world | grep -v '><' | grep -v '@' | curl --data-binary @- "$SUBMISSION_URL"'?arch='"$arch"