summaryrefslogtreecommitdiff
path: root/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/urlencode.py
diff options
context:
space:
mode:
Diffstat (limited to 'venv/lib/python3.11/site-packages/jsbeautifier/unpackers/urlencode.py')
-rw-r--r--venv/lib/python3.11/site-packages/jsbeautifier/unpackers/urlencode.py36
1 files changed, 36 insertions, 0 deletions
diff --git a/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/urlencode.py b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/urlencode.py
new file mode 100644
index 0000000..d0d492a
--- /dev/null
+++ b/venv/lib/python3.11/site-packages/jsbeautifier/unpackers/urlencode.py
@@ -0,0 +1,36 @@
+#
+# Trivial bookmarklet/escaped script detector for the javascript beautifier
+# written by Einar Lielmanis <einar@beautifier.io>
+# 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