diff --git a/resources/lib/LibrarySync.py b/resources/lib/LibrarySync.py index 0b16397f..7f4a2caf 100644 --- a/resources/lib/LibrarySync.py +++ b/resources/lib/LibrarySync.py @@ -49,6 +49,9 @@ class LibrarySync(): allMovies = list() movieData = self.getMovies(True) + if(self.ShouldStop()): + return False + if(movieData == None): return False @@ -70,6 +73,9 @@ class LibrarySync(): self.updateMovieToKodiLibrary(item, kodiItem) progMessage = "Updating" + if(self.ShouldStop()): + return False + # update progress bar if(pDialog != None): percentage = int(((float(count) / float(total)) * 100)) @@ -81,6 +87,9 @@ class LibrarySync(): allEpisodes = list() tvShowData = self.getTVShows(True) + if(self.ShouldStop()): + return False + if (tvShowData == None): return @@ -102,6 +111,9 @@ class LibrarySync(): self.updateTVShowToKodiLibrary(item, kodiItem) progMessage = "Updating" + if(self.ShouldStop()): + return False + # update progress bar if(pDialog != None): percentage = int(((float(count) / float(total)) * 100)) @@ -118,6 +130,9 @@ class LibrarySync(): episodeData = self.getEpisodes(tvshow,True) kodiEpisodes = self.getKodiEpisodes(tvshow) + if(self.ShouldStop()): + return False + if(pDialog != None): pDialog.update(0, "Sync DB : Processing Episodes") total = len(episodeData) + 1 @@ -147,6 +162,9 @@ class LibrarySync(): updateNeeded = True progMessage = "Adding" + if(self.ShouldStop()): + return False + # update progress bar if(pDialog != None): percentage = int(((float(count) / float(total)) * 100)) @@ -158,6 +176,9 @@ class LibrarySync(): if(pDialog != None): pDialog.update(0, message="Removing Deleted Items") + if(self.ShouldStop()): + return False + cleanNeeded = False allLocaldirs, filesMovies = xbmcvfs.listdir(movieLibrary) allMB3Movies = set(allMovies) @@ -166,6 +187,9 @@ class LibrarySync(): self.deleteMovieFromKodiLibrary(dir) cleanneeded = True + if(self.ShouldStop()): + return False + allLocaldirs, filesTVShows = xbmcvfs.listdir(tvLibrary) allMB3TVShows = set(allTVShows) for dir in allLocaldirs: @@ -173,6 +197,9 @@ class LibrarySync(): self.deleteTVShowFromKodiLibrary(dir) cleanneeded = True + if(self.ShouldStop()): + return False + if cleanNeeded: xbmc.executebuiltin("CleanLibrary(video)") @@ -201,6 +228,10 @@ class LibrarySync(): #process movies movieData = self.getMovies(False) + + if(self.ShouldStop()): + return False + if(movieData == None): return False @@ -224,6 +255,9 @@ class LibrarySync(): if kodiresume != resume: self.setKodiResumePoint(kodiItem['movieid'],resume,total,"movie") + if(self.ShouldStop()): + return False + # update progress bar if(pDialog != None): percentage = int(((float(count) / float(totalCount)) * 100)) @@ -232,6 +266,10 @@ class LibrarySync(): #process Tv shows tvshowData = self.getTVShows(False) + + if(self.ShouldStop()): + return False + if (tvshowData == None): return False @@ -258,6 +296,9 @@ class LibrarySync(): if kodiresume != resume: self.setKodiResumePoint(kodiItem['episodeid'],resume,total,"episode") + if(self.ShouldStop()): + return False + # update progress bar if(pDialog != None): percentage = int(((float(count) / float(totalCount)) * 100)) @@ -960,7 +1001,11 @@ class LibrarySync(): 'id' : view.get("Id")}) return collections - + def ShouldStop(self): + if(xbmc.Player().isPlaying() or xbmc.abortRequested): + return True + else: + return False