Added a helper function to cookie module to format expire dates properly.
[wrw.git] / wrw / cookie.py
index 2c6f982..4f5071a 100644 (file)
@@ -1,4 +1,5 @@
-import Cookie
+import Cookie, time
+import proto
 
 __all__ = ["cookies", "get", "add"]
 
@@ -9,7 +10,10 @@ def addcookies(req):
 
 class cookiedict(object):
     def __init__(self, req):
-        self.bk = Cookie.SimpleCookie(req.ihead.get("Cookie"))
+        try:
+            self.bk = Cookie.SimpleCookie(req.ihead.get("Cookie"))
+        except Cookie.CookieError:
+            self.bk = Cookie.SimpleCookie()
         self.codec = Cookie.SimpleCookie()
         req.oncommit(addcookies)
 
@@ -24,9 +28,10 @@ class cookiedict(object):
             return default
         return self.bk[name].value
 
-    def add(self, name, value, path = None):
+    def add(self, name, value, **kw):
         self.codec[name] = value
-        if path is not None: self.codec[name]["path"] = path
+        for key, value in kw.iteritems():
+            self.codec[name][key] = value
 
     def __setitem__(self, name, value):
         self.add(name, value)
@@ -37,5 +42,7 @@ def cookies(req):
 def get(req, name, default = None):
     return cookies(req).get(name, default)
 
-def add(req, name, value, path = None):
-    cookies(req).add(name, value, path)
+def add(req, name, value, **kw):
+    cookies(req).add(name, value, **kw)
+
+cdate = proto.httpdate