From 3fbed66ded190db27d67b006172f10bb03f54cc7 Mon Sep 17 00:00:00 2001
From: neodarz <neodarz@neodarz.net>
Date: Sun, 26 May 2019 16:29:43 +0200
Subject: Move sanitize to external file

---
 utils/utils.py | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

(limited to 'utils')

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)
-- 
cgit v1.2.1