aboutsummaryrefslogtreecommitdiffstats
path: root/libpathod/utils.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/utils.py
parent7ca5c7ae90c32cfc238d893eb302acc06deb2e70 (diff)
downloadmitmproxy-2d88d88f8c27b50f5d4d532ae54a8c643e6dc868.tar.gz
mitmproxy-2d88d88f8c27b50f5d4d532ae54a8c643e6dc868.tar.bz2
mitmproxy-2d88d88f8c27b50f5d4d532ae54a8c643e6dc868.zip
Basic anchor adding.
Diffstat (limited to 'libpathod/utils.py')
-rw-r--r--libpathod/utils.py25
1 files changed, 24 insertions, 1 deletions
diff --git a/libpathod/utils.py b/libpathod/utils.py
index 104ee148..daeccdea 100644
--- a/libpathod/utils.py
+++ b/libpathod/utils.py
@@ -1,4 +1,27 @@
-import copy, os
+import copy, os, re
+import rparse
+
+class AnchorError(Exception): pass
+
+def parse_anchor_spec(s, settings):
+ """
+ For now, this is very simple, and you can't have an '=' in your regular
+ expression.
+ """
+ if not "=" in s:
+ raise AnchorError("Invalid anchor definition: %s"%s)
+ rex, spec = s.split("=", 1)
+ try:
+ re.compile(rex)
+ except re.error:
+ raise AnchorError("Invalid regex in anchor: %s"%s)
+ try:
+ rparse.parse(settings, spec)
+ except rparse.ParseException, v:
+ raise AnchorError("Invalid page spec in anchor: '%s', %s"%(s, str(v)))
+
+ return rex, spec
+
class Data:
def __init__(self, name):