mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2024-11-10 04:06:11 +00:00
Refractor some decorators
This commit is contained in:
parent
803081f65a
commit
3ec71e89d6
7 changed files with 101 additions and 106 deletions
|
@ -235,7 +235,7 @@ def get_songs_by_artist(artist_id, basic=False):
|
|||
yield items
|
||||
|
||||
|
||||
@stop()
|
||||
@stop
|
||||
def _get_items(query, server_id=None):
|
||||
|
||||
''' query = {
|
||||
|
|
|
@ -38,6 +38,7 @@ def progress(message=None):
|
|||
if item:
|
||||
args = (item,) + args
|
||||
|
||||
LOG.debug({'self': self, 'dialog': dialog, 'args': args, 'kwargs': kwargs})
|
||||
result = func(self, dialog=dialog, *args, **kwargs)
|
||||
dialog.close()
|
||||
|
||||
|
@ -81,11 +82,10 @@ def silent_catch(errors=(Exception,)):
|
|||
return decorator
|
||||
|
||||
|
||||
def stop(default=None):
|
||||
def stop(func):
|
||||
|
||||
''' Wrapper to catch exceptions and return using catch
|
||||
'''
|
||||
def decorator(func):
|
||||
def wrapper(*args, **kwargs):
|
||||
|
||||
try:
|
||||
|
@ -95,36 +95,31 @@ def stop(default=None):
|
|||
except Exception as error:
|
||||
LOG.exception(error)
|
||||
|
||||
if default is not None:
|
||||
return default
|
||||
|
||||
raise LibraryException("StopCalled")
|
||||
|
||||
LOG.debug({'args': args, 'kwargs': kwargs})
|
||||
return func(*args, **kwargs)
|
||||
|
||||
return wrapper
|
||||
return decorator
|
||||
|
||||
|
||||
def jellyfin_item():
|
||||
def jellyfin_item(func):
|
||||
|
||||
''' Wrapper to retrieve the jellyfin_db item.
|
||||
'''
|
||||
def decorator(func):
|
||||
def wrapper(self, item, *args, **kwargs):
|
||||
e_item = self.jellyfin_db.get_item_by_id(item['Id'] if type(item) == dict else item)
|
||||
|
||||
LOG.debug({'self': self, 'item': item, 'e_item': e_item, 'args': args, 'kwargs': kwargs})
|
||||
return func(self, item, e_item=e_item, *args, **kwargs)
|
||||
|
||||
return wrapper
|
||||
return decorator
|
||||
|
||||
|
||||
def library_check():
|
||||
def library_check(func):
|
||||
|
||||
''' Wrapper to retrieve the library
|
||||
'''
|
||||
def decorator(func):
|
||||
def wrapper(self, item, *args, **kwargs):
|
||||
|
||||
''' TODO: Rethink this one... songs and albums cannot be found by library. expensive.
|
||||
|
@ -173,7 +168,7 @@ def library_check():
|
|||
|
||||
kwargs['library'] = view
|
||||
|
||||
LOG.debug({'self': self, 'item': item, 'args': args, 'kwargs': kwargs})
|
||||
return func(self, item, *args, **kwargs)
|
||||
|
||||
return wrapper
|
||||
return decorator
|
||||
|
|
|
@ -110,7 +110,7 @@ class Library(threading.Thread):
|
|||
with Database('video'), Database('music'):
|
||||
pass
|
||||
|
||||
@stop()
|
||||
@stop
|
||||
def service(self):
|
||||
|
||||
''' If error is encountered, it will rerun this function.
|
||||
|
|
|
@ -37,9 +37,9 @@ class Movies(KodiDb):
|
|||
|
||||
KodiDb.__init__(self, videodb.cursor)
|
||||
|
||||
@stop()
|
||||
@jellyfin_item()
|
||||
@library_check()
|
||||
@stop
|
||||
@jellyfin_item
|
||||
@library_check
|
||||
def movie(self, item, e_item, library):
|
||||
|
||||
''' If item does not exist, entry will be added.
|
||||
|
@ -200,8 +200,8 @@ class Movies(KodiDb):
|
|||
}
|
||||
obj['Filename'] = "%s?%s" % (obj['Path'], urlencode(params))
|
||||
|
||||
@stop()
|
||||
@jellyfin_item()
|
||||
@stop
|
||||
@jellyfin_item
|
||||
def boxset(self, item, e_item):
|
||||
|
||||
''' If item does not exist, entry will be added.
|
||||
|
@ -281,8 +281,8 @@ class Movies(KodiDb):
|
|||
for boxset in boxsets:
|
||||
self.remove(boxset[0])
|
||||
|
||||
@stop()
|
||||
@jellyfin_item()
|
||||
@stop
|
||||
@jellyfin_item
|
||||
def userdata(self, item, e_item):
|
||||
|
||||
''' This updates: Favorite, LastPlayedDate, Playcount, PlaybackPositionTicks
|
||||
|
@ -315,8 +315,8 @@ class Movies(KodiDb):
|
|||
self.jellyfin_db.update_reference(*values(obj, QUEM.update_reference_obj))
|
||||
LOG.debug("USERDATA movie [%s/%s] %s: %s", obj['FileId'], obj['MovieId'], obj['Id'], obj['Title'])
|
||||
|
||||
@stop()
|
||||
@jellyfin_item()
|
||||
@stop
|
||||
@jellyfin_item
|
||||
def remove(self, item_id, e_item):
|
||||
|
||||
''' Remove movieid, fileid, jellyfin reference.
|
||||
|
|
|
@ -35,9 +35,9 @@ class Music(KodiDb):
|
|||
|
||||
KodiDb.__init__(self, musicdb.cursor)
|
||||
|
||||
@stop()
|
||||
@jellyfin_item()
|
||||
@library_check()
|
||||
@stop
|
||||
@jellyfin_item
|
||||
@library_check
|
||||
def artist(self, item, e_item, library):
|
||||
|
||||
''' If item does not exist, entry will be added.
|
||||
|
@ -103,8 +103,8 @@ class Music(KodiDb):
|
|||
self.jellyfin_db.update_reference(*values(obj, QUEM.update_reference_obj))
|
||||
LOG.debug("UPDATE artist [%s] %s: %s", obj['ArtistId'], obj['Name'], obj['Id'])
|
||||
|
||||
@stop()
|
||||
@jellyfin_item()
|
||||
@stop
|
||||
@jellyfin_item
|
||||
def album(self, item, e_item):
|
||||
|
||||
''' Update object to kodi.
|
||||
|
@ -209,9 +209,9 @@ class Music(KodiDb):
|
|||
self.link(*values(temp_obj, QU.update_link_obj))
|
||||
self.item_ids.append(temp_obj['Id'])
|
||||
|
||||
@stop()
|
||||
@jellyfin_item()
|
||||
@library_check()
|
||||
@stop
|
||||
@jellyfin_item
|
||||
@library_check
|
||||
def song(self, item, e_item, library):
|
||||
|
||||
''' Update object to kodi.
|
||||
|
@ -402,8 +402,8 @@ class Music(KodiDb):
|
|||
obj['AlbumId'] = self.create_entry_album()
|
||||
self.add_single(*values(obj, QU.add_single_obj))
|
||||
|
||||
@stop()
|
||||
@jellyfin_item()
|
||||
@stop
|
||||
@jellyfin_item
|
||||
def userdata(self, item, e_item):
|
||||
|
||||
''' This updates: Favorite, LastPlayedDate, Playcount, PlaybackPositionTicks
|
||||
|
@ -431,8 +431,8 @@ class Music(KodiDb):
|
|||
self.jellyfin_db.update_reference(*values(obj, QUEM.update_reference_obj))
|
||||
LOG.debug("USERDATA %s [%s] %s: %s", obj['Media'], obj['KodiId'], obj['Id'], obj['Title'])
|
||||
|
||||
@stop()
|
||||
@jellyfin_item()
|
||||
@stop
|
||||
@jellyfin_item
|
||||
def remove(self, item_id, e_item):
|
||||
|
||||
''' This updates: Favorite, LastPlayedDate, Playcount, PlaybackPositionTicks
|
||||
|
@ -512,7 +512,7 @@ class Music(KodiDb):
|
|||
self.delete_song(kodi_id)
|
||||
LOG.debug("DELETE song [%s] %s", kodi_id, item_id)
|
||||
|
||||
@jellyfin_item()
|
||||
@jellyfin_item
|
||||
def get_child(self, item_id, e_item):
|
||||
|
||||
''' Get all child elements from tv show jellyfin id.
|
||||
|
|
|
@ -39,9 +39,9 @@ class MusicVideos(KodiDb):
|
|||
|
||||
KodiDb.__init__(self, videodb.cursor)
|
||||
|
||||
@stop()
|
||||
@jellyfin_item()
|
||||
@library_check()
|
||||
@stop
|
||||
@jellyfin_item
|
||||
@library_check
|
||||
def musicvideo(self, item, e_item, library):
|
||||
|
||||
''' If item does not exist, entry will be added.
|
||||
|
@ -177,8 +177,8 @@ class MusicVideos(KodiDb):
|
|||
}
|
||||
obj['Filename'] = "%s?%s" % (obj['Path'], urlencode(params))
|
||||
|
||||
@stop()
|
||||
@jellyfin_item()
|
||||
@stop
|
||||
@jellyfin_item
|
||||
def userdata(self, item, e_item):
|
||||
|
||||
''' This updates: Favorite, LastPlayedDate, Playcount, PlaybackPositionTicks
|
||||
|
@ -210,8 +210,8 @@ class MusicVideos(KodiDb):
|
|||
self.jellyfin_db.update_reference(*values(obj, QUEM.update_reference_obj))
|
||||
LOG.debug("USERDATA mvideo [%s/%s] %s: %s", obj['FileId'], obj['MvideoId'], obj['Id'], obj['Title'])
|
||||
|
||||
@stop()
|
||||
@jellyfin_item()
|
||||
@stop
|
||||
@jellyfin_item
|
||||
def remove(self, item_id, e_item):
|
||||
|
||||
''' Remove mvideoid, fileid, pathid, jellyfin reference.
|
||||
|
|
|
@ -41,9 +41,9 @@ class TVShows(KodiDb):
|
|||
|
||||
KodiDb.__init__(self, videodb.cursor)
|
||||
|
||||
@stop()
|
||||
@jellyfin_item()
|
||||
@library_check()
|
||||
@stop
|
||||
@jellyfin_item
|
||||
@library_check
|
||||
def tvshow(self, item, e_item, library):
|
||||
|
||||
''' If item does not exist, entry will be added.
|
||||
|
@ -201,7 +201,7 @@ class TVShows(KodiDb):
|
|||
obj['TopLevel'] = "plugin://plugin.video.jellyfin/%s/" % obj['LibraryId']
|
||||
obj['Path'] = "%s%s/" % (obj['TopLevel'], obj['Id'])
|
||||
|
||||
@stop()
|
||||
@stop
|
||||
def season(self, item, show_id=None):
|
||||
|
||||
''' If item does not exist, entry will be added.
|
||||
|
@ -235,8 +235,8 @@ class TVShows(KodiDb):
|
|||
self.artwork.add(obj['Artwork'], obj['SeasonId'], "season")
|
||||
LOG.debug("UPDATE season [%s/%s] %s: %s", obj['ShowId'], obj['SeasonId'], obj['Title'] or obj['Index'], obj['Id'])
|
||||
|
||||
@stop()
|
||||
@jellyfin_item()
|
||||
@stop
|
||||
@jellyfin_item
|
||||
def episode(self, item, e_item):
|
||||
|
||||
''' If item does not exist, entry will be added.
|
||||
|
@ -425,8 +425,8 @@ class TVShows(KodiDb):
|
|||
|
||||
return True
|
||||
|
||||
@stop()
|
||||
@jellyfin_item()
|
||||
@stop
|
||||
@jellyfin_item
|
||||
def userdata(self, item, e_item):
|
||||
|
||||
''' This updates: Favorite, LastPlayedDate, Playcount, PlaybackPositionTicks
|
||||
|
@ -486,8 +486,8 @@ class TVShows(KodiDb):
|
|||
self.jellyfin_db.update_reference(*values(obj, QUEM.update_reference_obj))
|
||||
LOG.debug("USERDATA %s [%s/%s] %s: %s", obj['Media'], obj['FileId'], obj['KodiId'], obj['Id'], obj['Title'])
|
||||
|
||||
@stop()
|
||||
@jellyfin_item()
|
||||
@stop
|
||||
@jellyfin_item
|
||||
def remove(self, item_id, e_item):
|
||||
|
||||
''' Remove showid, fileid, pathid, jellyfin reference.
|
||||
|
@ -589,7 +589,7 @@ class TVShows(KodiDb):
|
|||
self.delete_episode(kodi_id, file_id)
|
||||
LOG.debug("DELETE episode [%s/%s] %s", file_id, kodi_id, item_id)
|
||||
|
||||
@jellyfin_item()
|
||||
@jellyfin_item
|
||||
def get_child(self, item_id, e_item):
|
||||
|
||||
''' Get all child elements from tv show jellyfin id.
|
||||
|
|
Loading…
Reference in a new issue