diff options
author | Aleksey Lim <alsroot@sugarlabs.org> | 2013-08-04 16:30:39 (GMT) |
---|---|---|
committer | Aleksey Lim <alsroot@sugarlabs.org> | 2013-08-04 16:30:51 (GMT) |
commit | fc20557e26eefa2843686d1e7f73df6b4e12f6fb (patch) | |
tree | 427d2a9211c6d334f6c11222bb40add904010ae1 | |
parent | 31610bc93b9e8cf4e818dac76f5b77dcbe1e2fec (diff) |
Properly convert HTTP_IF_MODIFIED_SINCE to UNIX seconds
-rw-r--r-- | doc/objects.dia | 16 | ||||
-rw-r--r-- | sugar_network/toolkit/router.py | 19 | ||||
-rw-r--r-- | sugar_network/toolkit/rrd.py | 3 |
3 files changed, 23 insertions, 15 deletions
diff --git a/doc/objects.dia b/doc/objects.dia index c010b7a..727b7e3 100644 --- a/doc/objects.dia +++ b/doc/objects.dia @@ -526,7 +526,7 @@ <dia:point val="3,6"/> </dia:attribute> <dia:attribute name="obj_bb"> - <dia:rectangle val="2.985,5.985;14.5475,28.015"/> + <dia:rectangle val="2.985,5.985;14.5475,28.815"/> </dia:attribute> <dia:attribute name="elem_corner"> <dia:point val="3,6"/> @@ -535,7 +535,7 @@ <dia:real val="11.532500000000001"/> </dia:attribute> <dia:attribute name="elem_height"> - <dia:real val="22.000000000000004"/> + <dia:real val="22.800000000000004"/> </dia:attribute> <dia:attribute name="name"> <dia:string>#User#</dia:string> @@ -777,7 +777,7 @@ <dia:string>#0#</dia:string> </dia:attribute> <dia:attribute name="comment"> - <dia:string>#User's birthday in UNIX seconds#</dia:string> + <dia:string>#User's birthday in seconds from UNIX epoch#</dia:string> </dia:attribute> <dia:attribute name="visibility"> <dia:enum val="0"/> @@ -801,16 +801,16 @@ <dia:point val="-13,6"/> </dia:attribute> <dia:attribute name="obj_bb"> - <dia:rectangle val="-13.015,5.985;-1.23,26.015"/> + <dia:rectangle val="-13.015,5.985;-0.9725,24.415"/> </dia:attribute> <dia:attribute name="elem_corner"> <dia:point val="-13,6"/> </dia:attribute> <dia:attribute name="elem_width"> - <dia:real val="11.754999999999999"/> + <dia:real val="12.012499999999999"/> </dia:attribute> <dia:attribute name="elem_height"> - <dia:real val="20"/> + <dia:real val="18.400000000000002"/> </dia:attribute> <dia:attribute name="name"> <dia:string>#Resource#</dia:string> @@ -937,7 +937,7 @@ <dia:string>##</dia:string> </dia:attribute> <dia:attribute name="comment"> - <dia:string>#The UNIX seconds in UTC timezone of the time when object was created#</dia:string> + <dia:string>#Seconds from UNIX epoch when the object was created#</dia:string> </dia:attribute> <dia:attribute name="visibility"> <dia:enum val="0"/> @@ -960,7 +960,7 @@ <dia:string>##</dia:string> </dia:attribute> <dia:attribute name="comment"> - <dia:string>#The UNIX seconds in UTC timezone of the time when object was modified#</dia:string> + <dia:string>#Seconds from UNIX epoch when the object was modified#</dia:string> </dia:attribute> <dia:attribute name="visibility"> <dia:enum val="0"/> diff --git a/sugar_network/toolkit/router.py b/sugar_network/toolkit/router.py index 58317b1..2331a9d 100644 --- a/sugar_network/toolkit/router.py +++ b/sugar_network/toolkit/router.py @@ -16,9 +16,9 @@ import os import cgi import json -import time import types import logging +import calendar import mimetypes from bisect import bisect_left from urllib import urlencode @@ -105,6 +105,8 @@ class Request(dict): content_type = None content_length = 0 principal = None + _if_modified_since = None + _accept_language = None def __init__(self, environ=None, method=None, path=None, cmd=None, **kwargs): @@ -190,13 +192,20 @@ class Request(dict): @property def if_modified_since(self): - value = parsedate(self.environ.get('HTTP_IF_MODIFIED_SINCE')) - if value is not None: - return time.mktime(value) + if self._if_modified_since is None: + value = parsedate(self.environ.get('HTTP_IF_MODIFIED_SINCE')) + if value is not None: + self._if_modified_since = calendar.timegm(value) + else: + self._if_modified_since = 0 + return self._if_modified_since @property def accept_language(self): - return _parse_accept_language(self.environ.get('HTTP_ACCEPT_LANGUAGE')) + if self._accept_language is None: + self._accept_language = _parse_accept_language( + self.environ.get('HTTP_ACCEPT_LANGUAGE')) + return self._accept_language @property def accept_encoding(self): diff --git a/sugar_network/toolkit/rrd.py b/sugar_network/toolkit/rrd.py index 28c8be5..6b5d6e8 100644 --- a/sugar_network/toolkit/rrd.py +++ b/sugar_network/toolkit/rrd.py @@ -20,7 +20,6 @@ import os import time import bisect import logging -from datetime import datetime from os.path import exists, join @@ -113,7 +112,7 @@ class _DbSet(object): self._field_names.sort() if not timestamp: - timestamp = int(time.mktime(datetime.utcnow().utctimetuple())) + timestamp = int(time.time()) timestamp = timestamp / self._step * self._step db = self._get_db(timestamp) |