aboutsummaryrefslogtreecommitdiffstats
path: root/webstats/server.lisp
diff options
context:
space:
mode:
Diffstat (limited to 'webstats/server.lisp')
-rw-r--r--webstats/server.lisp73
1 files changed, 73 insertions, 0 deletions
diff --git a/webstats/server.lisp b/webstats/server.lisp
new file mode 100644
index 0000000..cff23f7
--- /dev/null
+++ b/webstats/server.lisp
@@ -0,0 +1,73 @@
+(ql:quickload '(hunchentoot spinneret cl-yesql cl-yesql/sqlite))
+
+(defpackage :webstats
+ (:use :common-lisp :hunchentoot :spinneret))
+
+(in-package :webstats)
+
+(overlord:set-package-base "/home/titan/dev/scratch/webstats/")
+
+(yesql:import log-queries
+ :from "/home/titan/dev/scratch/webstats/queries.sql"
+ :as :cl-yesql/sqlite
+ :binding :all-functions)
+
+;; (sqlite:with-open-database (db "test.db")
+;; (drop-stats-table db)
+;; (create-stats-table db))
+
+;; (sqlite:with-open-database (db "test.db")
+;; (insert db
+;; :click nil
+;; :page "ho"
+;; :referer "ref"
+;; :ip "13"
+;; :user-agent "sly"
+;; :title "try"))
+
+
+(defvar *acceptor* (make-instance 'hunchentoot:easy-acceptor
+ :port 4252))
+
+(hunchentoot:start *acceptor*)
+
+(hunchentoot:define-easy-handler (vars-disp :uri "/vars") ()
+ (setf (hunchentoot:content-type*) "text/plain")
+ (format nil "Hey ~{~A ~% ~}~%"
+ (list
+ (remote-addr*)
+ (header-in* :x-forwarded-for)
+ (authorization)
+ (hunchentoot::iso-time)
+ (request-method*)
+ (script-name*)
+ (query-string*)
+ (server-protocol*)
+ (return-code*)
+ (content-length*)
+ (referer)
+ (user-agent))))
+
+(hunchentoot:define-easy-handler (visit :uri "/visit") ()
+ (sqlite:with-open-database (db "test.db")
+ (format nil "you are our visit ~d"
+ (insert db
+ :click nil
+ :page (script-name*)
+ :referer (referer)
+ :ip (remote-addr*)
+ :user-agent (user-agent)
+ :title "try"))
+ ))
+
+
+(hunchentoot:define-easy-handler (link :uri "/link") ()
+ (with-html-string
+ (:doctype)
+ (:html
+ (:header (:title "hu yu ipi"))
+ (:body
+ (:p "learning "
+ (:a :href "vars" "some explodiert")
+ (:a :href "visit" "count visit"))))
+ ))