diff decoupage/web.py @ 26:f306089d6def

now use contenttransformer to serve files if /transformer in directory configuration; TODO: cache on a per-directory basis
author k0s <k0scist@gmail.com>
date Sun, 17 Jan 2010 19:49:04 -0500
parents d5775f3667a2
children 89a72b2fd149 e384d4569ac3
line wrap: on
line diff
--- a/decoupage/web.py	Sat Jan 09 12:13:04 2010 -0500
+++ b/decoupage/web.py	Sun Jan 17 19:49:04 2010 -0500
@@ -4,6 +4,7 @@
 
 import os
 
+from contenttransformer.app import FileTypeTransformer
 from formatters import formatters
 
 from genshi.builder import Markup
@@ -60,6 +61,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)
@@ -74,7 +77,14 @@
                 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()
@@ -197,7 +207,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: