From fd3b99ad65d50d9a6ea051fb187fa82e4d695223 Mon Sep 17 00:00:00 2001 From: Justin Oro Date: Mon, 24 Aug 2026 21:00:45 -0700 Subject: [PATCH] quote hyphenated TMDb search queries to avoid operator misparsing --- plex-library-tool.py | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/plex-library-tool.py b/plex-library-tool.py index 1115332..8b54332 100755 --- a/plex-library-tool.py +++ b/plex-library-tool.py @@ -127,6 +127,16 @@ def clean_and_squeeze(name): return squeeze_spaces(clean_name(name)) +def clean_name_keep_hyphens(name): + name = normalize_special_chars(name) + name = re.sub(r'[._]+', ' ', name) + return re.sub(r'[^A-Za-z0-9 \-]', '', name) + + +def clean_and_squeeze_keep_hyphens(name): + return squeeze_spaces(clean_name_keep_hyphens(name)) + + def clean_display_title(name): return squeeze_spaces(normalize_special_chars(name)) @@ -864,7 +874,7 @@ def strip_junk_trailing_paren(raw_name): return raw_name -def build_query(raw_name, year): +def build_query(raw_name, year, keep_hyphens=False): raw_name = strip_leading_watermark(raw_name) raw_name = URL_PATTERN.sub(' ', raw_name) raw_name = WWW_DOMAIN_PATTERN.sub(' ', raw_name) @@ -892,7 +902,8 @@ def build_query(raw_name, year): raw_name = strip_trailing_bracket_tags(raw_name) - cleaned = clean_and_squeeze(raw_name) + cleaner = clean_and_squeeze_keep_hyphens if keep_hyphens else clean_and_squeeze + cleaned = cleaner(raw_name) if year: without_year = squeeze_spaces(re.sub(rf'(?