diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2011-08-08 19:15:49 +0200 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2011-08-08 19:15:49 +0200 |
commit | 6ee205018af2f5d13f2606f16d82564d5877b589 (patch) | |
tree | 49875a2442cfb7666ec2c15ac6d82b36c4b7e7a8 /session.py | |
parent | 97d7c9014855449fe04162308feac66a35e007ea (diff) |
Implemented session, send play notification.
Diffstat (limited to 'session.py')
-rw-r--r-- | session.py | 19 |
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) |