Rewire Kodi library refreshs
This commit is contained in:
parent
9f35e1d99e
commit
8e1b3444ac
1 changed files with 31 additions and 13 deletions
|
@ -39,6 +39,25 @@ LOG = getLogger('PLEX.librarysync')
|
|||
###############################################################################
|
||||
|
||||
|
||||
def update_library(video=True, music=True):
|
||||
"""
|
||||
Updates the Kodi library and thus refreshes the Kodi views and widgets
|
||||
"""
|
||||
if xbmc.getCondVisibility('Container.Content(musicvideos)') or \
|
||||
xbmc.getCondVisibility('Window.IsMedia'):
|
||||
# Prevent cursor from moving
|
||||
LOG.debug("Refreshing container")
|
||||
xbmc.executebuiltin('Container.Refresh')
|
||||
else:
|
||||
# Update widgets
|
||||
if video:
|
||||
LOG.debug("Doing Kodi Video Lib update")
|
||||
xbmc.executebuiltin('UpdateLibrary(video)')
|
||||
if music:
|
||||
LOG.debug("Doing Kodi Music Lib update")
|
||||
xbmc.executebuiltin('UpdateLibrary(music)')
|
||||
|
||||
|
||||
@utils.thread_methods(add_suspends=['SUSPEND_LIBRARY_THREAD', 'STOP_SYNC'])
|
||||
class LibrarySync(Thread):
|
||||
"""
|
||||
|
@ -58,8 +77,8 @@ class LibrarySync(Thread):
|
|||
# Need to be set accordingly later
|
||||
self.compare = None
|
||||
self.new_items_only = None
|
||||
self.update_kodi_video_library = None
|
||||
self.update_kodi_music_library = None
|
||||
self.update_kodi_video_library = False
|
||||
self.update_kodi_music_library = False
|
||||
self.nodes = {}
|
||||
self.playlists = {}
|
||||
self.sorted_views = []
|
||||
|
@ -288,9 +307,7 @@ class LibrarySync(Thread):
|
|||
return False
|
||||
|
||||
# Let kodi update the views in any case, since we're doing a full sync
|
||||
xbmc.executebuiltin('UpdateLibrary(video)')
|
||||
if state.ENABLE_MUSIC:
|
||||
xbmc.executebuiltin('UpdateLibrary(music)')
|
||||
update_library(video=True, music=state.ENABLE_MUSIC)
|
||||
|
||||
if utils.window('plex_scancrashed') == 'true':
|
||||
# Show warning if itemtypes.py crashed at some point
|
||||
|
@ -1081,8 +1098,6 @@ class LibrarySync(Thread):
|
|||
6: 'analyzing',
|
||||
9: 'deleted'
|
||||
"""
|
||||
self.update_kodi_video_library = False
|
||||
self.update_kodi_music_library = False
|
||||
now = utils.unix_timestamp()
|
||||
delete_list = []
|
||||
for i, item in enumerate(self.items_to_process):
|
||||
|
@ -1119,12 +1134,11 @@ class LibrarySync(Thread):
|
|||
self.items_to_process = self.multi_delete(self.items_to_process,
|
||||
delete_list)
|
||||
# Let Kodi know of the change
|
||||
if self.update_kodi_video_library is True:
|
||||
LOG.info("Doing Kodi Video Lib update")
|
||||
xbmc.executebuiltin('UpdateLibrary(video)')
|
||||
if self.update_kodi_music_library is True:
|
||||
LOG.info("Doing Kodi Music Lib update")
|
||||
xbmc.executebuiltin('UpdateLibrary(music)')
|
||||
if self.update_kodi_video_library or self.update_kodi_music_library:
|
||||
update_library(video=self.update_kodi_video_library,
|
||||
music=self.update_kodi_music_library)
|
||||
self.update_kodi_video_library = False
|
||||
self.update_kodi_music_library = False
|
||||
|
||||
def process_newitems(self, item):
|
||||
xml = PF.GetPlexMetadata(item['ratingKey'])
|
||||
|
@ -1378,6 +1392,10 @@ class LibrarySync(Thread):
|
|||
utils.unix_date_to_kodi(
|
||||
utils.unix_timestamp()),
|
||||
plex_type)
|
||||
if plex_type in (v.PLEX_TYPE_MOVIE, v.PLEX_TYPE_EPISODE):
|
||||
update_library(video=True, music=False)
|
||||
elif plex_type == v.PLEX_TYPE_SONG:
|
||||
update_library(video=False, music=True)
|
||||
|
||||
def sync_fanart(self, missing_only=True, refresh=False):
|
||||
"""
|
||||
|
|
Loading…
Reference in a new issue