mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2025-09-18 20:44:39 +00:00
Remove content with update library
Now remove irrelevant content as well
This commit is contained in:
parent
c63bfd1346
commit
586717c7a1
6 changed files with 121 additions and 18 deletions
|
@ -126,7 +126,6 @@ class Movies(KodiDb):
|
|||
self.add_people(*values(obj, QU.add_people_movie_obj))
|
||||
self.add_streams(*values(obj, QU.add_streams_obj))
|
||||
self.artwork.add(obj['Artwork'], obj['MovieId'], "movie")
|
||||
|
||||
self.item_ids.append(obj['Id'])
|
||||
|
||||
return not update
|
||||
|
|
|
@ -30,6 +30,7 @@ class Music(KodiDb):
|
|||
|
||||
self.emby_db = emby_db.EmbyDatabase(embydb.cursor)
|
||||
self.objects = Objects()
|
||||
self.item_ids = []
|
||||
|
||||
KodiDb.__init__(self, musicdb.cursor)
|
||||
|
||||
|
@ -49,7 +50,7 @@ class Music(KodiDb):
|
|||
@stop()
|
||||
@emby_item()
|
||||
@library_check()
|
||||
def artist(self, item, e_item, library, artist_type=None):
|
||||
def artist(self, item, e_item, library):
|
||||
|
||||
''' If item does not exist, entry will be added.
|
||||
If item exists, entry will be updated.
|
||||
|
@ -74,7 +75,7 @@ class Music(KodiDb):
|
|||
obj['LibraryId'] = library['Id']
|
||||
obj['LibraryName'] = library['Name']
|
||||
obj['LastScraped'] = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
|
||||
obj['ArtistType'] = artist_type or "MusicArtist"
|
||||
obj['ArtistType'] = "MusicArtist"
|
||||
obj['Genre'] = " / ".join(obj['Genres'] or [])
|
||||
obj['Bio'] = API.get_overview(obj['Bio'])
|
||||
obj['Artwork'] = API.get_all_artwork(self.objects.map(item, 'ArtworkMusic'), True)
|
||||
|
@ -96,6 +97,7 @@ class Music(KodiDb):
|
|||
|
||||
self.update(obj['Genre'], obj['Bio'], obj['Thumb'], obj['Backdrops'], obj['LastScraped'], obj['ArtistId'])
|
||||
self.artwork.add(obj['Artwork'], obj['ArtistId'], "artist")
|
||||
self.item_ids.append(obj['Id'])
|
||||
|
||||
def artist_add(self, obj):
|
||||
|
||||
|
@ -163,6 +165,7 @@ class Music(KodiDb):
|
|||
self.update_album(*values(obj, QU.update_album_obj))
|
||||
self.add_genres(*values(obj, QU.add_genres_obj))
|
||||
self.artwork.add(obj['Artwork'], obj['AlbumId'], "album")
|
||||
self.item_ids.append(obj['Id'])
|
||||
|
||||
def album_add(self, obj):
|
||||
|
||||
|
@ -218,10 +221,10 @@ class Music(KodiDb):
|
|||
except Exception as error:
|
||||
LOG.error(error)
|
||||
continue
|
||||
else:
|
||||
self.update_artist_name(*values(temp_obj, QU.update_artist_name_obj))
|
||||
|
||||
self.update_artist_name(*values(temp_obj, QU.update_artist_name_obj))
|
||||
self.link(*values(temp_obj, QU.update_link_obj))
|
||||
self.item_ids.append(temp_obj['Id'])
|
||||
|
||||
|
||||
@stop()
|
||||
|
@ -290,6 +293,7 @@ class Music(KodiDb):
|
|||
|
||||
self.add_genres(*values(obj, QU.update_genre_song_obj))
|
||||
self.artwork.add(obj['Artwork'], obj['SongId'], "song")
|
||||
self.item_ids.append(obj['Id'])
|
||||
|
||||
if obj['SongAlbumId'] is None:
|
||||
self.artwork.add(obj['Artwork'], obj['AlbumId'], "album")
|
||||
|
@ -320,7 +324,7 @@ class Music(KodiDb):
|
|||
|
||||
self.add_song(*values(obj, QU.add_song_obj))
|
||||
self.emby_db.add_reference(*values(obj, QUEM.add_reference_song_obj))
|
||||
LOG.info("ADD song [%s/%s/%s] %s: %s", obj['PathId'], obj['AlbumId'], obj['SongId'], obj['Id'], obj['Title'])
|
||||
LOG.debug("ADD song [%s/%s/%s] %s: %s", obj['PathId'], obj['AlbumId'], obj['SongId'], obj['Id'], obj['Title'])
|
||||
|
||||
def song_update(self, obj):
|
||||
|
||||
|
@ -375,6 +379,7 @@ class Music(KodiDb):
|
|||
continue
|
||||
|
||||
self.link(*values(temp_obj, QU.update_link_obj))
|
||||
self.item_ids.append(temp_obj['Id'])
|
||||
|
||||
if obj['Album']:
|
||||
|
||||
|
@ -408,6 +413,7 @@ class Music(KodiDb):
|
|||
continue
|
||||
|
||||
self.link_song_artist(*values(temp_obj, QU.update_song_artist_obj))
|
||||
self.item_ids.append(temp_obj['Id'])
|
||||
|
||||
def single(self, obj):
|
||||
|
||||
|
@ -523,3 +529,32 @@ class Music(KodiDb):
|
|||
self.artwork.delete(kodi_id, "song")
|
||||
self.delete_song(kodi_id)
|
||||
LOG.info("DELETE song [%s] %s", kodi_id, item_id)
|
||||
|
||||
@emby_item()
|
||||
def get_child(self, item_id, e_item):
|
||||
|
||||
''' Get all child elements from tv show emby id.
|
||||
'''
|
||||
obj = {'Id': item_id}
|
||||
child = []
|
||||
|
||||
try:
|
||||
obj['KodiId'] = e_item[0]
|
||||
obj['FileId'] = e_item[1]
|
||||
obj['ParentId'] = e_item[3]
|
||||
obj['Media'] = e_item[4]
|
||||
except TypeError:
|
||||
return child
|
||||
|
||||
obj['ParentId'] = obj['KodiId']
|
||||
|
||||
for album in self.emby_db.get_item_by_parent_id(*values(obj, QUEM.get_item_by_parent_album_obj)):
|
||||
|
||||
temp_obj = dict(obj)
|
||||
temp_obj['ParentId'] = album[1]
|
||||
child.append((album[0],))
|
||||
|
||||
for song in self.emby_db.get_item_by_parent_id(*values(temp_obj, QUEM.get_item_by_parent_song_obj)):
|
||||
child.append((song[0],))
|
||||
|
||||
return child
|
||||
|
|
|
@ -30,6 +30,7 @@ class MusicVideos(KodiDb):
|
|||
|
||||
self.emby_db = emby_db.EmbyDatabase(embydb.cursor)
|
||||
self.objects = Objects()
|
||||
self.item_ids = []
|
||||
|
||||
KodiDb.__init__(self, videodb.cursor)
|
||||
|
||||
|
@ -136,6 +137,7 @@ class MusicVideos(KodiDb):
|
|||
self.add_people(*values(obj, QU.add_people_mvideo_obj))
|
||||
self.add_streams(*values(obj, QU.add_streams_obj))
|
||||
self.artwork.add(obj['Artwork'], obj['MvideoId'], "musicvideo")
|
||||
self.item_ids.append(obj['Id'])
|
||||
|
||||
return not update
|
||||
|
||||
|
|
|
@ -22,15 +22,17 @@ LOG = logging.getLogger("EMBY."+__name__)
|
|||
|
||||
class TVShows(KodiDb):
|
||||
|
||||
def __init__(self, server, embydb, videodb, direct_path):
|
||||
def __init__(self, server, embydb, videodb, direct_path, update_library=False):
|
||||
|
||||
self.server = server
|
||||
self.emby = embydb
|
||||
self.video = videodb
|
||||
self.direct_path = direct_path
|
||||
self.update_library = update_library
|
||||
|
||||
self.emby_db = emby_db.EmbyDatabase(embydb.cursor)
|
||||
self.objects = Objects()
|
||||
self.item_ids = []
|
||||
|
||||
KodiDb.__init__(self, videodb.cursor)
|
||||
|
||||
|
@ -126,6 +128,7 @@ class TVShows(KodiDb):
|
|||
self.add_genres(*values(obj, QU.add_genres_tvshow_obj))
|
||||
self.add_studios(*values(obj, QU.add_studios_tvshow_obj))
|
||||
self.artwork.add(obj['Artwork'], obj['ShowId'], "tvshow")
|
||||
self.item_ids.append(obj['Id'])
|
||||
|
||||
season_episodes = {}
|
||||
|
||||
|
@ -133,9 +136,13 @@ class TVShows(KodiDb):
|
|||
|
||||
if season['SeriesId'] != obj['Id']:
|
||||
obj['SeriesId'] = season['SeriesId']
|
||||
self.item_ids.append(season['SeriesId'])
|
||||
|
||||
try:
|
||||
self.emby_db.get_item_by_id(*values(obj, QUEM.get_item_series_obj))[0]
|
||||
|
||||
if self.update_library:
|
||||
season_episodes[season['Id']] = season['SeriesId']
|
||||
except TypeError:
|
||||
|
||||
self.emby_db.add_reference(*values(obj, QUEM.add_reference_pool_obj))
|
||||
|
@ -144,6 +151,7 @@ class TVShows(KodiDb):
|
|||
|
||||
try:
|
||||
self.emby_db.get_item_by_id(season['Id'])[0]
|
||||
self.item_ids.append(season['Id'])
|
||||
except TypeError:
|
||||
self.season(season, obj['ShowId'])
|
||||
else:
|
||||
|
@ -236,6 +244,7 @@ class TVShows(KodiDb):
|
|||
|
||||
if obj['Location'] != "Virtual":
|
||||
self.emby_db.add_reference(*values(obj, QUEM.add_reference_season_obj))
|
||||
self.item_ids.append(obj['Id'])
|
||||
|
||||
self.artwork.add(obj['Artwork'], obj['SeasonId'], "season")
|
||||
LOG.info("UPDATE season [%s/%s] %s: %s", obj['ShowId'], obj['SeasonId'], obj['Title'] or obj['Index'], obj['Id'])
|
||||
|
@ -336,6 +345,7 @@ class TVShows(KodiDb):
|
|||
self.add_streams(*values(obj, QU.add_streams_obj))
|
||||
self.add_playstate(*values(obj, QU.add_bookmark_obj))
|
||||
self.artwork.update(obj['Artwork']['Primary'], obj['EpisodeId'], "episode", "thumb")
|
||||
self.item_ids.append(obj['Id'])
|
||||
|
||||
if not self.direct_path and obj['Resume']:
|
||||
|
||||
|
@ -421,6 +431,8 @@ class TVShows(KodiDb):
|
|||
else:
|
||||
obj['ShowId'] = obj['ShowId'][0]
|
||||
|
||||
self.item_ids.append(obj['SeriesId'])
|
||||
|
||||
return True
|
||||
|
||||
|
||||
|
@ -558,7 +570,7 @@ class TVShows(KodiDb):
|
|||
|
||||
if not self.emby_db.get_item_by_parent_id(*values(obj, QUEM.delete_item_by_parent_season_obj)):
|
||||
|
||||
self.remove_show(obj['ParentId'], obj['Id'])
|
||||
self.remove_tvshow(obj['ParentId'], obj['Id'])
|
||||
self.emby_db.remove_item_by_kodi_id(*values(obj, QUEM.delete_item_by_parent_tvshow_obj))
|
||||
|
||||
# Remove any series pooling episodes
|
||||
|
@ -586,3 +598,35 @@ class TVShows(KodiDb):
|
|||
self.artwork.delete(kodi_id, "episode")
|
||||
self.delete_episode(kodi_id, file_id)
|
||||
LOG.info("DELETE episode [%s/%s] %s", file_id, kodi_id, item_id)
|
||||
|
||||
@emby_item()
|
||||
def get_child(self, item_id, e_item):
|
||||
|
||||
''' Get all child elements from tv show emby id.
|
||||
'''
|
||||
obj = {'Id': item_id}
|
||||
child = []
|
||||
|
||||
try:
|
||||
obj['KodiId'] = e_item[0]
|
||||
obj['FileId'] = e_item[1]
|
||||
obj['ParentId'] = e_item[3]
|
||||
obj['Media'] = e_item[4]
|
||||
except TypeError:
|
||||
return child
|
||||
|
||||
obj['ParentId'] = obj['KodiId']
|
||||
|
||||
for season in self.emby_db.get_item_by_parent_id(*values(obj, QUEM.get_item_by_parent_season_obj)):
|
||||
|
||||
temp_obj = dict(obj)
|
||||
temp_obj['ParentId'] = season[1]
|
||||
child.append(season[0])
|
||||
|
||||
for episode in self.emby_db.get_item_by_parent_id(*values(temp_obj, QUEM.get_item_by_parent_episode_obj)):
|
||||
child.append(episode[0])
|
||||
|
||||
for episode in self.emby_db.get_media_by_parent_id(obj['Id']):
|
||||
child.append(episode[0])
|
||||
|
||||
return child
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue