aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/tools/routing.py
diff options
context:
space:
mode:
Diffstat (limited to 'mediagoblin/tools/routing.py')
-rw-r--r--mediagoblin/tools/routing.py15
1 files changed, 15 insertions, 0 deletions
diff --git a/mediagoblin/tools/routing.py b/mediagoblin/tools/routing.py
index a15795fe..2ff003b7 100644
--- a/mediagoblin/tools/routing.py
+++ b/mediagoblin/tools/routing.py
@@ -15,6 +15,7 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
import logging
+import urlparse
import six
from werkzeug.routing import Map, Rule
@@ -65,3 +66,17 @@ def mount(mountpoint, routes):
for endpoint, url, controller in routes:
url = "%s/%s" % (mountpoint.rstrip('/'), url.lstrip('/'))
add_route(endpoint, url, controller)
+
+def extract_url_arguments(url, urlmap):
+ """
+ This extracts the URL arguments from a given URL
+ """
+ parsed_url = urlparse.urlparse(url)
+ map_adapter = urlmap.bind(
+ server_name=parsed_url.netloc,
+ script_name=parsed_url.path,
+ url_scheme=parsed_url.scheme,
+ path_info=parsed_url.path
+ )
+
+ return map_adapter.match()[1]