summaryrefslogtreecommitdiff
path: root/examples/filebrowser/web/__init__.py
diff options
context:
space:
mode:
authorianb <devnull@localhost>2005-07-03 19:59:13 +0000
committerianb <devnull@localhost>2005-07-03 19:59:13 +0000
commit94bee1ee2c1e56ceb6a94e889a62dff2b8159e36 (patch)
treef12a173621e3f41544595dc0beae92b4d44feee6 /examples/filebrowser/web/__init__.py
parent70f1fa9f5e88aa9083802b7f575bcf9862da06dc (diff)
downloadpaste-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__.py18
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)