From 2240d2a6a52a4fab966abf31fe03d66de726cf94 Mon Sep 17 00:00:00 2001 From: Aldo Cortesi Date: Sun, 25 Mar 2012 10:56:45 +1300 Subject: Pretty view now indents Javascript. Thanks to the JSBeautifier project, which is now included in the contrib directory. --- .../contrib/jsbeautifier/unpackers/urlencode.py | 34 ++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 libmproxy/contrib/jsbeautifier/unpackers/urlencode.py (limited to 'libmproxy/contrib/jsbeautifier/unpackers/urlencode.py') 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 +# rewritten in Python by Stefano Sanfilippo +# +# 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 -- cgit v1.2.3