aboutsummaryrefslogtreecommitdiff
path: root/utils
diff options
context:
space:
mode:
Diffstat (limited to 'utils')
-rw-r--r--utils/utils.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/utils/utils.py b/utils/utils.py
index 44cf8e59..db4bab57 100644
--- a/utils/utils.py
+++ b/utils/utils.py
@@ -201,3 +201,17 @@ def static_vars(**kwargs):
setattr(func, k, kwargs[k])
return func
return decorate
+
+
+def sanitize(string):
+ """Sanitize string (title) for URI consumption."""
+ if isinstance(string, bytes):
+ string = string.decode('utf-8')
+ # to lowercase
+ string = string.lower()
+ # strip all non-word, non-hyphen and non-whitespace characters
+ string = re.sub(r"[^\w\s-]", "", string)
+ # replace consecutive whitespaces with a single hyphen
+ string = re.sub(r"\s+", "-", string)
+ # percent encode the result
+ return urllib.parse.quote(string)