Mercurial > hg > decoupage
diff decoupage/web.py @ 31:89a72b2fd149
merge from head
author | egj@socialplanning.org |
---|---|
date | Tue, 02 Feb 2010 18:04:02 +0000 |
parents | 81607129a45e f306089d6def |
children | 527ccb76d043 |
line wrap: on
line diff
--- a/decoupage/web.py Tue Feb 02 18:02:27 2010 +0000 +++ b/decoupage/web.py Tue Feb 02 18:04:02 2010 +0000 @@ -4,6 +4,7 @@ import os +from contenttransformer.app import FileTypeTransformer from formatters import formatters from genshi.builder import Markup @@ -62,6 +63,8 @@ self.loader = TemplateLoader(self.template_directories, auto_reload=self.auto_reload) + + ### methods dealing with HTTP def __call__(self, environ, start_response): request = Request(environ) @@ -76,15 +79,18 @@ res = self.get(request) return res(environ, start_response) else: - fileserver = self.fileserver(path) + conf = self.conf(request.path_info.rsplit('/',1)[0]) + if '/transformer' in conf: + args = [i.split('=', 1) for i in conf['/transformer'].split(',') if '=' in i] + fileserver = FileTypeTransformer(*args) + else: + fileserver = FileApp + + fileserver = fileserver(path) return fileserver(environ, start_response) else: raise exc.HTTPNotFound() - def get_response(self, text, content_type='text/html'): - """construct a response to a GET request""" - res = Response(content_type=content_type, body=text) - return res def get(self, request): """ @@ -152,7 +158,8 @@ return self.fileserver(local_index) raise - return self.get_response(res) + return Response(content_type='text/html', body=res) + ### internal methods @@ -202,7 +209,7 @@ parent_configuration = self.conf(inherit_directory) for key, value in parent_configuration.items(): if key.startswith('/') and key not in conf: - conf[key] = value + conf[key] = value # cache configuration if not self.auto_reload: