Merge pull request #513 from mcarlton00/followup-sync

Fix subsequent syncs from the addon menu better
This commit is contained in:
Abby 2021-05-03 01:55:11 +01:00 committed by GitHub
commit 7c833767cd
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 30 additions and 24 deletions

View file

@ -335,6 +335,9 @@ def get_sync():
sync['Whitelist'] = list(set(sync.get('Whitelist', [])))
sync['SortedViews'] = sync.get('SortedViews', [])
# Temporary cleanup from #494/#511, remove in a future version
sync['Libraries'] = [lib_id for lib_id in sync['Libraries'] if ',' not in lib_id]
return sync

View file

@ -68,7 +68,7 @@ class FullSync(object):
return self
def libraries(self, library_id=None, update=False):
def libraries(self, libraries=None, update=False):
''' Map the syncing process and start the sync. Ensure only one sync is running.
'''
@ -76,31 +76,34 @@ class FullSync(object):
self.update_library = update
self.sync = get_sync()
if library_id:
if libraries:
# Can be a single ID or a comma separated list
libraries = libraries.split(',')
for library_id in libraries:
# Look up library in local Jellyfin database
library = self.get_library(library_id)
# Look up library in local Jellyfin database
library = self.get_library(library_id)
if library:
if library.media_type == 'mixed':
self.sync['Libraries'].append("Mixed:%s" % library_id)
# Include boxsets library
libraries = self.get_libraries()
boxsets = [row.view_id for row in libraries if row.media_type == 'boxsets']
if boxsets:
self.sync['Libraries'].append('Boxsets:%s' % boxsets[0])
elif library.media_type == 'movies':
self.sync['Libraries'].append(library_id)
# Include boxsets library
libraries = self.get_libraries()
boxsets = [row.view_id for row in libraries if row.media_type == 'boxsets']
if boxsets:
self.sync['Libraries'].append('Boxsets:%s' % boxsets[0])
if library:
if library.media_type == 'mixed':
self.sync['Libraries'].append("Mixed:%s" % library_id)
# Include boxsets library
libraries = self.get_libraries()
boxsets = [row.view_id for row in libraries if row.media_type == 'boxsets']
if boxsets:
self.sync['Libraries'].append('Boxsets:%s' % boxsets[0])
elif library.media_type == 'movies':
self.sync['Libraries'].append(library_id)
# Include boxsets library
libraries = self.get_libraries()
boxsets = [row.view_id for row in libraries if row.media_type == 'boxsets']
# Verify we're only trying to sync boxsets once
if boxsets and boxsets[0] not in self.sync['Libraries']:
self.sync['Libraries'].append('Boxsets:%s' % boxsets[0])
else:
# Only called if the library isn't already known about
self.sync['Libraries'].append(library_id)
else:
# Only called if the library isn't already known about
self.sync['Libraries'].append(library_id)
else:
self.sync['Libraries'].append(library_id)
else:
self.mapping()

View file

@ -487,7 +487,7 @@ class Music(KodiDb):
if obj['Media'] == 'song':
self.remove_song(obj['KodiId'], obj['Id'])
self.jellyfin_db.remove_wild_item(obj['id'])
self.jellyfin_db.remove_wild_item(obj['Id'])
for item in self.jellyfin_db.get_item_by_wild_id(*values(obj, QUEM.get_item_by_wild_obj)):
if item[1] == 'album':