From 345408d692b6cd6917a0a0db786c1b0af3ed809c Mon Sep 17 00:00:00 2001 From: JayZed Date: Tue, 23 Jan 2024 19:59:09 -0500 Subject: [PATCH] Fixed wizdom provider to handle Zip files with more than one (up to two entries). #2351 --- libs/subliminal_patch/providers/wizdom.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/libs/subliminal_patch/providers/wizdom.py b/libs/subliminal_patch/providers/wizdom.py index 12666f541..4091b7ad8 100644 --- a/libs/subliminal_patch/providers/wizdom.py +++ b/libs/subliminal_patch/providers/wizdom.py @@ -213,7 +213,12 @@ class WizdomProvider(Provider): with zipfile.ZipFile(io.BytesIO(r.content)) as zf: # remove some filenames from the namelist namelist = [n for n in zf.namelist() if os.path.splitext(n)[1] in ['.srt', '.sub']] - if len(namelist) > 1: - raise ProviderError('More than one file to unzip') - - subtitle.content = fix_line_ending(zf.read(namelist[0])) + if len(namelist) > 0: + subtitle.content = fix_line_ending(zf.read(namelist[0])) + # this provider sometimes returns both utf-8 and windows-1255 encodings of the same text in one zip file + if len(namelist) > 1: + # check if the first one we downloaded is good + valid = subtitle.is_valid() + if not valid: + # in case we can't use the first one, return the second one and hope for the best + subtitle.content = fix_line_ending(zf.read(namelist[1]))