Пример #1
0
        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)
Пример #2
0
        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]))
Пример #3
0
        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)
Пример #4
0
        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
Пример #5
0
        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)
Пример #6
0
    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
Пример #7
0
    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
Пример #8
0
    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
Пример #9
0
        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]))
Пример #10
0
        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]))
Пример #11
0
        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]))                    
Пример #12
0
    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
Пример #13
0
    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