diff --git a/jellyfin_kodi/database/jellyfin_db.py b/jellyfin_kodi/database/jellyfin_db.py index c7a0ba36..0cbe9dd6 100644 --- a/jellyfin_kodi/database/jellyfin_db.py +++ b/jellyfin_kodi/database/jellyfin_db.py @@ -71,19 +71,10 @@ 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) + self.cursor.execute(QU.get_episode_kodi_parent_path_id, args) return self.cursor.fetchone()[0] except TypeError: diff --git a/jellyfin_kodi/database/queries.py b/jellyfin_kodi/database/queries.py index 36dc50ba..6136a50e 100644 --- a/jellyfin_kodi/database/queries.py +++ b/jellyfin_kodi/database/queries.py @@ -166,16 +166,7 @@ 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 @@ -183,9 +174,9 @@ 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; +WHERE e.media_type = ? +AND s.media_type = ? +AND sh.media_type = ? +AND e.jellyfin_id = ?; """ -get_episode_kodi_parent_path_id = ["episode", "season", "tvshow", "{EpisodeId}"] \ No newline at end of file +get_episode_kodi_parent_path_id_obj = ["episode", "season", "tvshow", "{Id}"] \ No newline at end of file diff --git a/jellyfin_kodi/objects/kodi/kodi.py b/jellyfin_kodi/objects/kodi/kodi.py index b9650149..09909a50 100644 --- a/jellyfin_kodi/objects/kodi/kodi.py +++ b/jellyfin_kodi/objects/kodi/kodi.py @@ -77,6 +77,9 @@ class Kodi(object): except TypeError: return + def update_path_parent_id(self, path_id, parent_path_id): + self.cursor.execute(QU.update_path_parent_id, (parent_path_id, path_id)) + def update_path(self, *args): self.cursor.execute(QU.update_path, args) diff --git a/jellyfin_kodi/objects/kodi/queries.py b/jellyfin_kodi/objects/kodi/queries.py index 1e652381..e73a6bf3 100644 --- a/jellyfin_kodi/objects/kodi/queries.py +++ b/jellyfin_kodi/objects/kodi/queries.py @@ -345,6 +345,11 @@ INSERT INTO art(media_id, media_type, type, url) VALUES (?, ?, ?, ?) """ +update_path_parent_id = """ +UPDATE path +SET idParentPath = ? +where idPath = ? +""" update_path = """ UPDATE path diff --git a/jellyfin_kodi/objects/tvshows.py b/jellyfin_kodi/objects/tvshows.py index 33f06b75..36237f4b 100644 --- a/jellyfin_kodi/objects/tvshows.py +++ b/jellyfin_kodi/objects/tvshows.py @@ -116,7 +116,6 @@ 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)) @@ -153,8 +152,6 @@ 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): @@ -180,6 +177,9 @@ class TVShows(KodiDb): self.jellyfin_db.add_reference(*values(obj, QUEM.add_reference_tvshow_obj)) LOG.debug("ADD tvshow [%s/%s/%s] %s: %s", obj['TopPathId'], obj['PathId'], obj['ShowId'], obj['Title'], obj['Id']) + # TODO: Greg + self.update_path_parent_id(obj['PathId'], obj['TopPathId']) + def tvshow_update(self, obj): ''' Update object to kodi. @@ -190,10 +190,15 @@ class TVShows(KodiDb): obj['Unique'] = self.get_unique_id(*values(obj, QU.get_unique_id_tvshow_obj)) self.update_unique_id(*values(obj, QU.update_unique_id_tvshow_obj)) + obj['TopPathId'] = self.get_path(obj['TopLevel']) + self.update(*values(obj, QU.update_tvshow_obj)) self.jellyfin_db.update_reference(*values(obj, QUEM.update_reference_obj)) LOG.debug("UPDATE tvshow [%s/%s] %s: %s", obj['PathId'], obj['ShowId'], obj['Title'], obj['Id']) + # TODO: Greg + self.update_path_parent_id(obj['PathId'], obj['TopPathId']) + def get_path_filename(self, obj): ''' Get the path and build it into protocol://path @@ -383,6 +388,12 @@ class TVShows(KodiDb): return self.episode_add(obj) self.jellyfin_db.add_reference(*values(obj, QUEM.add_reference_episode_obj)) + + # TODO Greg + parentPathId = self.jellyfin_db.get_episode_kodi_parent_path_id(*values(obj, QUEM.get_episode_kodi_parent_path_id_obj)) + LOG.debug("Setting episode pathParentId, episode %s, title %s, pathId %s, pathParentId %s", obj['Id'], obj['Title'], obj['PathId'], parentPathId) + self.update_path_parent_id(obj['PathId'], parentPathId) + LOG.debug("ADD episode [%s/%s] %s: %s", obj['PathId'], obj['FileId'], obj['Id'], obj['Title']) def episode_update(self, obj):