def credit(self, meta=''): self.getControl(5200).reset() listitems = [] try: for i in meta: try: sTitle = unicodedata.normalize('NFKD', i['title']).encode( 'ascii', 'ignore') except: sTitle = 'Aucune information' try: sThumbnail = 'https://image.tmdb.org/t/p/w342' + i[ 'poster_path'] except: sThumbnail = '' sId = i['id'] listitem_ = listitem(label=sTitle, iconImage=sThumbnail) try: listitem_.setInfo( 'video', {'rating': i['vote_average'].encode('utf-8')}) except: listitem_.setInfo('video', {'rating': str(i['vote_average'])}) listitems.append(listitem_) self.getControl(5200).addItems(listitems) except: pass self.getControl(5200).setVisible(True) self.setFocusId(5200)
def onInit(self): #par default le resumer# color = ADDON.getSetting('deco_color') window(10000).setProperty('color', color) #self.getControl(50).setVisible(False) #self.getControl(50).reset() self.getControl(5500).setVisible(False) listitems = [] try: for slabel, slabel2, sicon, sid in meta['cast']: listitem_ = listitem(label=slabel, label2=slabel2, iconImage=sicon) #listitem.setInfo('video', {'Title': 'test', 'RatingAndVotes':'6.8'}) listitem_.setProperty('id', str(sid)) listitems.append(listitem_) self.getControl(50).addItems(listitems) except: pass #title #self.getControl(1).setLabel(meta['title']) meta['title'] = sTitle #self.getControl(49).setVisible(True) #self.getControl(2).setImage(meta['cover_url']) #self.getControl(3).setLabel(meta['rating']) for e in meta: property = 'ListItem.%s' % (e) if isinstance(meta[e], unicode): window(10000).setProperty(property, meta[e].encode('utf-8')) else: window(10000).setProperty(property, str(meta[e]))
def credit(self, meta=""): self.getControl(5200).reset() listitems = [] try: for i in meta: try: sTitle = unicodedata.normalize('NFKD', i['title']).encode( 'ascii', 'ignore') except: sTitle = "Aucune information" try: sThumbnail = 'https://image.tmdb.org/t/p/w342' + i[ 'poster_path'] except: sThumbnail = '' sId = i['id'] listitem_ = listitem(label=sTitle, iconImage=sThumbnail) #listitem.setInfo('video', {'Title': 'test', 'RatingAndVotes':'6.8'}) #listitem.setProperty('id', str(sId)) listitems.append(listitem_) self.getControl(5200).addItems(listitems) except: pass self.getControl(5500).setVisible(True) self.setFocusId(5200)
def credit(self, meta='', control=''): #self.getControl(control).reset() listitems = [] if not meta: meta = [{u'id': 0, u'title': u'Aucune information', u'poster_path': u'', u'vote_average':0}] try: for i in meta: try: sTitle = unicodedata.normalize('NFKD', i['title']).encode('ascii', 'ignore') except: sTitle = 'Aucune information' if i['poster_path']: sThumbnail = self.poster+str(i['poster_path']) else : sThumbnail = self.none_poster % sTitle # sId = i['id'] listitem_ = listitem(label=sTitle) try: listitem_.setInfo('video', {'rating': i['vote_average'].encode('utf-8') }) except: listitem_.setInfo('video', {'rating': str(i['vote_average'])}) listitem_.setArt({'icon':sThumbnail}) listitems.append(listitem_) self.getControl(control).addItems(listitems) except: pass
def credit(self, meta=""): self.getControl(5200).reset() listitems = [] try: for i in meta: try: sTitle = unicodedata.normalize('NFKD', i['title']).encode('ascii', 'ignore') except: sTitle = "Aucune information" try: sThumbnail = 'https://image.tmdb.org/t/p/w342' + i['poster_path'] except: sThumbnail = '' sId = i['id'] listitem_ = listitem(label = sTitle, iconImage=sThumbnail) try: listitem_.setInfo('video', {'rating': i['vote_average'].encode('utf-8') }) except: listitem_.setInfo('video', {'rating': str(i['vote_average'])}) #listitem.setProperty('id', str(sId)) listitems.append(listitem_) self.getControl(5200).addItems(listitems) except: pass self.getControl(5200).setVisible(True) self.setFocusId(5200)
def createListItem(self, oGuiElement): oListItem = listitem(oGuiElement.getTitle()) # voir : https://kodi.wiki/view/InfoLabels oListItem.setInfo(oGuiElement.getType(), oGuiElement.getItemValues()) # oListItem.setThumbnailImage(oGuiElement.getThumbnail()) # oListItem.setIconImage(oGuiElement.getIcon()) oListItem.setArt({'poster': oGuiElement.getPoster(), 'thumb': oGuiElement.getThumbnail(), 'icon': oGuiElement.getIcon(), 'fanart': oGuiElement.getFanart()}) aProperties = oGuiElement.getItemProperties() for sPropertyKey, sPropertyValue in aProperties.items(): oListItem.setProperty(sPropertyKey, str(sPropertyValue)) return oListItem
def createListItem(self, oGuiElement): oListItem = listitem(oGuiElement.getTitle()) oListItem.setInfo(oGuiElement.getType(), oGuiElement.getItemValues()) #oListItem.setThumbnailImage(oGuiElement.getThumbnail()) #oListItem.setIconImage(oGuiElement.getIcon()) #krypton et sont comportement oListItem.setArt({'poster': oGuiElement.getPoster(), 'thumb': oGuiElement.getThumbnail(), 'icon': oGuiElement.getIcon(), 'fanart': oGuiElement.getFanart() }) aProperties = oGuiElement.getItemProperties() for sPropertyKey in aProperties.keys(): oListItem.setProperty(sPropertyKey, aProperties[sPropertyKey]) return oListItem
def createListItem(self, oGuiElement): oListItem = listitem(oGuiElement.getTitle()) oListItem.setInfo(oGuiElement.getType(), oGuiElement.getItemValues()) #oListItem.setThumbnailImage(oGuiElement.getThumbnail()) #oListItem.setIconImage(oGuiElement.getIcon()) #krypton et sont comportement oListItem.setArt({'poster': oGuiElement.getPoster(), 'thumb': oGuiElement.getThumbnail(), 'icon': oGuiElement.getIcon(), 'fanart': oGuiElement.getFanart() }) aProperties = oGuiElement.getItemProperties() for sPropertyKey in aProperties.keys(): oListItem.setProperty(sPropertyKey, aProperties[sPropertyKey]) return oListItem
def onInit(self): # par default le resumer# color = ADDON.getSetting('deco_color') window(10000).setProperty('color', color) self.getControl(50).setVisible(False) self.getControl(5200).setVisible(False) # synopsis_first self.setFocusId(36) # self.getControl(50).reset() listitems = [] cast = [] try: for slabel, slabel2, sicon, sid in meta['cast']: listitem_ = listitem(label=slabel, label2=slabel2, iconImage=sicon) listitem_.setProperty('id', str(sid)) listitems.append(listitem_) cast.append(slabel.encode('ascii', 'ignore')) self.getControl(50).addItems(listitems) window(10000).setProperty('ListItem.casting', str(cast)) except: pass # title # self.getControl(1).setLabel(meta['title']) meta['title'] = sTitle # self.getControl(49).setVisible(True) # self.getControl(2).setImage(meta['cover_url']) # self.getControl(3).setLabel(meta['rating']) for e in meta: property = 'ListItem.%s' % (e) if isinstance(meta[e], unicode): window(10000).setProperty(property, meta[e].encode('utf-8')) else: window(10000).setProperty(property, str(meta[e]))
def onInit(self): #par default le resumer# color = ADDON.getSetting('deco_color') window(10000).setProperty('color', color) self.getControl(50).setVisible(False) self.getControl(5200).setVisible(False) #synopsis_first self.setFocusId(36) #self.getControl(50).reset() listitems = [] cast = [] try: for slabel, slabel2, sicon, sid in meta['cast']: listitem_ = listitem(label = slabel, label2=slabel2, iconImage=sicon) #listitem.setInfo('video', {'Title': 'test', 'RatingAndVotes':'6.8'}) listitem_.setProperty('id', str(sid)) listitems.append(listitem_) cast.append(slabel.encode('ascii', 'ignore')) self.getControl(50).addItems(listitems) window(10000).setProperty('ListItem.casting', str(cast)) except: pass #title #self.getControl(1).setLabel(meta['title']) meta['title'] = sTitle #self.getControl(49).setVisible(True) #self.getControl(2).setImage(meta['cover_url']) #self.getControl(3).setLabel(meta['rating']) for e in meta: property = 'ListItem.%s' %(e) if isinstance(meta[e], unicode): window(10000).setProperty(property, meta[e].encode('utf-8')) else: window(10000).setProperty(property, str(meta[e]))
def onInit(self): # par default le resumer# color = ADDON.getSetting('deco_color') self.setProperty('color', color) self.poster = 'https://image.tmdb.org/t/p/%s' % self.ADDON.getSetting('poster_tmdb') self.none_poster = 'https://eu.ui-avatars.com/api/?background=000&size=512&name=%s&color=FFF&font-size=0.33' #self.getControl(50).setVisible(False) #self.getControl(90).setVisible(False) #self.getControl(5200).setVisible(False) #self.getControl(52100).setVisible(False) #self.getControl(52200).setVisible(False) # synopsis_first self.setFocusId(9000) # self.getControl(50).reset() if 'credits' in meta and meta['credits']: cast = [] crew = [] #Decodage python 3 try: data = eval(str(meta['credits'].encode('latin-1'), 'utf-8')) except: data = eval(str(meta['credits'])) try: listitems = [] for i in data['cast']: slabel = i['name'] slabel2 = i['character'] if i['profile_path']: sicon = self.poster+str(i['profile_path']) else : sicon = self.none_poster % slabel sid = i['id'] listitem_ = listitem(label=slabel, label2=slabel2) listitem_.setProperty('id', str(sid)) listitem_.setArt({'icon':sicon}) listitems.append(listitem_) cast.append(slabel.encode('ascii', 'ignore')) self.getControl(50).addItems(listitems) except: pass try: listitems2 = [] for i in data['crew']: slabel = i['name'] slabel2 = i['job'] if i['profile_path']: sicon = self.poster+str(i['profile_path']) else : sicon = self.none_poster % slabel sid = i['id'] listitem_ = listitem(label=slabel, label2=slabel2) listitem_.setProperty('id', str(sid)) listitem_.setArt({'icon':sicon}) listitems2.append(listitem_) crew.append(slabel.encode('ascii', 'ignore')) self.getControl(5200).addItems(listitems2) except: pass # try: # for slabel, slabel2, sicon, sid in meta['cast']: # listitem_ = listitem(label=slabel, label2=slabel2, iconImage=sicon) # listitem_.setProperty('id', str(sid)) # listitems.append(listitem_) # cast.append(slabel.encode('ascii', 'ignore')) # self.getControl(50).addItems(listitems) # #self.setProperty('ListItem.casting', str(cast)) # except: # pass # title # self.getControl(1).setLabel(meta['title']) meta['title'] = sTitle # self.getControl(49).setVisible(True) # self.getControl(2).setImage(meta['cover_url']) # self.getControl(3).setLabel(meta['rating']) if 'rating' not in meta or meta['rating'] == 0: meta['rating'] = '-' if 'votes' not in meta or meta['votes'] == '0': meta['votes'] = '-' for prop in meta: #Py3 unicode == str. try: if isinstance(meta[prop], unicode): self.setProperty(prop, meta[prop].encode('utf-8')) else: self.setProperty(prop, str(meta[prop])) except: if isinstance(meta[prop], str): self.setProperty(prop, meta[prop].encode('utf-8')) else: self.setProperty(prop, str(meta[prop]))
def createListItem(self, oGuiElement): # Enleve les elements vides data = { key: val for key, val in oGuiElement.getItemValues().items() if val != "" } itemTitle = oGuiElement.getTitle() if oGuiElement.getMeta() == 6 and data.get( 'tagline'): # Nom de l'épisode itemTitle += ' - ' + str(data.get('tagline')) data['title'] = itemTitle # kodi 19 oListItem = listitem(itemTitle) if not isNexus(): # voir : https://kodi.wiki/view/InfoLabels oListItem.setInfo(oGuiElement.getType(), data) else: videoInfoTag = oListItem.getVideoInfoTag() # gestion des valeurs par defaut si non renseignées videoInfoTag.setMediaType(data.get('mediatype')) videoInfoTag.setTitle(itemTitle) videoInfoTag.setOriginalTitle(data.get('originaltitle')) videoInfoTag.setPlot(data.get('plot')) videoInfoTag.setPlotOutline(data.get('plotoutline')) videoInfoTag.setYear(int(data.get('year', 0))) videoInfoTag.setRating(float(data.get('rating', 0.0))) videoInfoTag.setMpaa(data.get('mpaa')) try: videoInfoTag.setDuration(int(data.get('duration', 0))) except: #Pour convertir le temps en seconde. videoInfoTag.setDuration( sum(x * int(t) for x, t in zip([3600, 60, 1], data.get('duration').split(":")))) videoInfoTag.setPlaycount(int(data.get('playcount', 0))) videoInfoTag.setCountries(data.get('country', [""])) videoInfoTag.setTrailer(data.get('trailer')) videoInfoTag.setTagLine(data.get('tagline')) videoInfoTag.setStudios(list(data.get('studio', '').split("/"))) videoInfoTag.setWriters(list(data.get('writer', '').split("/"))) videoInfoTag.setDirectors(list( data.get('director', '').split("/"))) videoInfoTag.setGenres(''.join(data.get('genre', [""])).split('/')) videoInfoTag.setSeason(int(data.get('season', 0))) videoInfoTag.setEpisode(int(data.get('episode', 0))) # TODO Gestion du pourcentage de lecture # v20 Python API changes: # ResumeTime and TotalTime deprecated. Use InfoTagVideo.setResumePoint() instead. try: credits = eval(data.get('credits'))['cast'] except: credits = None cast = [] if credits is not None: for actor in credits: thumbnail = actor['profile_path'] cast.append( xbmc.Actor(actor['name'], actor['character'], actor['order'], thumbnail)) videoInfoTag.setCast(cast) oListItem.setArt({ 'poster': oGuiElement.getPoster(), 'thumb': oGuiElement.getThumbnail(), 'icon': oGuiElement.getIcon(), 'fanart': oGuiElement.getFanart() }) aProperties = oGuiElement.getItemProperties() for sPropertyKey, sPropertyValue in aProperties.items(): oListItem.setProperty(sPropertyKey, str(sPropertyValue)) return oListItem
def createListItem(self, oGuiElement): # Enleve les elements vides data = { key: val for key, val in oGuiElement.getItemValues().items() if val != "" } itemTitle = oGuiElement.getTitle() # Formatage nom episode sCat = oGuiElement.getCat() if sCat and int(sCat) == 8: # Nom de l'épisode try: if 'tagline' in data and data['tagline']: episodeTitle = data['tagline'] else: episodeTitle = 'Episode ' + str(data['episode']) host = '' if 'tvshowtitle' in data: host = itemTitle.split(data['tvshowtitle'])[1] itemTitle = str(data['season']) + "x" + str( data['episode']) + ". " + episodeTitle + " " + host data['title'] = itemTitle except: data['title'] = itemTitle pass else: #Permets d'afficher toutes les informations pour les films. data['title'] = itemTitle if ":" in str(data.get('duration')): # Convertion en seconde, utile pour le lien final. data['duration'] = (sum(x * int(t) for x, t in zip( [1, 60, 3600], reversed(data.get('duration', '').split(":"))))) oListItem = listitem(itemTitle) if data.get('cast'): credits = json.loads(data['cast']) data['cast'] = [] for i in credits: if isNexus(): data['cast'].append( xbmc.Actor(i['name'], i['character'], i['order'], i.get('thumbnail', ""))) else: data['cast'].append((i['name'], i['character'], i['order'], i.get('thumbnail', ""))) else: credits = None if not isNexus(): # voir : https://kodi.wiki/view/InfoLabels oListItem.setInfo(oGuiElement.getType(), data) else: videoInfoTag = oListItem.getVideoInfoTag() # gestion des valeurs par defaut si non renseignées videoInfoTag.setMediaType(data.get('mediatype', "")) videoInfoTag.setTitle(data.get('title', "")) videoInfoTag.setTvShowTitle(data.get('tvshowtitle', '')) videoInfoTag.setOriginalTitle(data.get('originaltitle', "")) videoInfoTag.setPlot(data.get('plot', "")) videoInfoTag.setPlotOutline(data.get('tagline', "")) videoInfoTag.setYear(int(data.get('year', 0))) videoInfoTag.setRating(float(data.get('rating', 0.0))) videoInfoTag.setMpaa(data.get('mpaa', "")) videoInfoTag.setDuration(int(data.get('duration', 0))) videoInfoTag.setPlaycount(int(data.get('playcount', 0))) videoInfoTag.setCountries(data.get('country', [""])) videoInfoTag.setTrailer(data.get('trailer', "")) videoInfoTag.setTagLine(data.get('tagline', "")) videoInfoTag.setStudios(list(data.get('studio', '').split("/"))) videoInfoTag.setWriters(list(data.get('writer', '').split("/"))) videoInfoTag.setDirectors(list( data.get('director', '').split("/"))) videoInfoTag.setGenres(''.join(data.get('genre', [""])).split('/')) videoInfoTag.setSeason(int(data.get('season', 0))) videoInfoTag.setEpisode(int(data.get('episode', 0))) videoInfoTag.setResumePoint(float(data.get('resumetime', 0.0)), float(data.get('totaltime', 0.0))) videoInfoTag.setCast(data.get('cast', [])) oListItem.setArt({ 'poster': oGuiElement.getPoster(), 'thumb': oGuiElement.getThumbnail(), 'icon': oGuiElement.getIcon(), 'fanart': oGuiElement.getFanart() }) aProperties = oGuiElement.getItemProperties() for sPropertyKey, sPropertyValue in aProperties.items(): oListItem.setProperty(sPropertyKey, str(sPropertyValue)) return oListItem