From 5b0fecf50c05ea0720f06fb5755f4b85efac2734 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9goireDruant?= Date: Fri, 5 May 2023 13:18:37 +0200 Subject: [PATCH] WIP: other path update approach Use jellyfin db to determine parent path id --- jellyfin_kodi/database/jellyfin_db.py | 18 ++++++++++++++++++ jellyfin_kodi/database/queries.py | 23 +++++++++++++++++++++++ jellyfin_kodi/objects/tvshows.py | 6 ++++++ 3 files changed, 47 insertions(+) diff --git a/jellyfin_kodi/database/jellyfin_db.py b/jellyfin_kodi/database/jellyfin_db.py index a518b830..c7a0ba36 100644 --- a/jellyfin_kodi/database/jellyfin_db.py +++ b/jellyfin_kodi/database/jellyfin_db.py @@ -71,6 +71,24 @@ class JellyfinDatabase(): except TypeError: return + def get_season_kodi_parent_path_id(self, *args): + + try: + self.cursor.execute(QU.get_season_kodi_parent_path_id_obj, args) + + return self.cursor.fetchone()[0] + except TypeError: + return + + def get_episode_kodi_parent_path_id(self, *args): + + try: + self.cursor.execute(QU.get_episode_kodi_parent_path_id_obj, args) + + return self.cursor.fetchone()[0] + except TypeError: + return + def get_full_item_by_kodi_id(self, *args): try: diff --git a/jellyfin_kodi/database/queries.py b/jellyfin_kodi/database/queries.py index e1c3eb69..36dc50ba 100644 --- a/jellyfin_kodi/database/queries.py +++ b/jellyfin_kodi/database/queries.py @@ -166,3 +166,26 @@ WHERE jellyfin_parent_id = ? delete_version = """ DELETE FROM version """ +get_season_kodi_parent_path_id = """ +SELECT sh.kodi_pathid +FROM jellyfin s +JOIN jellyfin sh +ON s.parent_id = sh.kodi_id +WHERE s.media_type = ? +AND sh.media_type = ? +AND s.id = ? +""" +get_season_kodi_parent_path_id_obj = ["season", "tvshow", "{SeasonId}"] +get_episode_kodi_parent_path_id = """ +SELECT sh.kodi_pathid +FROM jellyfin e +JOIN jellyfin s +ON e.parent_id = s.kodi_id +JOIN jellyfin sh +ON s.parent_id = sh.kodi_id +WHERE e.media_type = "episode" +AND s.media_type = "season" +AND sh.media_type = "tvshow" +AND e.kodi_fileid = 698; +""" +get_episode_kodi_parent_path_id = ["episode", "season", "tvshow", "{EpisodeId}"] \ No newline at end of file diff --git a/jellyfin_kodi/objects/tvshows.py b/jellyfin_kodi/objects/tvshows.py index 3b169e1b..33f06b75 100644 --- a/jellyfin_kodi/objects/tvshows.py +++ b/jellyfin_kodi/objects/tvshows.py @@ -116,6 +116,7 @@ class TVShows(KodiDb): self.tvshow_add(obj) self.link(*values(obj, QU.update_tvshow_link_obj)) + # Ne marche pas en mode update... self.update_path(*values(obj, QU.update_path_tvshow_obj)) self.add_tags(*values(obj, QU.add_tags_tvshow_obj)) self.add_people(*values(obj, QU.add_people_tvshow_obj)) @@ -152,6 +153,8 @@ class TVShows(KodiDb): season_id = self.get_season(*values(obj, QU.get_season_special_obj)) self.artwork.add(obj['Artwork'], season_id, "season") +# verifier ici + for season in season_episodes: for episodes in server.get_episode_by_season(season_episodes[season], season): @@ -259,6 +262,9 @@ class TVShows(KodiDb): obj = self.objects.map(item, 'Episode') update = True + LOG.debug("EPISODE item: [%s]", item) + LOG.debug("EPISODE e_item: [%s]", e_item) + if obj['Location'] == "Virtual": LOG.info("Skipping virtual episode %s: %s", obj['Title'], obj['Id'])