diff options
| author | ianb <devnull@localhost> | 2005-07-03 19:59:13 +0000 |
|---|---|---|
| committer | ianb <devnull@localhost> | 2005-07-03 19:59:13 +0000 |
| commit | 94bee1ee2c1e56ceb6a94e889a62dff2b8159e36 (patch) | |
| tree | f12a173621e3f41544595dc0beae92b4d44feee6 /examples/filebrowser/web/__init__.py | |
| parent | 70f1fa9f5e88aa9083802b7f575bcf9862da06dc (diff) | |
| download | paste-94bee1ee2c1e56ceb6a94e889a62dff2b8159e36.tar.gz | |
Refactored heavily; now each file type (of which there are currently just two) is its own class of servlet, and dispatching is done to the appropriate class.
Diffstat (limited to 'examples/filebrowser/web/__init__.py')
| -rw-r--r-- | examples/filebrowser/web/__init__.py | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/examples/filebrowser/web/__init__.py b/examples/filebrowser/web/__init__.py index 0ffdb8b..4be1d00 100644 --- a/examples/filebrowser/web/__init__.py +++ b/examples/filebrowser/web/__init__.py @@ -1,9 +1,11 @@ import os import urllib from py.path import local +from paste import CONFIG from paste import wsgilib from paste import httpexceptions from paste import urlparser +from filebrowser import pathobj def urlparser_hook(environ): if not environ.has_key('filebrowser.base_url'): @@ -20,20 +22,18 @@ special_dirs['app'] = urlparser.URLParser( os.path.dirname(__file__), 'filebrowser.web') def application(environ, start_response): - if environ.get('browser.resolved'): + context = environ['filebrowser.pathcontext'] = pathobj.PathContext( + root=environ['paste.config']['browse_path']) + if environ.get('filebrowser.resolved'): return special_dirs['app'](environ, start_response) - conf = environ['paste.config'] path_info = environ.get('PATH_INFO', '') for special_dir, parser in special_dirs.items(): if path_info.startswith('/_%s/' % special_dir): - environ['browser.resolved'] = True + environ['filebrowser.resolved'] = True wsgilib.path_info_pop(environ) return parser(environ, start_response) - environ['browser.filepath'] = urllib.unquote(environ['PATH_INFO']) - vars = dict(wsgilib.parse_querystring(environ)) - action = (vars.get('action') or ['index'])[0] - servlet_fn = os.path.join(os.path.dirname(__file__), action + '.py') - servlet_app = urlparser.make_py(environ, servlet_fn) - return servlet_app(environ, start_response) + path = urllib.unquote(environ['PATH_INFO']) + path_servlet = context.path(path) + return path_servlet(environ, start_response) |
