From 50ebead0263f903673a2671d3be38817bb04707c Mon Sep 17 00:00:00 2001 From: mungai-njoroge Date: Mon, 25 Sep 2023 12:24:01 +0300 Subject: [PATCH] fix issue with Ed Sheeran albums --- app/utils/hashing.py | 28 +++++++++++----------------- manage.py | 5 ++++- 2 files changed, 15 insertions(+), 18 deletions(-) diff --git a/app/utils/hashing.py b/app/utils/hashing.py index b501a4e..16fd8ed 100644 --- a/app/utils/hashing.py +++ b/app/utils/hashing.py @@ -1,5 +1,4 @@ import hashlib -import re from unidecode import unidecode @@ -8,26 +7,21 @@ def create_hash(*args: str, decode=False, limit=10) -> str: """ Creates a simple hash for an album """ - str_ = "".join(args) + + def remove_non_alnum(token: str) -> str: + token = token.lower().strip().replace(" ", "") + t = "".join(t for t in token if t.isalnum()) + + if t == "": + return token + + return t + + str_ = "".join(remove_non_alnum(t) for t in args) if decode: str_ = unidecode(str_) - str_ = str_.lower().strip().replace(" ", "") - str_ = "".join(t for t in str_ if t.isalnum()) - str_ = re.sub(r"[^a-zA-Z0-9\s]", "", str_) str_ = str_.encode("utf-8") str_ = hashlib.sha256(str_).hexdigest() return str_[-limit:] - - -def create_folder_hash(*args: str, limit=10) -> str: - """ - Creates a simple hash for an album - """ - strings = [s.lower().strip().replace(" ", "") for s in args] - - strings = ["".join([t for t in s if t.isalnum()]) for s in strings] - strings = [s.encode("utf-8") for s in strings] - strings = [hashlib.sha256(s).hexdigest()[-limit:] for s in strings] - return "".join(strings) diff --git a/manage.py b/manage.py index 6899c78..cb4cd28 100644 --- a/manage.py +++ b/manage.py @@ -78,7 +78,7 @@ def start_watchdog(): WatchDog().run() -if __name__ == "__main__": +def run_swingmusic(): HandleArgs() log_startup_info() bg_run_setup() @@ -88,6 +88,9 @@ if __name__ == "__main__": f"swingmusic - {FLASKVARS.FLASK_HOST}:{FLASKVARS.FLASK_PORT}" ) + +if __name__ == "__main__": + run_swingmusic() app.run( debug=False, threaded=True,