def getArticle(self,cItem): otherInfo = {} icon = cItem.get('icon','') titre = cItem.get('title','') desc = cItem.get('desc','') sFileName = cItem.get('sFileName','') Year = cItem.get('Year','') sMeta = cItem.get('sMeta','') grab = cTMDb() elm = grab.get_meta(sMeta, sFileName, year=str(Year)) printDBG('elm='+str(elm)) duration = elm.get('duration',0) if (duration!='') and (duration!=0): try: duration = time.strftime('%-Hh %Mmn', time.gmtime(int(duration))) except: pass if (duration != 0) and (duration != ''): otherInfo['duration'] = str(duration) if elm.get('rating',0) != 0 : otherInfo['tmdb_rating'] = str(elm['rating']) if elm.get('year',0) != 0 : otherInfo['year'] = str(elm['year']) if elm.get('writer','') != '': otherInfo['writers'] = str(elm['writer']) if elm.get('genre','') != '': otherInfo['genres'] = str(elm['genre']) if elm.get('studio','') != '': otherInfo['station'] = str(elm['studio']) if elm.get('director','') != '': otherInfo['directors'] = str(elm['director']) if elm.get('plot','') != '': desc = tscolor('\c00????00')+'Plot: '+tscolor('\c0000????')+str(elm['plot']) if elm.get('cover_url','') != '': cover_url = str(elm['cover_url']).replace('/0/','/w400/') if cover_url !='https://image.tmdb.org/t/p/0None': icon = cover_url return [{'title':titre, 'text': desc, 'images':[{'title':'', 'url':icon}], 'other_info':otherInfo}]
def showUserLists(): oGui = cGui() grab = cTMDb() oInputParameterHandler = cInputParameterHandler() iPage = 1 term = '' if (oInputParameterHandler.exist('session_id')): term += 'session_id=' + oInputParameterHandler.getValue('session_id') sUrl = oInputParameterHandler.getValue('siteUrl') result = grab.getUrl(sUrl, iPage, term) total = len(result) if (total > 0): oOutputParameterHandler = cOutputParameterHandler() for i in result['results']: sId, sTitle = i['id'], i['name'] # sUrl = API_URL + '/genre/' + str(sId) + '/tv' oOutputParameterHandler.addParameter('siteUrl', sId) oGui.addDir(SITE_IDENTIFIER, 'showLists', sTitle, 'genres.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def getAction(): grab = cTMDb() dialogs = dialog() oInputParameterHandler = cInputParameterHandler() sAction = '' if not sAction: sAction, sFow, sYn = getContext() if not sAction: return sCat = oInputParameterHandler.getValue('sCat') if not sCat: sCat = getCat() if not sCat: return # dans le doute si meta active sTMDB = oInputParameterHandler.getValue('sTmdbId') sSeason = oInputParameterHandler.getValue('sSeason') sEpisode = oInputParameterHandler.getValue('sEpisode') sCat = sCat.replace('1', 'movie').replace('2', 'tv') if not sTMDB: sTMDB = grab.get_idbyname(oInputParameterHandler.getValue('sFileName'), '', sCat) if not sTMDB: return if sAction == 'vote': # vote /movie/{movie_id}/rating # /tv/{tv_id}/rating numboard = dialogs.numeric(0, 'Min 0.5 - Max 10') if numboard != None: sAction = '%s/%s/rating' % (sCat, sTMDB) sPost = {"value": numboard} else: return else: sPost = {"media_type": sCat, "media_id": sTMDB, sFow: sYn} data = grab.getPostUrl(sAction, sPost) if len(data) > 0: dialogs.VSinfo(data['status_message']) return
def getWatchlist(): grab = cTMDb() addons = addon() tmdb_session = addons.getSetting('tmdb_session') tmdb_account = addons.getSetting('tmdb_account') if not tmdb_session: return if not tmdb_account: return oInputParameterHandler = cInputParameterHandler() sCat = oInputParameterHandler.getValue('sCat') if not sCat: return sCat = sCat.replace('1', 'movie').replace('2', 'tv') # dans le doute si meta active sTMDB = oInputParameterHandler.getValue('sTmdbId') sTitle = oInputParameterHandler.getValue('sFileName') # import re # if sCat == "tv": # sSeason = re.search('aison (\d+)',sTitle).group(1) # sEpisode = re.search('pisode (\d+)',sTitle).group(1) if not sTMDB: sTMDB = grab.get_idbyname(sTitle, '', sCat) if not sTMDB: return sPost = {"media_type": sCat, "media_id": sTMDB, 'watchlist': True} sAction = 'account/%s/watchlist' % tmdb_account data = grab.getPostUrl(sAction, sPost) if len(data) > 0: dialog().VSinfo(data['status_message']) return
def showGenreMovie(): oGui = cGui() grab = cTMDb() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') result = grab.getUrl(sUrl) total = len(result) if (total > 0): oOutputParameterHandler = cOutputParameterHandler() for i in result['genres']: sId, sTitle = i['id'], i['name'] if not isMatrix(): sTitle = sTitle.encode("utf-8") sUrl = 'genre/' + str(sId) + '/movies' oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showMovies', str(sTitle), 'genres.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def showActors(sSearch=''): oGui = cGui() grab = cTMDb() addons = addon() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') iPage = 1 if (oInputParameterHandler.exist('page')): iPage = oInputParameterHandler.getValue('page') if (oInputParameterHandler.exist('sSearch')): sSearch = oInputParameterHandler.getValue('sSearch') if sSearch: # format obligatoire evite de modif le format de l'url dans la lib >> _call # a cause d'un ? pas ou il faut pour ça >> invalid api key result = grab.getUrl(sUrl, iPage, 'query=' + sSearch) else: result = grab.getUrl(sUrl, iPage) total = len(result) if (total > 0): total = len(result['results']) progress_ = progress().VScreate(SITE_NAME) oOutputParameterHandler = cOutputParameterHandler() # récup le nombre de page pour NextPage nbrpage = result['total_pages'] for i in result['results']: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sName, sThumb = i['name'], i['profile_path'] if sThumb: POSTER_URL = grab.poster sThumb = POSTER_URL + sThumb else: sThumb = '' oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sThumb', sThumb) if not isMatrix(): sName = sName.encode('utf-8') oOutputParameterHandler.addParameter( 'siteUrl', 'person/' + str(i['id']) + '/movie_credits') sTitle = str(sName) oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setFunction('showFilmActor') oGuiElement.setTitle(sTitle) oGuiElement.setFileName(sName) oGuiElement.setIcon('actors.png') oGuiElement.setMeta(0) oGuiElement.setThumbnail(sThumb) oGuiElement.setPoster(sThumb) oGuiElement.setCat(7) oGui.addFolder(oGuiElement, oOutputParameterHandler) progress_.VSclose(progress_) if (int(iPage) < int(nbrpage)): iNextPage = int(iPage) + 1 oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('page', iNextPage) # ajoute param sSearch pour garder le bon format d'url avec grab url if sSearch: oOutputParameterHandler.addParameter('sSearch', sSearch) oGui.addNext(SITE_IDENTIFIER, 'showActors', 'Page ' + str(iNextPage), oOutputParameterHandler) view = addons.getSetting('visuel-view') oGui.setEndOfDirectory(view)
def showSeriesEpisode(): grab = cTMDb() addons = addon() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sFanart = oInputParameterHandler.getValue('sFanart') sTmdbId = oInputParameterHandler.getValue('sTmdbId') sSeason = oInputParameterHandler.getValue('sSeason') # sId = oInputParameterHandler.getValue('sId') if sSeason == False: sSeason = sUrl.split('/')[-1] if sFanart == False: sFanart = '' oGui = cGui() # recherche saison complete oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sMovieTitle) # oOutputParameterHandler.addParameter('type', 'serie') search = '%s S%02d' % (sMovieTitle, int(sSeason)) # oOutputParameterHandler.addParameter('searchtext', search) if not isMatrix(): oOutputParameterHandler.addParameter('searchtext', cUtil().CleanName(search)) else: oOutputParameterHandler.addParameter('searchtext', search) oGuiElement = cGuiElement() oGuiElement.setSiteName('globalSearch') oGuiElement.setFunction('searchMovie') oGuiElement.setTitle(addons.VSlang(30415)) oGuiElement.setCat(2) oGuiElement.setIcon("searchtmdb.png") oGui.addFolder(oGuiElement, oOutputParameterHandler) result = grab.getUrl(sUrl) total = len(result) if (total > 0 and 'episodes' in result): total = len(result['episodes']) progress_ = progress().VScreate(SITE_NAME) oOutputParameterHandler = cOutputParameterHandler() for i in result['episodes']: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break # sId, sTitle, sOtitle, sThumb, sFanart = i['id'], i['name'], i['original_name'], i['poster_path'], i['backdrop_path'] sEpNumber = i['episode_number'] # Mise en forme des infos (au format meta imdb) i = grab._format(i, '') sTitle, sGenre, sThumb, sFanart, sDesc, sYear = i['title'], i[ 'genre'], i['cover_url'], i['backdrop_url'], i['plot'], i[ 'year'] if not isMatrix(): sTitle = sTitle.encode("utf-8") sTitle = 'S%s E%s %s' % (sSeason, str(sEpNumber), sTitle) sExtraTitle = ' S' + "%02d" % int(sSeason) + 'E' + "%02d" % int( sEpNumber) oOutputParameterHandler.addParameter( 'siteUrl', sMovieTitle + '|' + sExtraTitle) # Pour compatibilite Favoris oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sTmdbId', sTmdbId) oOutputParameterHandler.addParameter('sSeason', sSeason) oOutputParameterHandler.addParameter('sEpisode', sEpNumber) oOutputParameterHandler.addParameter('type', 'serie') if not isMatrix(): oOutputParameterHandler.addParameter( 'searchtext', cUtil().CleanName(sMovieTitle)) else: oOutputParameterHandler.addParameter('searchtext', sMovieTitle) cGui.CONTENT = "tvshows" oGuiElement = cGuiElement() oGuiElement.setTmdbId(sTmdbId) oGuiElement.setSiteName('globalSearch') oGuiElement.setFunction('showSearch') oGuiElement.setTitle(sTitle) oGuiElement.setFileName(sMovieTitle) oGuiElement.setIcon('series.png') oGuiElement.setMeta(2) oGuiElement.setThumbnail(sThumb) oGuiElement.setFanart(sFanart) oGuiElement.setCat(2) oGuiElement.setDescription(sDesc) oGuiElement.setYear(sYear) oGuiElement.setGenre(sGenre) oGui.addFolder(oGuiElement, oOutputParameterHandler) progress_.VSclose(progress_) # tchnagement mode view = addons.getSetting('visuel-view') oGui.setEndOfDirectory(view)
def showSeriesSaison(): oGui = cGui() grab = cTMDb() addons = addon() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sFanart = oInputParameterHandler.getValue('sFanart') sTmdbId = oInputParameterHandler.getValue('sTmdbId') sId = oInputParameterHandler.getValue('sId') if sId == False: sId = sUrl.split('/')[-1] if sFanart == False: sFanart = '' # recherche la serie complete oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sMovieTitle) # oOutputParameterHandler.addParameter('type', 'serie') # oOutputParameterHandler.addParameter('searchtext', sMovieTitle) if not isMatrix(): oOutputParameterHandler.addParameter('searchtext', cUtil().CleanName(sMovieTitle)) else: oOutputParameterHandler.addParameter('searchtext', sMovieTitle) oGuiElement = cGuiElement() oGuiElement.setSiteName('globalSearch') oGuiElement.setFunction('searchMovie') oGuiElement.setTitle(addons.VSlang(30414)) oGuiElement.setCat(2) oGuiElement.setIcon("searchtmdb.png") oGui.addFolder(oGuiElement, oOutputParameterHandler) result = grab.getUrl(sUrl) total = len(result) if (total > 0): total = len(result['seasons']) progress_ = progress().VScreate(SITE_NAME) oOutputParameterHandler = cOutputParameterHandler() for i in result['seasons']: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sNbreEp, SSeasonNum = i['episode_count'], i['season_number'] # Mise en forme des infos (au format meta imdb) i = grab._format(i, '') sTitle, sGenre, sThumb, sFanart, sDesc, sYear = i['title'], i[ 'genre'], i['cover_url'], i['backdrop_url'], i['plot'], i[ 'year'] sTitle = 'Saison ' + str(SSeasonNum) + ' (' + str(sNbreEp) + ')' sUrl = 'tv/' + str(sId) + '/season/' + str(SSeasonNum) oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sId', sId) oOutputParameterHandler.addParameter('sSeason', SSeasonNum) oOutputParameterHandler.addParameter('sFanart', sFanart) oOutputParameterHandler.addParameter('sTmdbId', sTmdbId) cGui.CONTENT = "tvshows" oGuiElement = cGuiElement() oGuiElement.setTmdbId(sTmdbId) oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setFunction('showSeriesEpisode') oGuiElement.setTitle(sTitle) oGuiElement.setFileName(sMovieTitle) oGuiElement.setIcon('series.png') oGuiElement.setMeta(2) oGuiElement.setThumbnail(sThumb) oGuiElement.setPoster(sThumb) oGuiElement.setFanart(sFanart) oGuiElement.setCat(7) oGuiElement.setDescription(sDesc) oGuiElement.setYear(sYear) oGuiElement.setGenre(sGenre) oGui.addFolder(oGuiElement, oOutputParameterHandler) progress_.VSclose(progress_) # changement mode view = addons.getSetting('visuel-view') oGui.setEndOfDirectory(view)
def showSeries(sSearch=''): grab = cTMDb() addons = addon() oInputParameterHandler = cInputParameterHandler() iPage = 1 term = '' if (oInputParameterHandler.exist('page')): iPage = oInputParameterHandler.getValue('page') if (oInputParameterHandler.exist('sSearch')): sSearch = oInputParameterHandler.getValue('sSearch') if sSearch: result = grab.getUrl('search/tv', iPage, 'query=' + sSearch) sUrl = '' else: sUrl = oInputParameterHandler.getValue('siteUrl') if (oInputParameterHandler.exist('genre')): term = 'with_genres=' + oInputParameterHandler.getValue('genre') if (oInputParameterHandler.exist('session_id')): term += 'session_id=' + oInputParameterHandler.getValue( 'session_id') result = grab.getUrl(sUrl, iPage, term) oGui = cGui() try: total = len(result) if (total > 0): total = len(result['results']) progress_ = progress().VScreate(SITE_NAME) for i in result['results']: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break # Mise en forme des infos (au format meta imdb) i = grab._format(i, '') sId, sTitle, sGenre, sThumb, sFanart, sDesc, sYear = i[ 'tmdb_id'], i['title'], i['genre'], i['cover_url'], i[ 'backdrop_url'], i['plot'], i['year'] if not isMatrix(): sTitle = sTitle.encode("utf-8") sSiteUrl = 'tv/' + str(sId) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sSiteUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sId', sId) oOutputParameterHandler.addParameter('sFanart', sFanart) oOutputParameterHandler.addParameter('sTmdbId', sId) if isMatrix(): oOutputParameterHandler.addParameter('searchtext', sTitle) else: oOutputParameterHandler.addParameter( 'searchtext', cUtil().CleanName(sTitle)) cGui.CONTENT = "tvshows" oGuiElement = cGuiElement() oGuiElement.setTmdbId(sId) oGuiElement.setSiteName( SITE_IDENTIFIER) # a activer pour saisons oGuiElement.setFunction('showSeriesSaison') oGuiElement.setTitle(sTitle) oGuiElement.setFileName(sTitle) oGuiElement.setIcon('series.png') oGuiElement.setMeta(2) oGuiElement.setThumbnail(sThumb) oGuiElement.setPoster(sThumb) oGuiElement.setFanart(sFanart) oGuiElement.setCat(2) oGuiElement.setDescription(sDesc) oGuiElement.setYear(sYear) oGuiElement.setGenre(sGenre) oGui.addFolder(oGuiElement, oOutputParameterHandler) progress_.VSclose(progress_) if (int(iPage) > 0): iNextPage = int(iPage) + 1 oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('page', iNextPage) if sSearch: oOutputParameterHandler.addParameter('sSearch', sSearch) if (oInputParameterHandler.exist('genre')): oOutputParameterHandler.addParameter( 'genre', oInputParameterHandler.getValue('genre')) oGui.addNext(SITE_IDENTIFIER, 'showSeries', 'Page ' + str(iNextPage), oOutputParameterHandler) except TypeError: oGui.addText(SITE_IDENTIFIER, '[COLOR red]Aucun résultat n\'a été trouvé.[/COLOR]') # changement mode view = addons.getSetting('visuel-view') oGui.setEndOfDirectory(view)
def getToken(): grab = cTMDb() return grab.getToken()
def showLists(): oGui = cGui() grab = cTMDb() addons = addon() oInputParameterHandler = cInputParameterHandler() iPage = 1 if (oInputParameterHandler.exist('page')): iPage = oInputParameterHandler.getValue('page') sUrl = oInputParameterHandler.getValue('siteUrl') result = grab.getUrl('list/' + sUrl, iPage, '') total = len(result) if (total > 0): total = len(result['items']) progress_ = progress().VScreate(SITE_NAME) oOutputParameterHandler = cOutputParameterHandler() for i in result['items']: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break # Mise en forme des infos (au format meta imdb) i = grab._format(i, '') sId, sTitle, sType, sThumb, sFanart, sVote, sDesc, sYear = i[ 'tmdb_id'], i['title'], i['media_type'], i['cover_url'], i[ 'backdrop_url'], i['rating'], i['plot'], i['year'] if not isMatrix(): sTitle = sTitle.encode("utf-8") sDisplayTitle = "%s (%s)" % (sTitle, sVote) oOutputParameterHandler.addParameter('siteUrl', 'http://tmdb/%s' % sId) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sId', sId) oOutputParameterHandler.addParameter('sFanart', sFanart) oOutputParameterHandler.addParameter('sTmdbId', sId) if isMatrix(): oOutputParameterHandler.addParameter('searchtext', sTitle) else: oOutputParameterHandler.addParameter('searchtext', cUtil().CleanName(sTitle)) cGui.CONTENT = "movies" oGuiElement = cGuiElement() oGuiElement.setTmdbId(sId) oGuiElement.setSiteName('globalSearch') oGuiElement.setFunction('showSearch') oGuiElement.setTitle(sDisplayTitle) oGuiElement.setFileName(sTitle) if sType == 'movie': oGuiElement.setIcon('films.png') oGuiElement.setMeta(1) oGuiElement.setCat(1) elif sType == 'tv': oGuiElement.setIcon('series.png') oGuiElement.setMeta(2) oGuiElement.setCat(2) oGuiElement.setThumbnail(sThumb) oGuiElement.setPoster(sThumb) oGuiElement.setFanart(sFanart) oGuiElement.setDescription(sDesc) oGuiElement.setYear(sYear) if 'genre' in i: oGuiElement.setGenre(i['genre']) oGui.addFolder(oGuiElement, oOutputParameterHandler) progress_.VSclose(progress_) view = addons.getSetting('visuel-view') oGui.setEndOfDirectory(view)
def showMyTmdb(): oGui = cGui() grab = cTMDb() addons = addon() tmdb_session = addons.getSetting('tmdb_session') if tmdb_session == '': oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'https://') oGui.addDir(SITE_IDENTIFIER, 'getToken', addons.VSlang(30305), 'tmdb.png', oOutputParameterHandler) else: # pas de deco possible avec l'api donc on test l'username sinon ont supprime tous result = grab.getUrl('account', '1', 'session_id=' + tmdb_session) if 'username' in result and result['username']: # pas de menu sans ID user c'est con addons.setSetting('tmdb_account', str(result['id'])) sUsername = result['username'] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'https://') oGui.addText(SITE_IDENTIFIER, (addons.VSlang(30306)) % (sUsername)) # /account/{account_id}/favorite/movies oOutputParameterHandler.addParameter('session_id', tmdb_session) oOutputParameterHandler.addParameter( 'siteUrl', 'account/%s/favorite/movies' % int(result['id'])) oGui.addDir(SITE_IDENTIFIER, 'showMovies', addons.VSlang(30434), 'films.png', oOutputParameterHandler) # /account/{account_id}/rated/movies oOutputParameterHandler.addParameter('session_id', tmdb_session) oOutputParameterHandler.addParameter( 'siteUrl', 'account/%s/rated/movies' % int(result['id'])) oGui.addDir(SITE_IDENTIFIER, 'showMovies', addons.VSlang(30435), 'notes.png', oOutputParameterHandler) # /account/{account_id}/watchlist/movies oOutputParameterHandler.addParameter('session_id', tmdb_session) oOutputParameterHandler.addParameter( 'siteUrl', 'account/%s/watchlist/movies' % int(result['id'])) oGui.addDir(SITE_IDENTIFIER, 'showMovies', addons.VSlang(30436), 'views.png', oOutputParameterHandler) # /account/{account_id}/favorite/tv oOutputParameterHandler.addParameter('session_id', tmdb_session) oOutputParameterHandler.addParameter( 'siteUrl', 'account/%s/favorite/tv' % int(result['id'])) oGui.addDir(SITE_IDENTIFIER, 'showSeries', addons.VSlang(30437), 'series.png', oOutputParameterHandler) # /account/{account_id}/rated/tv oOutputParameterHandler.addParameter('session_id', tmdb_session) oOutputParameterHandler.addParameter( 'siteUrl', 'account/%s/rated/tv' % int(result['id'])) oGui.addDir(SITE_IDENTIFIER, 'showSeries', addons.VSlang(30438), 'notes.png', oOutputParameterHandler) # /account/{account_id}/watchlist/tv oOutputParameterHandler.addParameter('session_id', tmdb_session) oOutputParameterHandler.addParameter( 'siteUrl', 'account/%s/watchlist/tv' % int(result['id'])) oGui.addDir(SITE_IDENTIFIER, 'showSeries', addons.VSlang(30440), 'views.png', oOutputParameterHandler) # /account/{account_id}/rated/tv/episodes oOutputParameterHandler.addParameter('session_id', tmdb_session) oOutputParameterHandler.addParameter( 'siteUrl', 'account/%s/rated/tv/episodes' % int(result['id'])) oGui.addDir(SITE_IDENTIFIER, 'showSeries', addons.VSlang(30439), 'notes.png', oOutputParameterHandler) # /account/{account_id}/lists oOutputParameterHandler.addParameter('session_id', tmdb_session) oOutputParameterHandler.addParameter( 'siteUrl', 'account/%s/lists' % int(result['id'])) oGui.addDir(SITE_IDENTIFIER, 'showUserLists', addons.VSlang(30441), 'listes.png', oOutputParameterHandler) oOutputParameterHandler.addParameter('siteUrl', 'http://') oGui.addDir(SITE_IDENTIFIER, 'ouTMyTmdb', addons.VSlang(30309), 'listes.png', oOutputParameterHandler) else: ouTMyTmdb() oGui.setEndOfDirectory()
def getMetadonne(self): metaType = self.getMeta() if metaType == 0: # non media -> on sort, et on enleve le fanart self.addItemProperties('fanart_image', '') return from Plugins.Extensions.IPTVPlayer.tsiplayer.addons.resources.lib.tmdb import cTMDb TMDb = cTMDb() sTitle = self.__sFileName # sTitle = self.__sTitle.decode('latin-1').encode('utf-8') # sTitle = re.sub(r'\[.*\]|\(.*\)', r'', str(self.__sFileName)) # sTitle = sTitle.replace('VF', '').replace('VOSTFR', '').replace('FR', '') # On nettoie le titre pour la recherche sTitle = sTitle.replace('version longue', '') # Integrale de films, on nettoie le titre pour la recherche if metaType == 3: sTitle = sTitle.replace('integrales', '') sTitle = sTitle.replace('integrale', '') sTitle = sTitle.replace('2 films', '') sTitle = sTitle.replace('6 films', '') sTitle = sTitle.replace('7 films', '') sTitle = sTitle.replace('trilogie', '') sTitle = sTitle.replace('trilogy', '') sTitle = sTitle.replace('quadrilogie', '') sTitle = sTitle.replace('pentalogie', '') sTitle = sTitle.replace('octalogie', '') sTitle = sTitle.replace('hexalogie', '') sTitle = sTitle.replace('tetralogie', '') sTitle = sTitle.strip() if sTitle.endswith(' les'): sTitle = sTitle[:-4] elif sTitle.endswith(' la'): sTitle = sTitle[:-3] elif sTitle.endswith(' l'): sTitle = sTitle[:-2] sTitle = sTitle.strip() # tvshow if metaType in (2, 4, 5, 6): tvshowtitle = self.getItemValue('tvshowtitle') if tvshowtitle: sTitle = tvshowtitle sType = str(metaType).replace('1', 'movie').replace( '2', 'tvshow').replace('3', 'collection').replace('4', 'anime').replace( '5', 'season').replace('6', 'episode').replace( '7', 'person').replace('8', 'network') meta = {} try: if sType: args = (sType, sTitle) kwargs = {} if (self.__ImdbId): kwargs['imdb_id'] = self.__ImdbId if (self.__TmdbId): kwargs['tmdb_id'] = self.__TmdbId if (self.__Year): kwargs['year'] = self.__Year if (self.__Season): kwargs['season'] = self.__Season if (self.__Episode): kwargs['episode'] = self.__Episode meta = TMDb.get_meta(*args, **kwargs) if not meta: return else: return except: return if 'media_type' in meta: meta.pop('media_type') if 'imdb_id' in meta: imdb_id = meta.pop('imdb_id') if imdb_id: self.__ImdbId = imdb_id if 'tmdb_id' in meta: tmdb_id = meta.pop('tmdb_id') if tmdb_id: self.__TmdbId = tmdb_id if 'tvdb_id' in meta: meta.pop('tvdb_id') if 'backdrop_path' in meta: url = meta.pop('backdrop_path') if url: self.addItemProperties('fanart_image', url) self.__sFanart = url else: self.addItemProperties('fanart_image', '') if 'poster_path' in meta: url = meta.pop('poster_path') if url: self.__sThumbnail = url self.__sPoster = url if 'trailer' in meta and meta['trailer']: self.__sTrailer = meta['trailer'] if 'guest_stars' in meta: meta.pop('guest_stars') if 'nbseasons' in meta: meta['season'] = meta.pop('nbseasons') # Retrait des tags intermédiaires if 'vote' in meta: meta.pop('vote') if 'runtime' in meta: meta.pop('runtime') if 'crew' in meta: meta.pop('crew') if 'overview' in meta: meta.pop('overview') if 'vote_average' in meta: meta.pop('vote_average') if 'vote_count' in meta: meta.pop('vote_count') if 'backdrop_url' in meta: meta.pop('backdrop_url') for key, value in meta.items(): self.addItemValues(key, value) return
def getMetadonne(self): metaType = self.getMeta() if metaType == 0: # non media -> on sort, et on enleve le fanart self.addItemProperties('fanart_image', '') return from Plugins.Extensions.IPTVPlayer.tsiplayer.addons.resources.lib.tmdb import cTMDb TMDb = cTMDb() sTitle = self.__sFileName # sTitle = self.__sTitle.decode('latin-1').encode('utf-8') # sTitle = re.sub(r'\[.*\]|\(.*\)', r'', str(self.__sFileName)) # sTitle = sTitle.replace('VF', '').replace('VOSTFR', '').replace('FR', '') # On nettoie le titre pour la recherche sTitle = sTitle.replace('version longue', '') # Integrale de films, on nettoie le titre pour la recherche if metaType == 3: sTitle = sTitle.replace('integrales', '') sTitle = sTitle.replace('integrale', '') sTitle = sTitle.replace('2 films', '') sTitle = sTitle.replace('6 films', '') sTitle = sTitle.replace('7 films', '') sTitle = sTitle.replace('trilogie', '') sTitle = sTitle.replace('trilogy', '') sTitle = sTitle.replace('quadrilogie', '') sTitle = sTitle.replace('pentalogie', '') sTitle = sTitle.replace('octalogie', '') sTitle = sTitle.replace('hexalogie', '') sTitle = sTitle.replace('tetralogie', '') sTitle = sTitle.strip() if sTitle.endswith(' les'): sTitle = sTitle[:-4] if sTitle.endswith(' la') or sTitle.endswith(' l') : sTitle = sTitle[:-3] sTitle = sTitle.strip() sType = str(metaType).replace('1', 'movie').replace('2', 'tvshow').replace('3', 'collection').replace('4', 'anime').replace('5', 'season').replace('7', 'person').replace('8', 'network') meta = {} if sType: args = (sType, sTitle) kwargs = {} if (self.__ImdbId): kwargs['imdb_id'] = self.__ImdbId if (self.__TmdbId): kwargs['tmdb_id'] = self.__TmdbId if (self.__Year): kwargs['year'] = self.__Year if (self.__Season): kwargs['season'] = self.__Season if (self.__Episode): kwargs['episode'] = self.__Episode try: meta = TMDb.get_meta(*args, **kwargs) except: pass else: return meta['title'] = self.getTitle() if 'media_type' in meta: meta.pop('media_type') if 'imdb_id' in meta: imdb_id = meta.pop('imdb_id') if imdb_id: self.__ImdbId = imdb_id if 'tmdb_id' in meta: tmdb_id = meta.pop('tmdb_id') if tmdb_id: self.__TmdbId = tmdb_id if 'tvdb_id' in meta: # if meta['tvdb_id']: # self.__TvdbId = meta['tvdb_id'] meta.pop('tvdb_id') # Si fanart trouvé dans les meta alors on l'utilise, sinon on n'en met pas if 'backdrop_url' in meta: url = meta.pop('backdrop_url') if url: self.addItemProperties('fanart_image', url) self.__sFanart = url else: self.addItemProperties('fanart_image', '') if 'backdrop_path' in meta: meta.pop('backdrop_path') if 'poster_path' in meta: meta.pop('poster_path') if 'cover_url' in meta: cover = meta.pop('cover_url') if cover: self.__sThumbnail = cover self.__sPoster = cover if 'trailer' in meta and meta['trailer']: self.__sTrailer = meta['trailer'] if 's_overview' in meta: meta.pop('s_overview') if 's_poster_path' in meta: meta.pop('s_poster_path') if 's_premiered' in meta: meta.pop('s_premiered') if 's_year' in meta: meta.pop('s_year') for key, value in meta.items(): self.addItemValues(key, value) return
def showFilmActor(): oGui = cGui() grab = cTMDb() addons = addon() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') iPage = 1 if (oInputParameterHandler.exist('page')): iPage = oInputParameterHandler.getValue('page') result = grab.getUrl(sUrl, iPage) total = len(result) if (total > 0): total = len(result['cast']) progress_ = progress().VScreate(SITE_NAME) oOutputParameterHandler = cOutputParameterHandler() for i in result['cast']: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break # Mise en forme des infos (au format meta imdb) i = grab._format(i, '', "person") sId, sTitle, sGenre, sThumb, sFanart, sDesc, sYear = i[ 'tmdb_id'], i['title'], i['genre'], i['poster_path'], i[ 'backdrop_path'], i['plot'], i['year'] if not isMatrix(): sTitle = sTitle.encode("utf-8") oOutputParameterHandler.addParameter('siteUrl', 'http://tmdb/%s' % sId) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sTmdbId', sId) oOutputParameterHandler.addParameter('type', 'film') if not isMatrix(): oOutputParameterHandler.addParameter('searchtext', cUtil().CleanName(sTitle)) else: oOutputParameterHandler.addParameter('searchtext', sTitle) cGui.CONTENT = "movies" oGuiElement = cGuiElement() oGuiElement.setTmdbId(sId) oGuiElement.setSiteName('globalSearch') oGuiElement.setFunction('showSearch') oGuiElement.setTitle(sTitle) oGuiElement.setFileName(sTitle) oGuiElement.setIcon('films.png') oGuiElement.setMeta(1) oGuiElement.setThumbnail(sThumb) oGuiElement.setPoster(sThumb) oGuiElement.setFanart(sFanart) oGuiElement.setCat(1) oGuiElement.setDescription(sDesc) oGuiElement.setYear(sYear) oGuiElement.setGenre(sGenre) oGui.addFolder(oGuiElement, oOutputParameterHandler) progress_.VSclose(progress_) # changement mode view = addons.getSetting('visuel-view') oGui.setEndOfDirectory(view)