fix extrafanart retrieval

This commit is contained in:
Marcel van der Veldt 2015-08-05 15:05:37 +02:00
parent e972ae2729
commit 8e3eba858d

View file

@ -596,6 +596,7 @@ def createListItem(item):
def getExtraFanArt(): def getExtraFanArt():
itemPath = "" itemPath = ""
embyId = "" embyId = ""
#get extrafanart for listitem - this will only be used for skins that actually call the listitem's path + fanart dir... #get extrafanart for listitem - this will only be used for skins that actually call the listitem's path + fanart dir...
try: try:
#only do this if the listitem has actually changed #only do this if the listitem has actually changed
@ -606,6 +607,8 @@ def getExtraFanArt():
if ("/tvshows/" in itemPath or "/musicvideos/" in itemPath or "/movies/" in itemPath): if ("/tvshows/" in itemPath or "/musicvideos/" in itemPath or "/movies/" in itemPath):
embyId = itemPath.split("/")[-2] embyId = itemPath.split("/")[-2]
utils.logMsg("%s %s" % ("Emby addon", "getExtraFanArt"), "requesting extraFanArt for Id: " + embyId, 1)
#we need to store the images locally for this to work because of the caching system in xbmc #we need to store the images locally for this to work because of the caching system in xbmc
fanartDir = xbmc.translatePath("special://thumbnails/emby/" + embyId + "/") fanartDir = xbmc.translatePath("special://thumbnails/emby/" + embyId + "/")
@ -617,11 +620,16 @@ def getExtraFanArt():
if item != None: if item != None:
if item.has_key("BackdropImageTags"): if item.has_key("BackdropImageTags"):
if(len(item["BackdropImageTags"]) > 0): if(len(item["BackdropImageTags"]) > 0):
totalbackdrops = len(item["BackdropImageTags"]) WINDOW = xbmcgui.Window(10000)
for index in range(0,totalbackdrops): username = WINDOW.getProperty('currUser')
backgroundUrl = API().getArtwork(item, "Backdrop",str(index)) server = WINDOW.getProperty('server%s' % username)
fanartFile = os.path.join(fanartDir,"fanart" + str(index) + ".jpg") totalbackdrops = len(item["BackdropImageTags"])
li = xbmcgui.ListItem(str(index), path=fanartFile) count = 0
for backdrop in item["BackdropImageTags"]:
backgroundUrl = "%s/mediabrowser/Items/%s/Images/Backdrop/%s/?MaxWidth=10000&MaxHeight=10000&Format=original&Tag=%s&EnableImageEnhancers=false" % (server, embyId, str(count), backdrop)
count += 1
fanartFile = os.path.join(fanartDir,"fanart" + backdrop + ".jpg")
li = xbmcgui.ListItem(backdrop, path=fanartFile)
xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=fanartFile, listitem=li) xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=fanartFile, listitem=li)
xbmcvfs.copy(backgroundUrl,fanartFile) xbmcvfs.copy(backgroundUrl,fanartFile)
@ -633,7 +641,8 @@ def getExtraFanArt():
count +=1 count +=1
li = xbmcgui.ListItem(file, path=os.path.join(fanartDir,file)) li = xbmcgui.ListItem(file, path=os.path.join(fanartDir,file))
xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=os.path.join(fanartDir,file), listitem=li) xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=os.path.join(fanartDir,file), listitem=li)
except: except Exception as e:
utils.logMsg("%s %s" % ("Emby addon", "Error in getExtraFanArt"), str(e), 1)
pass pass
#always do endofdirectory to prevent errors in the logs #always do endofdirectory to prevent errors in the logs