fix extrafanart issues

This commit is contained in:
marcelveldt 2016-01-06 23:22:10 +01:00
parent f5c2aaa490
commit fc810f7b32
2 changed files with 20 additions and 16 deletions

View File

@ -37,7 +37,6 @@ class Main:
addon_handle = int(sys.argv[1]) addon_handle = int(sys.argv[1])
params = urlparse.parse_qs(sys.argv[2][1:]) params = urlparse.parse_qs(sys.argv[2][1:])
xbmc.log("Parameter string: %s" % sys.argv[2]) xbmc.log("Parameter string: %s" % sys.argv[2])
try: try:
mode = params['mode'][0] mode = params['mode'][0]
itemid = params.get('id') itemid = params.get('id')
@ -51,6 +50,7 @@ class Main:
modes = { modes = {
'reset': utils.reset, 'reset': utils.reset,
'extrafanart': entrypoint.getExtraFanArt(),
'resetauth': entrypoint.resetAuth, 'resetauth': entrypoint.resetAuth,
'play': entrypoint.doPlayback, 'play': entrypoint.doPlayback,
'passwords': utils.passwordsXML, 'passwords': utils.passwordsXML,
@ -63,6 +63,9 @@ class Main:
'recentepisodes': entrypoint.getRecentEpisodes, 'recentepisodes': entrypoint.getRecentEpisodes,
'refreshplaylist': entrypoint.refreshPlaylist 'refreshplaylist': entrypoint.refreshPlaylist
} }
if "extrafanart" in sys.argv[0]:
entrypoint.getExtraFanArt()
if modes.get(mode): if modes.get(mode):
# Simple functions # Simple functions
@ -101,8 +104,6 @@ class Main:
elif mode == "texturecache": elif mode == "texturecache":
import artwork import artwork
artwork.Artwork().FullTextureCacheSync() artwork.Artwork().FullTextureCacheSync()
elif "extrafanart" in sys.argv[0]:
entrypoint.getExtraFanArt()
else: else:
entrypoint.doMainListing() entrypoint.doMainListing()

View File

@ -817,24 +817,27 @@ def getExtraFanArt():
emby = embyserver.Read_EmbyServer() emby = embyserver.Read_EmbyServer()
art = artwork.Artwork() art = artwork.Artwork()
embyId = ""
# Get extrafanart for listitem # Get extrafanart for listitem
# this will only be used for skins that actually call the listitem's path + fanart dir... # will be called by skinhelper script to get the extrafanart
try: try:
# Only do this if the listitem has actually changed # for tvshows we get the embyid just from the path
itemPath = xbmc.getInfoLabel("ListItem.FileNameAndPath") if xbmc.getCondVisibility("Container.Content(tvshows) | Container.Content(seasons) | Container.Content(episodes)"):
if not itemPath:
itemPath = xbmc.getInfoLabel("ListItem.Path") itemPath = xbmc.getInfoLabel("ListItem.Path")
if "plugin.video.emby" in itemPath:
if any([x in itemPath for x in ['tvshows', 'musicvideos', 'movies']]):
params = urlparse.parse_qs(itemPath)
try:
embyId = params['id'][0]
except KeyError:
embyId = itemPath.split("/")[-2] embyId = itemPath.split("/")[-2]
else:
utils.logMsg("EMBY", "Requesting extrafanart for Id: %s" % embyId, 1) #for movies we grab the emby id from the params
itemPath = xbmc.getInfoLabel("ListItem.FileNameAndPath")
if "plugin.video.emby" in itemPath:
params = urlparse.parse_qs(itemPath)
embyId = params.get('id')
if embyId: embyId = embyId[0]
if embyId:
#only proceed if we actually have a emby id
utils.logMsg("EMBY", "Requesting extrafanart for Id: %s" % embyId, 0)
# We need to store the images locally for this to work # We need to store the images locally for this to work
# because of the caching system in xbmc # because of the caching system in xbmc