From a2459e3a16754c2f24467e70f8764281de649b9c Mon Sep 17 00:00:00 2001 From: newt-sc <47229722+newt-sc@users.noreply.github.com> Date: Sat, 30 May 2020 20:51:09 +0300 Subject: [PATCH] release: v1.5.0 --- CHANGELOG.md | 3 +++ a4kSubtitles/service.py | 8 +++++--- addon.xml | 5 ++++- packages/addons.xml | 5 ++++- packages/addons.xml.crc | 2 +- tests/test_service.py | 44 +++++++++++++++++++++++++++++------------ 6 files changed, 48 insertions(+), 19 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index f428944..0027f08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,6 @@ +* [v1.5.0](https://github.com/newt-sc/a4kSubtitles/releases/tag/service.subtitles.a4ksubtitles%2Fservice.subtitles.a4ksubtitles-1.5.0): + * Auto open search dialog only on movie and tvshow videos + * [v1.4.0](https://github.com/newt-sc/a4kSubtitles/releases/tag/service.subtitles.a4ksubtitles%2Fservice.subtitles.a4ksubtitles-1.4.0): * Add option to auto open the search dialog when the video does not have subtitles diff --git a/a4kSubtitles/service.py b/a4kSubtitles/service.py index 09af29e..cbf0e8d 100644 --- a/a4kSubtitles/service.py +++ b/a4kSubtitles/service.py @@ -11,11 +11,14 @@ def start(core): if not core.kodi.get_bool_setting('general', 'auto_search'): continue - has_video = core.kodi.xbmc.getCondVisibility('Player.HasVideo') + has_video = (core.kodi.xbmc.getCondVisibility('VideoPlayer.Content(movies)') + or core.kodi.xbmc.getCondVisibility('VideoPlayer.Content(episodes)')) if not has_video and has_done_subs_check: has_done_subs_check = False - if not has_video or has_done_subs_check: + has_video_duration = core.kodi.xbmc.getCondVisibility('Player.HasDuration') + + if not has_video or not has_video_duration or has_done_subs_check: continue has_done_subs_check = True @@ -24,6 +27,5 @@ def start(core): has_subtitles = core.kodi.xbmc.getCondVisibility('VideoPlayer.HasSubtitles') and has_subtitles_enabled if not has_subtitles: - core.time.sleep(0.5) core.kodi.xbmc.executebuiltin('ActivateWindow(SubtitleSearch)') continue diff --git a/addon.xml b/addon.xml index c4ec407..f552cc4 100644 --- a/addon.xml +++ b/addon.xml @@ -1,7 +1,7 @@ @@ -28,6 +28,9 @@ Supports: OpenSubtitles, BSPlayer, Podnadpisi.NET, SubDB, Subscene, Addic7ed screenshot-03.png +[v1.5.0]: + * Auto open search dialog only on movie and tvshow videos + [v1.4.0]: * Add option to auto open the search dialog when the video does not have subtitles diff --git a/packages/addons.xml b/packages/addons.xml index 60c40c2..b82e89a 100644 --- a/packages/addons.xml +++ b/packages/addons.xml @@ -4,7 +4,7 @@ @@ -31,6 +31,9 @@ Supports: OpenSubtitles, BSPlayer, Podnadpisi.NET, SubDB, Subscene, Addic7ed screenshot-03.png +[v1.5.0]: + * Auto open search dialog only on movie and tvshow videos + [v1.4.0]: * Add option to auto open the search dialog when the video does not have subtitles diff --git a/packages/addons.xml.crc b/packages/addons.xml.crc index 14fabd8..423ee9a 100644 --- a/packages/addons.xml.crc +++ b/packages/addons.xml.crc @@ -1 +1 @@ -6e36d33f6e61337b90cf18add8c7f42fabd29b2a \ No newline at end of file +da66c1a421c613825773c5f2066a4366d0d7cb2a \ No newline at end of file diff --git a/tests/test_service.py b/tests/test_service.py index 0bea2eb..c92ef50 100644 --- a/tests/test_service.py +++ b/tests/test_service.py @@ -26,21 +26,12 @@ def restore(): api.core.kodi.xbmc.getCondVisibility = default return restore -def __mock_time_sleep(api): - default = api.core.time.sleep - api.core.time.sleep = lambda _: None - def restore(): - api.core.time.sleep = default - return restore - def __mock(api, settings): restore_monitor = __mock_monitor(api) - restore_time_sleep = __mock_time_sleep(api) restore_settings = api.mock_settings(settings) def restore(): restore_monitor() - restore_time_sleep() restore_settings() return restore @@ -81,7 +72,8 @@ def test_service_when_video_has_subtitles(): 'general.auto_search': 'true', }) restore_get_cond_visibility = __mock_get_cond_visibility(a4ksubtitles_api, { - 'Player.HasVideo': True, + 'VideoPlayer.Content(movies)': True, + 'Player.HasDuration': True, 'VideoPlayer.HasSubtitles': True, 'VideoPlayer.SubtitlesEnabled': True, }) @@ -103,7 +95,8 @@ def test_service_when_video_does_not_have_subtitles(): 'general.auto_search': 'true', }) restore_get_cond_visibility = __mock_get_cond_visibility(a4ksubtitles_api, { - 'Player.HasVideo': True, + 'VideoPlayer.Content(episodes)': True, + 'Player.HasDuration': True, 'VideoPlayer.HasSubtitles': False, 'VideoPlayer.SubtitlesEnabled': False, }) @@ -125,7 +118,8 @@ def test_service_when_video_has_disabled_subtitles(): 'general.auto_search': 'true', }) restore_get_cond_visibility = __mock_get_cond_visibility(a4ksubtitles_api, { - 'Player.HasVideo': True, + 'VideoPlayer.Content(movies)': True, + 'Player.HasDuration': True, 'VideoPlayer.HasSubtitles': True, 'VideoPlayer.SubtitlesEnabled': False, }) @@ -147,7 +141,8 @@ def test_service_when_subs_check_done(): 'general.auto_search': 'true', }) restore_get_cond_visibility = __mock_get_cond_visibility(a4ksubtitles_api, { - 'Player.HasVideo': True, + 'VideoPlayer.Content(movies)': True, + 'Player.HasDuration': True, 'VideoPlayer.HasSubtitles': True, 'VideoPlayer.SubtitlesEnabled': True, }) @@ -161,3 +156,26 @@ def test_service_when_subs_check_done(): executebuiltin_spy.restore() assert executebuiltin_spy.call_count == 0 + +def test_service_when_does_not_have_video_duration(): + a4ksubtitles_api = api.A4kSubtitlesApi({'kodi': True}) + + restore = __mock(a4ksubtitles_api, { + 'general.auto_search': 'true', + }) + restore_get_cond_visibility = __mock_get_cond_visibility(a4ksubtitles_api, { + 'VideoPlayer.Content(movies)': True, + 'Player.HasDuration': False, + 'VideoPlayer.HasSubtitles': False, + 'VideoPlayer.SubtitlesEnabled': False, + }) + + executebuiltin_spy = utils.spy_fn(a4ksubtitles_api.core.kodi.xbmc, 'executebuiltin') + + service.start(a4ksubtitles_api.core) + + restore() + restore_get_cond_visibility() + executebuiltin_spy.restore() + + assert executebuiltin_spy.call_count == 0