mirror of
https://github.com/jellyfin/jellyfin-kodi.git
synced 2024-12-26 02:36:10 +00:00
improvement to tvshows sync: also process updates at tv show level at first sync
This commit is contained in:
parent
cbfc40f430
commit
6eba8db57a
4 changed files with 36 additions and 17 deletions
|
@ -119,7 +119,10 @@ class CreateFiles():
|
||||||
if seasonData != None:
|
if seasonData != None:
|
||||||
for season in seasonData:
|
for season in seasonData:
|
||||||
if season.has_key("IndexNumber"):
|
if season.has_key("IndexNumber"):
|
||||||
SubElement(root, "thumb",{"type":"season","season":str(season["IndexNumber"])}).text = API().getArtwork(season, "Primary")
|
seasonart = API().getArtwork(season, "Primary")
|
||||||
|
if seasonart == None:
|
||||||
|
seasonart = API().getArtwork(item, "Primary")
|
||||||
|
SubElement(root, "thumb",{"type":"season","season":str(season["IndexNumber"])}).text = seasonart
|
||||||
SubElement(root, "thumb",{"type":"season","season":"0"}).text = API().getArtwork(item, "Primary")
|
SubElement(root, "thumb",{"type":"season","season":"0"}).text = API().getArtwork(item, "Primary")
|
||||||
|
|
||||||
SubElement(root, "fanart").text = API().getArtwork(item, "Backdrop")
|
SubElement(root, "fanart").text = API().getArtwork(item, "Backdrop")
|
||||||
|
|
|
@ -324,7 +324,7 @@ class LibrarySync():
|
||||||
allEpisodes = list()
|
allEpisodes = list()
|
||||||
#FIXME --> for now pull all tv shows and use the incremental update only at episode level
|
#FIXME --> for now pull all tv shows and use the incremental update only at episode level
|
||||||
tvShowData = ReadEmbyDB().getTVShows(True,True)
|
tvShowData = ReadEmbyDB().getTVShows(True,True)
|
||||||
|
allKodiIds = set(ReadKodiDB().getKodiTvShowsIds(True))
|
||||||
updateNeeded = False
|
updateNeeded = False
|
||||||
|
|
||||||
if(self.ShouldStop(pDialog)):
|
if(self.ShouldStop(pDialog)):
|
||||||
|
@ -341,16 +341,11 @@ class LibrarySync():
|
||||||
|
|
||||||
for item in tvShowData:
|
for item in tvShowData:
|
||||||
if item.get('IsFolder'):
|
if item.get('IsFolder'):
|
||||||
kodiItem = ReadKodiDB().getKodiTVShow(item["Id"])
|
|
||||||
allTVShows.append(item["Id"])
|
allTVShows.append(item["Id"])
|
||||||
progMessage = "Processing"
|
progMessage = "Processing"
|
||||||
if kodiItem == None:
|
if item["Id"] not in allKodiIds:
|
||||||
WriteKodiDB().addTVShowToKodiLibrary(item)
|
WriteKodiDB().addMovieToKodiLibrary(item)
|
||||||
updateNeeded = True
|
updateNeeded = True
|
||||||
progMessage = "Adding"
|
|
||||||
else:
|
|
||||||
WriteKodiDB().updateTVShowToKodiLibrary(item, kodiItem)
|
|
||||||
progMessage = "Updating"
|
|
||||||
|
|
||||||
if(self.ShouldStop(pDialog)):
|
if(self.ShouldStop(pDialog)):
|
||||||
return True
|
return True
|
||||||
|
@ -358,7 +353,7 @@ class LibrarySync():
|
||||||
# update progress bar
|
# update progress bar
|
||||||
if(pDialog != None):
|
if(pDialog != None):
|
||||||
percentage = int(((float(count) / float(total)) * 100))
|
percentage = int(((float(count) / float(total)) * 100))
|
||||||
pDialog.update(percentage, progressTitle, progMessage + " Tv Show: " + str(count))
|
pDialog.update(percentage, progressTitle, "Adding Tv Show: " + str(count))
|
||||||
count += 1
|
count += 1
|
||||||
|
|
||||||
#initiate library update and wait for finish before processing any updates
|
#initiate library update and wait for finish before processing any updates
|
||||||
|
@ -373,9 +368,32 @@ class LibrarySync():
|
||||||
if(pDialog != None and type(pDialog) == xbmcgui.DialogProgressBG):
|
if(pDialog != None and type(pDialog) == xbmcgui.DialogProgressBG):
|
||||||
pDialog.create('Sync DB', 'Sync DB')
|
pDialog.create('Sync DB', 'Sync DB')
|
||||||
|
|
||||||
|
if(pDialog != None):
|
||||||
|
progressTitle = "Sync DB : Processing TV Shows"
|
||||||
|
pDialog.update(0, progressTitle, "")
|
||||||
|
total = len(allMB3Movies) + 1
|
||||||
|
count = 1
|
||||||
|
|
||||||
#process episodes (will only be possible when tv show is scanned to library)
|
#process updates at TV Show level
|
||||||
#TODO --> maybe pull full info only when needed ?
|
allKodiTVShows = ReadKodiDB().getKodiTvShows(True)
|
||||||
|
for item in tvShowData:
|
||||||
|
if item.get('IsFolder'):
|
||||||
|
|
||||||
|
kodishow = allKodiTVShows.get(item["Id"],None)
|
||||||
|
|
||||||
|
if(kodishow != None):
|
||||||
|
WriteKodiDB().updateTVShowToKodiLibrary(item,kodishow)
|
||||||
|
|
||||||
|
if(self.ShouldStop(pDialog)):
|
||||||
|
return True
|
||||||
|
|
||||||
|
# update progress bar
|
||||||
|
if(pDialog != None):
|
||||||
|
percentage = int(((float(count) / float(total)) * 100))
|
||||||
|
pDialog.update(percentage, progressTitle, "Updating Tv Show: " + str(count))
|
||||||
|
count += 1
|
||||||
|
|
||||||
|
#process episodes
|
||||||
allEpisodes = list()
|
allEpisodes = list()
|
||||||
|
|
||||||
showTotal = len(allTVShows)
|
showTotal = len(allTVShows)
|
||||||
|
|
|
@ -95,8 +95,6 @@ class ReadKodiDB():
|
||||||
|
|
||||||
return allKodiTvShowsIds
|
return allKodiTvShowsIds
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def getKodiTvShows(self,fullInfo = False):
|
def getKodiTvShows(self,fullInfo = False):
|
||||||
#returns all tvshows in Kodi db inserted by MB
|
#returns all tvshows in Kodi db inserted by MB
|
||||||
xbmc.sleep(sleepVal)
|
xbmc.sleep(sleepVal)
|
||||||
|
|
|
@ -176,7 +176,7 @@ class WriteKodiDB():
|
||||||
changes = False
|
changes = False
|
||||||
|
|
||||||
#update artwork
|
#update artwork
|
||||||
#changes |= self.updateArtWork(KodiItem,"poster", API().getArtwork(MBitem, "Primary"),"tvshow")
|
changes |= self.updateArtWork(KodiItem,"poster", API().getArtwork(MBitem, "Primary"),"tvshow")
|
||||||
changes |= self.updateArtWork(KodiItem,"clearlogo", API().getArtwork(MBitem, "Logo"),"tvshow")
|
changes |= self.updateArtWork(KodiItem,"clearlogo", API().getArtwork(MBitem, "Logo"),"tvshow")
|
||||||
changes |= self.updateArtWork(KodiItem,"clearart", API().getArtwork(MBitem, "Art"),"tvshow")
|
changes |= self.updateArtWork(KodiItem,"clearart", API().getArtwork(MBitem, "Art"),"tvshow")
|
||||||
changes |= self.updateArtWork(KodiItem,"banner", API().getArtwork(MBitem, "Banner"),"tvshow")
|
changes |= self.updateArtWork(KodiItem,"banner", API().getArtwork(MBitem, "Banner"),"tvshow")
|
||||||
|
|
Loading…
Reference in a new issue