blob: be3879eb3bc728a56de2a708e15615d286f6eaf4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
from datetime import datetime
from sqlalchemy import *
from sqlalchemy.orm import class_mapper
from turbogears import config
from turbogears.util import load_class
from turbogears.visit.api import BaseVisitManager, Visit
from turbogears.database import get_engine, metadata, session, mapper
import logging
log = logging.getLogger(__name__)
class FuncWebVisitManager(BaseVisitManager):
def __init__(self, timeout):
super(FuncWebVisitManager,self).__init__(timeout)
self.visits = {}
def create_model(self):
pass
def new_visit_with_key(self, visit_key):
log.debug("new_visit_with_key(%s)" % visit_key)
created = datetime.now()
visit = Visit(visit_key, True)
visit.visit_key = visit_key
visit.created = created
visit.expiry = created + self.timeout
self.visits[visit_key] = visit
log.debug("returning %s" % visit)
return visit
def visit_for_key(self, visit_key):
'''
Return the visit for this key or None if the visit doesn't exist or has
expired.
'''
log.debug("visit_for_key(%s)" % visit_key)
if not self.visits.has_key(visit_key):
return None
visit = self.visits[visit_key]
if not visit:
return None
now = datetime.now(visit.expiry.tzinfo)
if visit.expiry < now:
return None
visit.is_new = False
log.debug("returning %s" % visit)
return visit
|