diff options
Diffstat (limited to 'utils')
-rw-r--r-- | utils/utils.py | 14 |
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) |