software captore
[rrq/hourglass.git] / manager / usage.lsp
1 (load "expand-string.lsp")
2
3 (when (= (env "REQUEST_METHOD") "POST")
4   (load "usage-extra.lsp")
5   )
6
7 (define (get-remote-user)
8   (and (regex "^([^:]+):" (base64-dec (6 (env "HTTP_AUTHORIZATION"))) 0) $1))
9
10 (constant
11  'ADMIN (member (get-remote-user) '("ralph" "lin"))
12  'USAGE (read-expr (read-file "../usage.dat"))
13  'extra-options '(0 10 30 60)
14  'EXTRAFILE "../control-extra.dat"
15  'EXTRATM (file-info EXTRAFILE 6)
16  'TM (date-value)
17  'EXTRA (and (regex "([0-9]+) ([0-9]+)" (or (read-file EXTRAFILE) "") 0)
18              (list (int $1 0 10) (int $2 0 10)))
19  )
20
21 (define (tm2time tm)
22   (if (> tm)
23       (letn ((m (/ tm 60)) (h (/ m 60))) (list h (- m (* 60 h))))
24     '(0 0))
25   )
26
27 (define (time2tm t)
28   (+ (* 3600 (t 0)) (* 60 (t 1))))
29
30 (setf X '(0 0))
31 (when (and EXTRATM EXTRA (>= TM EXTRATM))
32   (setf X (tm2time (- (+ EXTRATM  (time2tm EXTRA)) TM))))
33
34 (println (expand-file "tmpl/usage-form.html" ))
35 (exit 0)