diff options
author | Aldo Cortesi <aldo@nullcube.com> | 2012-03-25 10:56:45 +1300 |
---|---|---|
committer | Aldo Cortesi <aldo@nullcube.com> | 2012-03-25 10:56:45 +1300 |
commit | 2240d2a6a52a4fab966abf31fe03d66de726cf94 (patch) | |
tree | ac59fc38dcd3eb95e76e69c8ef072ccff3cd4118 /libmproxy/contrib/jsbeautifier/unpackers/urlencode.py | |
parent | 74c51df5806e98046a1abea72c377781434810d8 (diff) | |
download | mitmproxy-2240d2a6a52a4fab966abf31fe03d66de726cf94.tar.gz mitmproxy-2240d2a6a52a4fab966abf31fe03d66de726cf94.tar.bz2 mitmproxy-2240d2a6a52a4fab966abf31fe03d66de726cf94.zip |
Pretty view now indents Javascript.
Thanks to the JSBeautifier project, which is now included in the contrib directory.
Diffstat (limited to 'libmproxy/contrib/jsbeautifier/unpackers/urlencode.py')
-rw-r--r-- | libmproxy/contrib/jsbeautifier/unpackers/urlencode.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/libmproxy/contrib/jsbeautifier/unpackers/urlencode.py b/libmproxy/contrib/jsbeautifier/unpackers/urlencode.py new file mode 100644 index 00000000..72d2bd1c --- /dev/null +++ b/libmproxy/contrib/jsbeautifier/unpackers/urlencode.py @@ -0,0 +1,34 @@ +# +# Trivial bookmarklet/escaped script detector for the javascript beautifier +# written by Einar Lielmanis <einar@jsbeautifier.org> +# rewritten in Python by Stefano Sanfilippo <a.little.coder@gmail.com> +# +# Will always return valid javascript: if `detect()` is false, `code` is +# returned, unmodified. +# +# usage: +# +# some_string = urlencode.unpack(some_string) +# + +"""Bookmarklet/escaped script unpacker.""" + +# Python 2 retrocompatibility +# pylint: disable=F0401 +# pylint: disable=E0611 +try: + from urllib import unquote_plus +except ImportError: + from urllib.parse import unquote_plus + +PRIORITY = 0 + +def detect(code): + """Detects if a scriptlet is urlencoded.""" + # the fact that script doesn't contain any space, but has %20 instead + # should be sufficient check for now. + return ' ' not in code and ('%20' in code or code.count('%') > 3) + +def unpack(code): + """URL decode `code` source string.""" + return unquote_plus(code) if detect(code) else code |