summaryrefslogtreecommitdiff
path: root/session.py
diff options
context:
space:
mode:
authorJon Bergli Heier <snakebite@jvnv.net>2011-08-08 19:15:49 +0200
committerJon Bergli Heier <snakebite@jvnv.net>2011-08-08 19:15:49 +0200
commit6ee205018af2f5d13f2606f16d82564d5877b589 (patch)
tree49875a2442cfb7666ec2c15ac6d82b36c4b7e7a8 /session.py
parent97d7c9014855449fe04162308feac66a35e007ea (diff)
Implemented session, send play notification.
Diffstat (limited to 'session.py')
-rw-r--r--session.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/session.py b/session.py
new file mode 100644
index 0000000..9928992
--- /dev/null
+++ b/session.py
@@ -0,0 +1,19 @@
+import Cookie, hashlib, time
+
+class Session(object):
+ def __init__(self, func):
+ self.func = func
+
+ def __call__(self, app, environ, start_response, path):
+ cookie = Cookie.SimpleCookie(environ['HTTP_COOKIE'] if 'HTTP_COOKIE' in environ else None)
+ sessionid = cookie.get('sessionid')
+ if not sessionid:
+ sessionid = hashlib.sha1(str(time.time) + environ['REMOTE_ADDR']).hexdigest()
+ cookie['sessionid'] = sessionid
+ start_response('302 Found', [
+ ('Set-Cookie', cookie['sessionid'].OutputString()),
+ ('Location', environ['REQUEST_URI'])])
+ return []
+ environ['sessionid'] = sessionid.value
+
+ return self.func(app, environ, start_response, path)