summaryrefslogtreecommitdiffstats
path: root/pyload/web/middlewares.py
diff options
context:
space:
mode:
Diffstat (limited to 'pyload/web/middlewares.py')
-rw-r--r--pyload/web/middlewares.py22
1 files changed, 22 insertions, 0 deletions
diff --git a/pyload/web/middlewares.py b/pyload/web/middlewares.py
new file mode 100644
index 000000000..af355bf11
--- /dev/null
+++ b/pyload/web/middlewares.py
@@ -0,0 +1,22 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+
+class StripPathMiddleware(object):
+ def __init__(self, app):
+ self.app = app
+
+ def __call__(self, e, h):
+ e['PATH_INFO'] = e['PATH_INFO'].rstrip('/')
+ return self.app(e, h)
+
+
+class PrefixMiddleware(object):
+ def __init__(self, app, prefix="/pyload"):
+ self.app = app
+ self.prefix = prefix
+
+ def __call__(self, e, h):
+ path = e["PATH_INFO"]
+ if path.startswith(self.prefix):
+ e['PATH_INFO'] = path.replace(self.prefix, "", 1)
+ return self.app(e, h)