Fix art and show info not showing for addon paths

This commit is contained in:
croneter 2018-03-04 18:32:29 +01:00
parent e9abce7d12
commit 377f721f1d

View file

@ -277,7 +277,7 @@ class API(object):
{ {
'Director': list, 'Director': list,
'Writer': list, 'Writer': list,
'Cast': list, 'Cast': list of tuples (<actor>, <role>), <role> might be ''
'Producer': list 'Producer': list
} }
""" """
@ -291,7 +291,7 @@ class API(object):
elif child.tag == 'Writer': elif child.tag == 'Writer':
writer.append(child.attrib['tag']) writer.append(child.attrib['tag'])
elif child.tag == 'Role': elif child.tag == 'Role':
cast.append(child.attrib['tag']) cast.append((child.attrib['tag'], child.get('role', '')))
elif child.tag == 'Producer': elif child.tag == 'Producer':
producer.append(child.attrib['tag']) producer.append(child.attrib['tag'])
return { return {
@ -1355,23 +1355,24 @@ class API(object):
people = self.people() people = self.people()
userdata = self.userdata() userdata = self.userdata()
metadata = { metadata = {
'genre': self.list_to_string(self.genre_list()), 'genre': self.genre_list(),
'country': self.country_list(),
'year': self.year(), 'year': self.year(),
'rating': self.audience_rating(), 'rating': self.audience_rating(),
'playcount': userdata['PlayCount'], 'playcount': userdata['PlayCount'],
'cast': people['Cast'], 'cast': people['Cast'],
'director': self.list_to_string(people.get('Director')), 'director': people['Director'],
'plot': self.plot(), 'plot': self.plot(),
'sorttitle': sorttitle, 'sorttitle': sorttitle,
'duration': userdata['Runtime'], 'duration': userdata['Runtime'],
'studio': self.list_to_string(self.music_studio_list()), 'studio': self.music_studio_list(),
'tagline': self.tagline(), 'tagline': self.tagline(),
'writer': self.list_to_string(people.get('Writer')), 'writer': people.get('Writer'),
'premiered': self.premiere_date(), 'premiered': self.premiere_date(),
'dateadded': self.date_created(), 'dateadded': self.date_created(),
'lastplayed': userdata['LastPlayedDate'], 'lastplayed': userdata['LastPlayedDate'],
'mpaa': self.content_rating(), 'mpaa': self.content_rating(),
'aired': self.premiere_date() 'aired': self.premiere_date(),
} }
# Do NOT set resumetime - otherwise Kodi always resumes at that time # Do NOT set resumetime - otherwise Kodi always resumes at that time
# even if the user chose to start element from the beginning # even if the user chose to start element from the beginning
@ -1379,38 +1380,37 @@ class API(object):
listitem.setProperty('totaltime', str(userdata['Runtime'])) listitem.setProperty('totaltime', str(userdata['Runtime']))
if typus == v.PLEX_TYPE_EPISODE: if typus == v.PLEX_TYPE_EPISODE:
metadata['mediatype'] = 'episode'
_, show, season, episode = self.episode_data() _, show, season, episode = self.episode_data()
season = -1 if season is None else int(season) season = -1 if season is None else int(season)
episode = -1 if episode is None else int(episode) episode = -1 if episode is None else int(episode)
metadata['episode'] = episode metadata['episode'] = episode
metadata['sortepisode'] = episode
metadata['season'] = season metadata['season'] = season
metadata['sortseason'] = season
metadata['tvshowtitle'] = show metadata['tvshowtitle'] = show
if season and episode: if season and episode:
listitem.setProperty('episodeno',
"s%.2de%.2d" % (season, episode))
if append_sxxexx is True: if append_sxxexx is True:
title = "S%.2dE%.2d - %s" % (season, episode, title) title = "S%.2dE%.2d - %s" % (season, episode, title)
listitem.setArt({'icon': 'DefaultTVShows.png'})
if append_show_title is True: if append_show_title is True:
title = "%s - %s " % (show, title) title = "%s - %s " % (show, title)
if append_show_title or append_sxxexx: if append_show_title or append_sxxexx:
listitem.setLabel(title) listitem.setLabel(title)
elif typus == v.PLEX_TYPE_MOVIE: elif typus == v.PLEX_TYPE_MOVIE:
listitem.setArt({'icon': 'DefaultMovies.png'}) metadata['mediatype'] = 'movie'
else: else:
# E.g. clips, trailers, ... # E.g. clips, trailers, ...
listitem.setArt({'icon': 'DefaultVideo.png'}) pass
plex_id = self.plex_id() plex_id = self.plex_id()
listitem.setProperty('plexid', plex_id) listitem.setProperty('plexid', plex_id)
with plexdb.Get_Plex_DB() as plex_db: with plexdb.Get_Plex_DB() as plex_db:
try: kodi_id = plex_db.getItem_byId(plex_id)
listitem.setProperty('dbid', if kodi_id:
str(plex_db.getItem_byId(plex_id)[0])) kodi_id = kodi_id[0]
except TypeError: metadata['dbid'] = kodi_id
pass
# Expensive operation
metadata['title'] = title metadata['title'] = title
# Expensive operation
listitem.setInfo('video', infoLabels=metadata) listitem.setInfo('video', infoLabels=metadata)
try: try:
# Add context menu entry for information screen # Add context menu entry for information screen