aboutsummaryrefslogtreecommitdiffstats
path: root/libpathod/app.py
diff options
context:
space:
mode:
authorAldo Cortesi <aldo@nullcube.com>2012-04-29 12:05:38 +1200
committerAldo Cortesi <aldo@nullcube.com>2012-04-29 12:05:38 +1200
commit2d88d88f8c27b50f5d4d532ae54a8c643e6dc868 (patch)
tree939eca7007597411b56c5990456f27f921798fa0 /libpathod/app.py
parent7ca5c7ae90c32cfc238d893eb302acc06deb2e70 (diff)
downloadmitmproxy-2d88d88f8c27b50f5d4d532ae54a8c643e6dc868.tar.gz
mitmproxy-2d88d88f8c27b50f5d4d532ae54a8c643e6dc868.tar.bz2
mitmproxy-2d88d88f8c27b50f5d4d532ae54a8c643e6dc868.zip
Basic anchor adding.
Diffstat (limited to 'libpathod/app.py')
-rw-r--r--libpathod/app.py38
1 files changed, 34 insertions, 4 deletions
diff --git a/libpathod/app.py b/libpathod/app.py
index 399d1340..51bd014b 100644
--- a/libpathod/app.py
+++ b/libpathod/app.py
@@ -37,10 +37,8 @@ class Log(_Page):
class Pathod(object):
- anchor = "/p/"
- def __init__(self, application, request, **settings):
+ def __init__(self, spec, application, request, **settings):
self.application, self.request, self.settings = application, request, settings
- spec = urllib.unquote(self.request.uri)[len(self.anchor):]
try:
self.response = rparse.parse(self.settings, spec)
except rparse.ParseException, v:
@@ -53,9 +51,17 @@ class Pathod(object):
self.response.render(self.request)
+class RequestPathod(Pathod):
+ anchor = "/p/"
+ def __init__(self, application, request, **settings):
+ spec = urllib.unquote(request.uri)[len(self.anchor):]
+ Pathod.__init__(self, spec, application, request, **settings)
+
+
class PathodApp(tornado.web.Application):
def __init__(self, **settings):
self.templates = tornado.template.Loader(utils.data.path("templates"))
+ self.appsettings = settings
tornado.web.Application.__init__(
self,
[
@@ -63,13 +69,37 @@ class PathodApp(tornado.web.Application):
(r"/log", Log),
(r"/help", Help),
(r"/preview", Preview),
- (r"/p/.*", Pathod, settings),
+ (r"/p/.*", RequestPathod, settings),
],
static_path = utils.data.path("static"),
template_path = utils.data.path("templates"),
debug=True
)
+ def add_anchor(self, pattern, spec):
+ """
+ Anchors are added to the beginning of the handlers.
+ """
+ # We assume we have only one host...
+ l = self.handlers[0][1]
+ class FixedPathod(Pathod):
+ def __init__(self, application, request, **settings):
+ Pathod.__init__(self, spec, application, request, **settings)
+ FixedPathod.spec = spec
+ l.insert(0, tornado.web.URLSpec(pattern, FixedPathod, self.appsettings))
+
+ def get_anchors(self, pattern, spec):
+ """
+ Anchors are added to the beginning of the handlers.
+ """
+ pass
+
+ def remove_anchor(self, pattern, spec):
+ """
+ Anchors are added to the beginning of the handlers.
+ """
+ pass
+
# begin nocover
def run(application, port, ssl_options):