From 76a2108a057e8f7bc75ca937c132632943828be2 Mon Sep 17 00:00:00 2001 From: newt-sc <47229722+newt-sc@users.noreply.github.com> Date: Mon, 11 May 2020 19:25:31 +0300 Subject: [PATCH] release: v0.0.29 --- CHANGELOG.md | 3 +++ a4kSubtitles/download.py | 30 ++++++++---------------------- a4kSubtitles/lib/cache.py | 2 ++ a4kSubtitles/lib/utils.py | 19 +++++++++++++++++++ addon.xml | 5 ++++- packages/addons.xml | 5 ++++- packages/addons.xml.crc | 2 +- 7 files changed, 41 insertions(+), 25 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b5796d6..31de70f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +* [v0.0.29](https://github.com/newt-sc/a4kSubtitles/releases/tag/service.subtitles.a4ksubtitles%2Fservice.subtitles.a4ksubtitles-0.0.29): + * Fix Podnadpisi download of results missing filename meta + * [v0.0.28](https://github.com/newt-sc/a4kSubtitles/releases/tag/service.subtitles.a4ksubtitles%2Fservice.subtitles.a4ksubtitles-0.0.28): * Attempt scrape of imdb id when missing * Improve filename parsing diff --git a/a4kSubtitles/download.py b/a4kSubtitles/download.py index 00ffde6..2bb47e0 100644 --- a/a4kSubtitles/download.py +++ b/a4kSubtitles/download.py @@ -25,31 +25,17 @@ def __extract_gzip(core, archivepath, filename): return filepath def __extract_zip(core, archivepath, filename, episodeid): - path = core.utils.quote_plus(archivepath) - ext = core.os.path.splitext(filename)[1].lower() - (dirs, files) = core.kodi.xbmcvfs.listdir('archive://%s' % path) - - first_subfile = None - subfile = None - for file in files: - if core.utils.py2: - file = file.decode('utf8') - - file_lower = file.lower() - if file_lower.endswith(ext): - if not first_subfile: - first_subfile = file - if (episodeid == '' or episodeid in file_lower): - subfile = file - break + sub_exts = ['.srt', '.sub'] + sub_exts_secondary = ['.smi', '.ssa', '.aqt', '.jss', '.ass', '.rt', '.txt'] + archivepath = core.utils.quote_plus(archivepath) + subfile = core.utils.find_file_in_archive(core, archivepath, sub_exts, episodeid) if not subfile: - if first_subfile: - subfile = first_subfile - else: - subfile = filename + subfile = core.utils.find_file_in_archive(core, archivepath, sub_exts_secondary, episodeid) + if not subfile: + subfile = filename - src = 'archive://' + path + '/' + subfile + src = 'archive://' + archivepath + '/' + subfile dest = core.os.path.join(core.utils.temp_dir, filename) core.kodi.xbmcvfs.copy(src, dest) return dest diff --git a/a4kSubtitles/lib/cache.py b/a4kSubtitles/lib/cache.py index cbf3054..b8081c6 100644 --- a/a4kSubtitles/lib/cache.py +++ b/a4kSubtitles/lib/cache.py @@ -34,6 +34,8 @@ def get_meta_hash(meta): return hash_data({ 'imdb_id': meta.imdb_id, 'filename': meta.filename, + 'languages': meta.languages, + 'preferredlanguage': meta.preferredlanguage }) def get_meta_cache(): diff --git a/a4kSubtitles/lib/utils.py b/a4kSubtitles/lib/utils.py index ebe2f8f..8eea628 100644 --- a/a4kSubtitles/lib/utils.py +++ b/a4kSubtitles/lib/utils.py @@ -114,3 +114,22 @@ def get_relative_json(relative_file, filename): json_path = os.path.join(os.path.dirname(relative_file), filename + '.json') with open(json_path) as json_result: return json.load(json_result) + +def find_file_in_archive(core, archivepath, exts, part_of_filename=''): + (dirs, files) = core.kodi.xbmcvfs.listdir('archive://%s' % archivepath) + + first_ext_match = None + exact_file = None + for file in files: + if core.utils.py2: + file = file.decode('utf8') + + file_lower = file.lower() + if any(file_lower.endswith(ext) for ext in exts): + if not first_ext_match: + first_ext_match = file + if (part_of_filename == '' or part_of_filename in file_lower): + exact_file = file + break + + return exact_file if exact_file is not None else first_ext_match diff --git a/addon.xml b/addon.xml index e1a401c..4715b6d 100644 --- a/addon.xml +++ b/addon.xml @@ -1,7 +1,7 @@ @@ -24,6 +24,9 @@ Supports: OpenSubtitles, BSPlayer, Podnadpisi.NET, SubDB, Subscene, Addic7ed icon.png +[v0.0.29]: + * Fix Podnadpisi download of results missing filename meta + [v0.0.28]: * Attempt scrape of imdb id when missing * Improve filename parsing diff --git a/packages/addons.xml b/packages/addons.xml index f7c2c01..5057b14 100644 --- a/packages/addons.xml +++ b/packages/addons.xml @@ -4,7 +4,7 @@ @@ -27,6 +27,9 @@ Supports: OpenSubtitles, BSPlayer, Podnadpisi.NET, SubDB, Subscene, Addic7ed icon.png +[v0.0.29]: + * Fix Podnadpisi download of results missing filename meta + [v0.0.28]: * Attempt scrape of imdb id when missing * Improve filename parsing diff --git a/packages/addons.xml.crc b/packages/addons.xml.crc index b871455..ac71a72 100644 --- a/packages/addons.xml.crc +++ b/packages/addons.xml.crc @@ -1 +1 @@ -833c8c46e7dd451395e9f3c678a91600803a4954 \ No newline at end of file +e71d452c7b619d76d51dd5b7687dc145ec0393e9 \ No newline at end of file