(load "expand-string.lsp") (constant 'USAGEFILE SITE:control.usage.dat 'EXTRAFILE SITE:control.extra.dat ) (when (= (env "REQUEST_METHOD") "POST") (load "usage-extra.lsp") ) (constant 'USAGE (read-expr (read-file USAGEFILE)) 'EXTRATM (file-info EXTRAFILE 6) 'EXTRA (and (regex "([0-9]+) ([0-9]+)" (or (read-file EXTRAFILE) "") 0) (list (int $1 0 10) (int $2 0 10))) 'TM (date-value) 'extra-options '(0 10 30 60) ) (define (tm2time tm) (if (> tm) (letn ((m (/ tm 60)) (h (/ m 60))) (list h (- m (* 60 h)))) '(0 0)) ) (define (time2tm t) (+ (* 3600 (t 0)) (* 60 (t 1)))) (setf X '(0 0)) (when (and EXTRATM EXTRA (>= TM EXTRATM)) (setf X (tm2time (- (+ EXTRATM (time2tm EXTRA)) TM)))) (println "Status 200 OK\nContent-Type: text/html\n\n") (println (expand-file "tmpl/usage-form.html" )) (exit 0)