mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2024-11-10 04:06:11 +00:00
remove all movies from box set before updating to cacth movies that have been removed
only sync box sets that have changed for inc sync
This commit is contained in:
parent
63bba9d450
commit
fc0442e0ed
2 changed files with 46 additions and 28 deletions
|
@ -200,7 +200,7 @@ class LibrarySync(threading.Thread):
|
|||
self.logMsg("Sync Database, Incremental Sync Setting Last Run Time Saved: %s" % lastSync, 1)
|
||||
utils.settings("LastIncrenetalSync", lastSync)
|
||||
|
||||
def MoviesFullSync(self,connection,cursor, pDialog):
|
||||
def MoviesFullSync(self,connection, cursor, pDialog):
|
||||
|
||||
views = ReadEmbyDB().getCollections("movies")
|
||||
|
||||
|
@ -249,26 +249,28 @@ class LibrarySync(threading.Thread):
|
|||
#### PROCESS BOX SETS #####
|
||||
if(pDialog != None):
|
||||
utils.logMsg("Sync Movies", "BoxSet Sync Started", 1)
|
||||
boxsets = ReadEmbyDB().getBoxSets()
|
||||
|
||||
boxsets = ReadEmbyDB().getBoxSets()
|
||||
|
||||
total = len(boxsets) + 1
|
||||
count = 1
|
||||
for boxset in boxsets:
|
||||
progressTitle = "Processing BoxSets"+ " (" + str(count) + " of " + str(total) + ")"
|
||||
percentage = int(((float(count) / float(total)) * 100))
|
||||
pDialog.update(percentage, "Emby for Kodi - Running Sync", progressTitle)
|
||||
count += 1
|
||||
total = len(boxsets) + 1
|
||||
count = 1
|
||||
for boxset in boxsets:
|
||||
progressTitle = "Processing BoxSets"+ " (" + str(count) + " of " + str(total) + ")"
|
||||
percentage = int(((float(count) / float(total)) * 100))
|
||||
pDialog.update(percentage, "Emby for Kodi - Running Sync", progressTitle)
|
||||
count += 1
|
||||
if(self.ShouldStop()):
|
||||
return False
|
||||
boxsetMovies = ReadEmbyDB().getMoviesInBoxSet(boxset["Id"])
|
||||
WriteKodiVideoDB().addBoxsetToKodiLibrary(boxset, connection, cursor)
|
||||
|
||||
WriteKodiVideoDB().removeMoviesFromBoxset(boxset, connection, cursor)
|
||||
for boxsetMovie in boxsetMovies:
|
||||
if(self.ShouldStop()):
|
||||
return False
|
||||
boxsetMovies = ReadEmbyDB().getMoviesInBoxSet(boxset["Id"])
|
||||
WriteKodiVideoDB().addBoxsetToKodiLibrary(boxset,connection, cursor)
|
||||
return False
|
||||
WriteKodiVideoDB().updateBoxsetToKodiLibrary(boxsetMovie,boxset, connection, cursor)
|
||||
|
||||
for boxsetMovie in boxsetMovies:
|
||||
if(self.ShouldStop()):
|
||||
return False
|
||||
WriteKodiVideoDB().updateBoxsetToKodiLibrary(boxsetMovie,boxset, connection, cursor)
|
||||
|
||||
utils.logMsg("Sync Movies", "BoxSet Sync Finished", 1)
|
||||
utils.logMsg("Sync Movies", "BoxSet Sync Finished", 1)
|
||||
|
||||
#### PROCESS DELETES #####
|
||||
allEmbyMovieIds = set(allEmbyMovieIds)
|
||||
|
@ -628,16 +630,21 @@ class LibrarySync(threading.Thread):
|
|||
count = 1
|
||||
total = len(boxsets) + 1
|
||||
for boxset in boxsets:
|
||||
boxsetMovies = ReadEmbyDB().getMoviesInBoxSet(boxset["Id"])
|
||||
WriteKodiVideoDB().addBoxsetToKodiLibrary(boxset,connection, cursor)
|
||||
if(pDialog != None):
|
||||
progressTitle = "Incremental Sync "+ " (" + str(count) + " of " + str(total) + ")"
|
||||
percentage = int(((float(count) / float(total)) * 100))
|
||||
pDialog.update(percentage, "Emby for Kodi - Incremental Sync BoxSet", progressTitle)
|
||||
count = count + 1
|
||||
for boxsetMovie in boxsetMovies:
|
||||
WriteKodiVideoDB().updateBoxsetToKodiLibrary(boxsetMovie,boxset, connection, cursor)
|
||||
|
||||
if(boxset["Id"] in itemList):
|
||||
utils.logMsg("IncrementalSync", "Updating box Set : " + str(boxset["Name"]), 1)
|
||||
boxsetMovies = ReadEmbyDB().getMoviesInBoxSet(boxset["Id"])
|
||||
WriteKodiVideoDB().addBoxsetToKodiLibrary(boxset, connection, cursor)
|
||||
if(pDialog != None):
|
||||
progressTitle = "Incremental Sync "+ " (" + str(count) + " of " + str(total) + ")"
|
||||
percentage = int(((float(count) / float(total)) * 100))
|
||||
pDialog.update(percentage, "Emby for Kodi - Incremental Sync BoxSet", progressTitle)
|
||||
count = count + 1
|
||||
WriteKodiVideoDB().removeMoviesFromBoxset(boxset, connection, cursor)
|
||||
for boxsetMovie in boxsetMovies:
|
||||
WriteKodiVideoDB().updateBoxsetToKodiLibrary(boxsetMovie, boxset, connection, cursor)
|
||||
else:
|
||||
utils.logMsg("IncrementalSync", "Skipping Box Set : " + boxset["Name"], 1)
|
||||
|
||||
#### PROCESS TV SHOWS ####
|
||||
views = ReadEmbyDB().getCollections("tvshows")
|
||||
for view in views:
|
||||
|
|
|
@ -1233,6 +1233,17 @@ class WriteKodiVideoDB():
|
|||
query = "UPDATE emby SET checksum = ? WHERE emby_id = ?"
|
||||
cursor.execute(query, (API().getChecksum(boxsetmovie), boxsetmovieid))
|
||||
|
||||
def removeMoviesFromBoxset(self, boxset, connection, cursor):
|
||||
|
||||
strSet = boxset['Name']
|
||||
try:
|
||||
cursor.execute("SELECT idSet FROM sets WHERE strSet = ? COLLATE NOCASE", (strSet,))
|
||||
setid = cursor.fetchone()[0]
|
||||
except: pass
|
||||
else:
|
||||
query = "UPDATE movie SET idSet = null WHERE idSet = ?"
|
||||
cursor.execute(query, (setid,))
|
||||
|
||||
def updateUserdata(self, userdata, connection, cursor):
|
||||
# This updates: Favorite, LastPlayedDate, Playcount, PlaybackPositionTicks
|
||||
embyId = userdata['ItemId']
|
||||
|
|
Loading…
Reference in a new issue