--- a/lib/site.py Sun Feb 08 03:13:11 2009 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-"""
- Per-site stuff
-"""
-
-import imp
-
-import handler
-
-class Site (handler.RequestHandler) :
- """
- A site is a website and its configuration
-
- XXX: need to somehow communicate the site name to our downstream handler
- """
-
- def __init__ (self, name, handler) :
- """
- The given name must be like a valid hostname, e.g. 'www.qmsk.net'
- """
-
- # store
- self.name = name
- self.handler = handler
-
- def handle_request (self, request) :
- """
- Map the request through our handler...
- """
-
- return self.handler.handle_request(request)
-
-class SiteModule (Site) :
- """
- A site, represented as python module/package, with the following module attributes:
-
- handler - the RequestHandler to use
- """
-
- def __init__ (self, name, module) :
- """
- Create the Site based on the given module
- """
-
- super(SiteModule, self).__init__(name,
- module.handler
- )
-
-class SiteModuleCollection (handler.RequestHandler) :
- """
- A collection of SiteModules, looking up the correct site to use based on the request hostname
- """
-
- def __init__ (self, path) :
- """
- Initialize to load site modules from the given path
- """
-
- self.path = path
- self.site_cache = dict()
-
- def handle_request (self, request) :
- """
- Lookup and return a Site object for the given request
- """
-
- # request hostnmae
- name = request.env['HTTP_HOST']
-
- # already loaded?
- if name in self.site_cache :
- site = self.site_cache[name]
-
- else :
- # first, we need to find it
- file, pathname, description = imp.find_module(name, [self.path])
-
- # then, we can load the module
- module = imp.load_module(name, file, pathname, description)
-
- # then build+cache the SiteModule
- site = self.site_cache[name] = SiteModule(name, module)
-
- # then execute the site's request handler
- return site.handle_request(request)
-