From 18c4124afa7e7c09715ac4c0719423470f7f9df7 Mon Sep 17 00:00:00 2001 From: "mate.kavalecz" <mate.kavalecz@midori-global.com> Date: Sun, 4 May 2025 02:15:27 +0200 Subject: [PATCH 1/3] Add maximum days in next episodes configuration --- jellyfin_kodi/entrypoint/default.py | 20 ++++++++++++++++--- .../resource.language.en_gb/strings.po | 4 ++++ .../resource.language.en_us/strings.po | 4 ++++ .../resource.language.hu_hu/strings.po | 4 ++++ resources/settings.xml | 1 + 5 files changed, 30 insertions(+), 3 deletions(-) diff --git a/jellyfin_kodi/entrypoint/default.py b/jellyfin_kodi/entrypoint/default.py index 91a354e1..aa897bf4 100644 --- a/jellyfin_kodi/entrypoint/default.py +++ b/jellyfin_kodi/entrypoint/default.py @@ -920,8 +920,21 @@ def get_next_episodes(item_id, limit): if not library: return - result = JSONRPC("VideoLibrary.GetTVShows").execute( - { + maxDaysInNextEpisodes = settings('maxDaysInNextEpisodes') + if maxDaysInNextEpisodes != 0: + params = { + "sort": {"order": "descending", "method": "lastplayed"}, + "filter": { + "and": [ + {"operator": "true", "field": "inprogress", "value": ""}, + {"operator": "is", "field": "tag", "value": "%s" % library}, + {"operator": "inthelast", "field": "lastplayed", "value": "%s days" % maxDaysInNextEpisodes}, + ] + }, + "properties": ["title", "studio", "mpaa", "file", "art"], + } + else: + params = { "sort": {"order": "descending", "method": "lastplayed"}, "filter": { "and": [ @@ -931,7 +944,8 @@ def get_next_episodes(item_id, limit): }, "properties": ["title", "studio", "mpaa", "file", "art"], } - ) + + result = JSONRPC("VideoLibrary.GetTVShows").execute(params) try: items = result["result"]["tvshows"] diff --git a/resources/language/resource.language.en_gb/strings.po b/resources/language/resource.language.en_gb/strings.po index 57e92fd9..67314e07 100644 --- a/resources/language/resource.language.en_gb/strings.po +++ b/resources/language/resource.language.en_gb/strings.po @@ -357,6 +357,10 @@ msgctxt "#30537" msgid "Transcode Hi10P" msgstr "Transcode Hi10P" +msgctxt "#30538" +msgid "Max days in next episodes" +msgstr "Max days in next episodes + msgctxt "#30539" msgid "Login" msgstr "Login" diff --git a/resources/language/resource.language.en_us/strings.po b/resources/language/resource.language.en_us/strings.po index fe981254..92dd3cb9 100644 --- a/resources/language/resource.language.en_us/strings.po +++ b/resources/language/resource.language.en_us/strings.po @@ -321,6 +321,10 @@ msgctxt "#30537" msgid "Transcode Hi10P" msgstr "Transcode Hi10P" +msgctxt "#30538" +msgid "Max days in next episodes" +msgstr "Max days in next episodes" + msgctxt "#30539" msgid "Login" msgstr "Login" diff --git a/resources/language/resource.language.hu_hu/strings.po b/resources/language/resource.language.hu_hu/strings.po index f95c4483..86b3bf78 100644 --- a/resources/language/resource.language.hu_hu/strings.po +++ b/resources/language/resource.language.hu_hu/strings.po @@ -429,6 +429,10 @@ msgctxt "#30537" msgid "Transcode Hi10P" msgstr "Hi10P átkódolása" +msgctxt "#30538" +msgid "Max days in next episodes" +msgstr "Maximális napok száma a következő epizódoknál" + msgctxt "#30536" msgid "Allow the screensaver during syncs" msgstr "Képernyőkímélő engedélyezése szinkronizálás közben" diff --git a/resources/settings.xml b/resources/settings.xml index 91bc5f83..09cbad12 100644 --- a/resources/settings.xml +++ b/resources/settings.xml @@ -96,6 +96,7 @@ <category label="33109"> <!-- Plugin --> + <setting id="maxDaysInNextEpisodes" label="30538" type="slider" default="365" range="0, 1, 1000" option="int" /> <setting id="ignoreSpecialsNextEpisodes" type="bool" label="30527" default="false" /> <setting id="getCast" type="bool" label="33124" default="false" /> <setting id="remoteControl" type="bool" label="33125" default="true" /> From 937aff24f3e8a5c32997216a7b7d4ba01786e5cd Mon Sep 17 00:00:00 2001 From: "mate.kavalecz" <mate.kavalecz@midori-global.com> Date: Sun, 4 May 2025 02:28:58 +0200 Subject: [PATCH 2/3] Refactor to meet code style --- jellyfin_kodi/entrypoint/default.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/jellyfin_kodi/entrypoint/default.py b/jellyfin_kodi/entrypoint/default.py index aa897bf4..e6dedf42 100644 --- a/jellyfin_kodi/entrypoint/default.py +++ b/jellyfin_kodi/entrypoint/default.py @@ -920,15 +920,15 @@ def get_next_episodes(item_id, limit): if not library: return - maxDaysInNextEpisodes = settings('maxDaysInNextEpisodes') - if maxDaysInNextEpisodes != 0: + max_days = settings('maxDaysInNextEpisodes') + if max_days != 0: params = { "sort": {"order": "descending", "method": "lastplayed"}, "filter": { "and": [ {"operator": "true", "field": "inprogress", "value": ""}, {"operator": "is", "field": "tag", "value": "%s" % library}, - {"operator": "inthelast", "field": "lastplayed", "value": "%s days" % maxDaysInNextEpisodes}, + {"operator": "inthelast", "field": "lastplayed", "value": "%s days" % max_days}, ] }, "properties": ["title", "studio", "mpaa", "file", "art"], From a32aff25e2145e07b10561e1c5637532020cbdaa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Odd=20Str=C3=A5b=C3=B8?= <oddstr13@openshell.no> Date: Mon, 5 May 2025 22:07:46 +0000 Subject: [PATCH 3/3] Reduce duplication Adjust settings defaults Remove translations (use weblate, en_gb is source) Format with black --- jellyfin_kodi/entrypoint/default.py | 41 ++++++++----------- .../resource.language.en_us/strings.po | 4 -- .../resource.language.hu_hu/strings.po | 4 -- resources/settings.xml | 2 +- 4 files changed, 19 insertions(+), 32 deletions(-) diff --git a/jellyfin_kodi/entrypoint/default.py b/jellyfin_kodi/entrypoint/default.py index e6dedf42..bf041dfc 100644 --- a/jellyfin_kodi/entrypoint/default.py +++ b/jellyfin_kodi/entrypoint/default.py @@ -920,30 +920,25 @@ def get_next_episodes(item_id, limit): if not library: return - max_days = settings('maxDaysInNextEpisodes') + max_days = settings("maxDaysInNextEpisodes") + params = { + "sort": {"order": "descending", "method": "lastplayed"}, + "filter": { + "and": [ + {"operator": "true", "field": "inprogress", "value": ""}, + {"operator": "is", "field": "tag", "value": "%s" % library}, + ] + }, + "properties": ["title", "studio", "mpaa", "file", "art"], + } if max_days != 0: - params = { - "sort": {"order": "descending", "method": "lastplayed"}, - "filter": { - "and": [ - {"operator": "true", "field": "inprogress", "value": ""}, - {"operator": "is", "field": "tag", "value": "%s" % library}, - {"operator": "inthelast", "field": "lastplayed", "value": "%s days" % max_days}, - ] - }, - "properties": ["title", "studio", "mpaa", "file", "art"], - } - else: - params = { - "sort": {"order": "descending", "method": "lastplayed"}, - "filter": { - "and": [ - {"operator": "true", "field": "inprogress", "value": ""}, - {"operator": "is", "field": "tag", "value": "%s" % library}, - ] - }, - "properties": ["title", "studio", "mpaa", "file", "art"], - } + params["filter"]["and"].append( + { + "operator": "inthelast", + "field": "lastplayed", + "value": "%s days" % max_days, + } + ) result = JSONRPC("VideoLibrary.GetTVShows").execute(params) diff --git a/resources/language/resource.language.en_us/strings.po b/resources/language/resource.language.en_us/strings.po index 92dd3cb9..fe981254 100644 --- a/resources/language/resource.language.en_us/strings.po +++ b/resources/language/resource.language.en_us/strings.po @@ -321,10 +321,6 @@ msgctxt "#30537" msgid "Transcode Hi10P" msgstr "Transcode Hi10P" -msgctxt "#30538" -msgid "Max days in next episodes" -msgstr "Max days in next episodes" - msgctxt "#30539" msgid "Login" msgstr "Login" diff --git a/resources/language/resource.language.hu_hu/strings.po b/resources/language/resource.language.hu_hu/strings.po index 86b3bf78..f95c4483 100644 --- a/resources/language/resource.language.hu_hu/strings.po +++ b/resources/language/resource.language.hu_hu/strings.po @@ -429,10 +429,6 @@ msgctxt "#30537" msgid "Transcode Hi10P" msgstr "Hi10P átkódolása" -msgctxt "#30538" -msgid "Max days in next episodes" -msgstr "Maximális napok száma a következő epizódoknál" - msgctxt "#30536" msgid "Allow the screensaver during syncs" msgstr "Képernyőkímélő engedélyezése szinkronizálás közben" diff --git a/resources/settings.xml b/resources/settings.xml index 09cbad12..5996de35 100644 --- a/resources/settings.xml +++ b/resources/settings.xml @@ -96,7 +96,7 @@ <category label="33109"> <!-- Plugin --> - <setting id="maxDaysInNextEpisodes" label="30538" type="slider" default="365" range="0, 1, 1000" option="int" /> + <setting id="maxDaysInNextEpisodes" label="30538" type="slider" default="366" range="0, 1, 732" option="int" /> <setting id="ignoreSpecialsNextEpisodes" type="bool" label="30527" default="false" /> <setting id="getCast" type="bool" label="33124" default="false" /> <setting id="remoteControl" type="bool" label="33125" default="true" />