def showMovies(sSearch=''): oGui = cGui() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<a href="([^"]+)" class="tweet.+?" title=".+?\-([^"]+)".+?background-image:url((.+?))">' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) dialog = util.createDialog(SITE_NAME) for aEntry in aResult[1]: util.updateDialog(dialog, total) sUrl = 'https://twitter.com' + str(aEntry[0]) sThumbnail = str(aEntry[2]).replace("'", '').replace('(', '').replace( ')', '') sTitle = (' %s ') % (str(aEntry[1])) #recup id last tweet pour NextPage sNext = str(aEntry[0]).replace('/malaisetele/status/', '') oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumbnail', sThumbnail) oGui.addMovie(SITE_IDENTIFIER, 'showLinks', sTitle, 'films.png', sThumbnail, '', oOutputParameterHandler) util.finishDialog(dialog) sNextPage = __checkForNextPage(sNext) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) #force affichage vignette xbmc.executebuiltin('Container.SetViewMode(500)') if not sSearch: oGui.setEndOfDirectory()
def showGenres(): oGui = cGui() oParser = cParser() oRequestHandler = cRequestHandler(URL_MAIN) sHtmlContent = oRequestHandler.request() oParser = cParser() sPattern = 'value="(\d+)">(.+?)<\/option>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): total = len(aResult[1]) dialog = util.createDialog(SITE_NAME) for aEntry in aResult[1]: util.updateDialog(dialog, total) if dialog.iscanceled(): break sTitle = aEntry[1].replace('′', '') sUrl = URL_MAIN + 'catégories/' + sTitle.replace(' ', '-') oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle, 'replay.png', oOutputParameterHandler) util.finishDialog(dialog) oGui.setEndOfDirectory()
def showHosters(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = 'data-lazy-src="([^<]+)/.*?.mp4" scrolling="no"' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): total = len(aResult[1]) dialog = util.createDialog(SITE_NAME) for aEntry in aResult[1]: util.updateDialog(dialog, total) if dialog.iscanceled(): break url = str(aEntry) if url.startswith('//'): url = 'http:' + url sHosterUrl = url oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sMovieTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail) util.finishDialog(dialog) oGui.setEndOfDirectory()
def showHosters(sLoop=False): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sHtmlContent = sHtmlContent.replace('<iframe src="//www.facebook.com/', '') sHtmlContent = sHtmlContent.replace("src='https://ad.a-ads.com", '') oParser = cParser() #1 er version sPattern = '<iframe[^<>]+?src=[\'|"](http.+?)[\'|"]' aResult1 = re.findall(sPattern, sHtmlContent) #seconde version sPattern = '<a class="large.+?href="(.+?)" target="vid">' aResult2 = re.findall(sPattern, sHtmlContent) #3eme version sPattern = '<a class="large.+?href="([^<>"]+?)" target="(?:_blank|vid)"' aResult3 = re.findall(sPattern, sHtmlContent) #fusion des resultats aResult = [] aResult = list(set(aResult1 + aResult2 + aResult3)) #cConfig().log(str(aResult)) #Si il y a rien a afficher c'est peut etre une serie if (len(aResult) == 0) and (sLoop == False): #oGui.setEndOfDirectory() showSeries(True) return if (len(aResult) > 0): total = len(aResult) dialog = util.createDialog(SITE_NAME) for aEntry in aResult: util.updateDialog(dialog, total) if dialog.iscanceled(): break sHosterUrl = str(aEntry) oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): sDisplayTitle = util.cUtil().DecoTitle(sMovieTitle) oHoster.setDisplayName(sDisplayTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail) util.finishDialog(dialog) oGui.setEndOfDirectory()
def showSeries(sLoop = False): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sHtmlContent = sHtmlContent.decode('utf-8',"replace") sHtmlContent = unicodedata.normalize('NFD', sHtmlContent).encode('ascii', 'ignore').decode("unicode_escape")#vire accent et '\' sHtmlContent = sHtmlContent.encode('utf-8')#On remet en utf-8 oParser = cParser() sPattern = '<span style="color: #33cccc;[^<>"]*">(?:<(?:strong|b)>)*((?:Stream|Telec)[^<>]+)|>(Episode[^<]{2,12})<(?!\/a>)(.{0,10}a href="http.+?)(?:<.p|<br|<.div)' aResult = oParser.parse(sHtmlContent, sPattern) #astuce en cas d'episode unique if (aResult[0] == False) and (sLoop == False): #oGui.setEndOfDirectory() showHosters(True) return; if (aResult[0] == True): total = len(aResult[1]) dialog = util.createDialog(SITE_NAME) for aEntry in aResult[1]: util.updateDialog(dialog, total) if dialog.iscanceled(): break #langue if aEntry[0]: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(sUrl)) oOutputParameterHandler.addParameter('sMovieTitle', str(sMovieTitle)) oOutputParameterHandler.addParameter('sThumbnail', str(sThumbnail)) oGui.addMisc(SITE_IDENTIFIER, 'showSeries', '[COLOR red]' + str(aEntry[0]) + '[/COLOR]', 'series.png', sThumbnail, '', oOutputParameterHandler) #episode else: sTitle = sMovieTitle + ' ' + aEntry[1] sDisplayTitle = util.cUtil().DecoTitle(sTitle) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(aEntry[2])) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumbnail', str(sThumbnail)) oGui.addMisc(SITE_IDENTIFIER, 'serieHosters', sDisplayTitle, '', sThumbnail, '', oOutputParameterHandler) util.finishDialog(dialog) oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<a class="img.+?" href="([^"]+)" title="([^"]+)" style="background-image: url([^"]+)"' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): total = len(aResult[1]) dialog = util.createDialog(SITE_NAME) for aEntry in aResult[1]: util.updateDialog(dialog, total) if dialog.iscanceled(): break sThumb = aEntry[2].replace("(", '').replace(")", '').replace( ';', '').replace("'", '') #nettoyage sTitle = aEntry[1].replace('en replay', '').replace('′', '') #nettoyage oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', aEntry[0]) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumbnail', sThumb) oGui.addMisc(SITE_IDENTIFIER, 'showHosters', sTitle, 'doc.png', sThumb, "", oOutputParameterHandler) util.finishDialog(dialog) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) else: util.VSshowInfo('Vstream', 'Aucune vidéos', 2) return if not sSearch: oGui.setEndOfDirectory()
def serieHosters(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumbnail = oInputParameterHandler.getValue('sThumbnail') oParser = cParser() liste = False #fh = open('c:\\test.txt', "w") #fh.write(sHtmlContent) #fh.close() #1 - liste fichier if 'dl-protect.com' in sUrl: sPattern = 'href="([^<]+)" target="_blank.+?>(.+?)<.a>' aResult = oParser.parse(sUrl, sPattern) if (aResult[0] == True): UrlList = '' vid_list = [] hoster_list = [] if len(aResult[1]) > 1: for i in aResult[1]: vid_list.extend([i[0]]) hoster_list.extend([i[1]]) if len(aResult[1]) == 1: UrlList = aResult[1][0][0] else: result = xbmcgui.Dialog().select('Choose a link list', hoster_list) if result != -1: UrlList = vid_list[result] if (UrlList): sHtmlContent = DecryptDlProtect(UrlList) if sHtmlContent: sPattern = '<br .><a href="(.+?)" target="_blank">http:.+?<.a>' aResult = oParser.parse(sHtmlContent, sPattern) liste = True else: return else: #2 - Normal sPattern = 'href="([^<]+)" target="_blank"[^<>]*>.+?<\/a>' aResult = oParser.parse(sUrl, sPattern) #affichage if (aResult[0] == True): total = len(aResult[1]) dialog = util.createDialog(SITE_NAME) index = 1 for aEntry in aResult[1]: util.updateDialog(dialog, total) if dialog.iscanceled(): break sTitle = sMovieTitle if liste: sTitle = sTitle + ' (' + str(index) + ') ' index = index + 1 sHosterUrl = str(aEntry) oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): sDisplayTitle = util.cUtil().DecoTitle(sTitle) oHoster.setDisplayName(sDisplayTitle) oHoster.setFileName(sTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail) util.finishDialog(dialog) oGui.setEndOfDirectory()
def showLists(): oInputParameterHandler = cInputParameterHandler() iPage = 1 if (oInputParameterHandler.exist('page')): iPage = oInputParameterHandler.getValue('page') sUrl = oInputParameterHandler.getValue('siteUrl') result = grab.getUrl('list/'+sUrl, iPage, '') oGui = cGui() total = len(result) dialog = util.createDialog(SITE_NAME) if (total > 0): for i in result['items']: total = len(result['items']) util.updateDialog(dialog, total) if dialog.iscanceled(): break sId, sType, sThumbnail, sFanart, sVote, sDesc = i['id'], i['media_type'], i['poster_path'], i['backdrop_path'], i['vote_average'], i['overview'] if sThumbnail: sThumbnail = POSTER_URL + sThumbnail else: sThumbnail = '' if sFanart: sFanart = FANART_URL + sFanart else : sFanart = '' sTitle = "None" if 'name' in i: sTitle = i['name'].encode("utf-8") if 'title' in i: sTitle = i['title'].encode("utf-8") sDisplayTitle = "%s (%s)" % (sTitle, sVote) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://tmdb/%s' % sId) oOutputParameterHandler.addParameter('sMovieTitle', str(sTitle)) oOutputParameterHandler.addParameter('sThumbnail', str(sThumbnail)) oOutputParameterHandler.addParameter('sId', str(sId)) oOutputParameterHandler.addParameter('sFanart', str(sFanart)) oOutputParameterHandler.addParameter('sTmdbId', sId) #oOutputParameterHandler.addParameter('searchtext', sTitle) oOutputParameterHandler.addParameter('searchtext', cUtil().CleanName(sTitle)) #oGui.addTVDB(SITE_IDENTIFIER, 'showSeriesSaison', sTitle, 'series.png', sThumbnail, sFanart, oOutputParameterHandler) cGui.CONTENT = "movies" oGuiElement = cGuiElement() oGuiElement.setTmdbId(sId) oGuiElement.setSiteName('globalSearch') oGuiElement.setFunction('showSearch') oGuiElement.setTitle(sDisplayTitle) oGuiElement.setFileName(sTitle) oGuiElement.setIcon('series.png') if sType == 'movie': oGuiElement.setMeta(1) oGuiElement.setCat(1) elif sType == 'tv': oGuiElement.setMeta(2) oGuiElement.setCat(2) oGuiElement.setMetaAddon('true') #oGuiElement.setThumbnail(sThumbnail) #oGuiElement.setPoster(sThumbnail) #oGuiElement.setFanart(sFanart) oGuiElement.setDescription(sDesc) oGui.addFolder(oGuiElement, oOutputParameterHandler) util.finishDialog(dialog) oGui.setEndOfDirectory(view)
def showFilmActor(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') iPage = 1 if (oInputParameterHandler.exist('page')): iPage = oInputParameterHandler.getValue('page') result = grab.getUrl(sUrl, iPage) total = len(result) dialog = util.createDialog(SITE_NAME) if (total > 0): for i in result['cast']: total = len(result['cast']) util.updateDialog(dialog, total) if dialog.iscanceled(): break sId, sTitle, sThumbnail, sFanart, sDesc = i['id'], i['title'], i['poster_path'], i['backdrop_path'], i['overview'] try: sTitle = unicodedata.normalize('NFKD', sTitle).encode('ascii','ignore') except: sTitle = "Aucune information" try: sThumbnail = POSTER_URL + sThumbnail except: sThumbnail = '' try: sFanart = FANART_URL + sFanart except : sFanart = '' #sTitle = sTitle.encode("utf-8") oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://tmdb/%s' % sId) oOutputParameterHandler.addParameter('sMovieTitle', str(sTitle)) oOutputParameterHandler.addParameter('sTmdbId', sId) oOutputParameterHandler.addParameter('sThumbnail', str(sThumbnail)) oOutputParameterHandler.addParameter('type', 'film') #oOutputParameterHandler.addParameter('searchtext', showTitle(sTitle, str('none'))) oOutputParameterHandler.addParameter('searchtext', cUtil().CleanName(sTitle)) #oGui.addMovieDB('globalSearch', 'showHosters', sTitle, '', sThumbnail, '', oOutputParameterHandler) cGui.CONTENT = "movies" oGuiElement = cGuiElement() oGuiElement.setTmdbId(sId) oGuiElement.setSiteName('globalSearch') oGuiElement.setFunction('showSearch') oGuiElement.setTitle(sTitle) oGuiElement.setFileName(sTitle) oGuiElement.setIcon('actors.png') oGuiElement.setMeta(1) oGuiElement.setMetaAddon('true') #oGuiElement.setThumbnail(sThumbnail) #oGuiElement.setPoster(sThumbnail) #oGuiElement.setFanart(sFanart) oGuiElement.setCat(1) #oGuiElement.setDescription(sDesc) oGui.addFolder(oGuiElement, oOutputParameterHandler) util.finishDialog(dialog) #pas de paramettre de page # if (iPage > 0): # iNextPage = int(iPage) + 1 # oOutputParameterHandler = cOutputParameterHandler() # oOutputParameterHandler.addParameter('siteUrl', sUrl) # oOutputParameterHandler.addParameter('page', iNextPage) # oGui.addDir(SITE_IDENTIFIER, 'showFilmActor', '[COLOR teal]Page '+str(iNextPage)+' >>>[/COLOR]', 'next.png', oOutputParameterHandler) oGui.setEndOfDirectory(view)
def showActors(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') iPage = 1 if (oInputParameterHandler.exist('page')): iPage = oInputParameterHandler.getValue('page') result = grab.getUrl(sUrl, iPage) total = len(result) dialog = util.createDialog(SITE_NAME) if (total > 0): for i in result['results']: total = len(result['results']) util.updateDialog(dialog, total) if dialog.iscanceled(): break sName, sThumbnail = i['name'], i['profile_path'] if sThumbnail: sThumbnail = POSTER_URL + sThumbnail else: sThumbnail = '' oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', str(sUrl)) oOutputParameterHandler.addParameter('sThumbnail', str(sThumbnail)) sName = sName.encode('utf-8') oOutputParameterHandler.addParameter('siteUrl', 'person/' + str(i['id']) + '/movie_credits') #oGui.addMovieDB(SITE_IDENTIFIER, 'showFilmActor', '[COLOR red]'+str(sName)+'[/COLOR]', '', sThumbnail, '', oOutputParameterHandler) sTitle = '[COLOR red]' + str(sName) + '[/COLOR]' oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setFunction('showFilmActor') oGuiElement.setTitle(sTitle) oGuiElement.setFileName(sName) oGuiElement.setIcon('actors.png') oGuiElement.setMeta(0) oGuiElement.setThumbnail(sThumbnail) oGuiElement.setPoster(sThumbnail) oGuiElement.setCat(7) oGui.addFolder(oGuiElement, oOutputParameterHandler) util.finishDialog(dialog) if (iPage > 0): iNextPage = int(iPage) + 1 oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('page', iNextPage) oGui.addNext(SITE_IDENTIFIER, 'showActors', '[COLOR teal]Page ' + str(iNextPage) + ' >>>[/COLOR]', oOutputParameterHandler) oGui.setEndOfDirectory(view)
def showSeriesEpisode(): 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) oOutputParameterHandler.addParameter('searchtext', cUtil().CleanName(search)) oGuiElement = cGuiElement() oGuiElement.setSiteName('globalSearch') oGuiElement.setFunction('searchMovie') oGuiElement.setTitle(cConfig().getlanguage(30415)) oGuiElement.setCat(2) oGuiElement.setIcon("searchtmdb.png") oGui.addFolder(oGuiElement, oOutputParameterHandler) #oGui.addDir('cHome', 'showSearch', cConfig().getlanguage(30415), 'searchtmdb.png', oOutputParameterHandler) #fin result = grab.getUrl(sUrl) total = len(result) dialog = util.createDialog(SITE_NAME) if (total > 0): for i in result['episodes']: total = len(result['episodes']) util.updateDialog(dialog, total) if dialog.iscanceled(): break #sId, sTitle, sOtitle, sThumbnail, sFanart = i['id'], i['name'], i['original_name'], i['poster_path'], i['backdrop_path'] sdate, sIdEp, sEpNumber, sName, sThumbnail, SResume = i['air_date'], i['id'], i['episode_number'], i['name'], i['still_path'], i['overview'] sName = sName.encode("utf-8") if sName == '': sName = sMovieTitle if sThumbnail: sThumbnail = POSTER_URL + sThumbnail else: sThumbnail = '' #sTitle = '[COLOR coral]S' + sSeason + 'E' + str(sEpNumber) + '[/COLOR] - ' + sName sTitle = 'S%s E%s %s' % (sSeason, str(sEpNumber) , sName) sExtraTitle = ' S' + "%02d" % int(sSeason) + 'E' + "%02d" % int(sEpNumber) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sMovieTitle + '|' + sExtraTitle) #Pour compatibilite Favoris oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumbnail', str(sThumbnail)) oOutputParameterHandler.addParameter('sTmdbId', sTmdbId) oOutputParameterHandler.addParameter('sSeason', sSeason) oOutputParameterHandler.addParameter('sEpisode', str(sEpNumber)) oOutputParameterHandler.addParameter('type', 'serie') #oOutputParameterHandler.addParameter('searchtext', showTitle(sMovieTitle, sMovieTitle + '|' + sExtraTitle)) oOutputParameterHandler.addParameter('searchtext', cUtil().CleanName(sMovieTitle)) #oGui.addTVDB('globalSearch', 'showHosters', sTitle, 'series.png', sThumbnail, sFanart, oOutputParameterHandler) 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.setMetaAddon('true') #oGuiElement.setThumbnail(sThumbnail) #oGuiElement.setFanart(sFanart) oGuiElement.setCat(2) oGui.addFolder(oGuiElement, oOutputParameterHandler) util.finishDialog(dialog) #test pr chnagement mode #xbmc.executebuiltin('Container.SetViewMode(50)') oGui.setEndOfDirectory(view)
def showSeriesSaison(): 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 = '' oGui = cGui() #recherche la serie complete oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sMovieTitle) #oOutputParameterHandler.addParameter('type', 'serie') #oOutputParameterHandler.addParameter('searchtext', sMovieTitle) oOutputParameterHandler.addParameter('searchtext', cUtil().CleanName(sMovieTitle)) oGuiElement = cGuiElement() oGuiElement.setSiteName('globalSearch') oGuiElement.setFunction('searchMovie') oGuiElement.setTitle(cConfig().getlanguage(30414)) oGuiElement.setCat(2) oGuiElement.setIcon("searchtmdb.png") oGui.addFolder(oGuiElement, oOutputParameterHandler) #oGui.addDir('cHome', 'showSearch', cConfig().getlanguage(30414), 'searchtmdb.png', oOutputParameterHandler) #fin result = grab.getUrl(sUrl) total = len(result) dialog = util.createDialog(SITE_NAME) if (total > 0): for i in result['seasons']: total = len(result['seasons']) util.updateDialog(dialog, total) if dialog.iscanceled(): break sdate, sNbreEp, sIdSeason, sThumbnail, SSeasonNum = i['air_date'], i['episode_count'], i['id'], i['poster_path'], i['season_number'] if sThumbnail: sThumbnail = POSTER_URL+sThumbnail else: sThumbnail = '' sTitle = 'Saison ' + str(SSeasonNum) + ' (' + str(sNbreEp) + ')' sUrl = 'tv/' + sId + '/season/' + str(SSeasonNum) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumbnail', str(sThumbnail)) oOutputParameterHandler.addParameter('sId', sId) oOutputParameterHandler.addParameter('sSeason', str(SSeasonNum)) oOutputParameterHandler.addParameter('sFanart', str(sFanart)) oOutputParameterHandler.addParameter('sTmdbId', sTmdbId) #oGui.addTVDB(SITE_IDENTIFIER, 'showSeriesEpisode', sTitle, 'series.png', sThumbnail, sFanart, oOutputParameterHandler) 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.setMetaAddon('true') #oGuiElement.setThumbnail(sThumbnail) #oGuiElement.setPoster(sThumbnail) #oGuiElement.setFanart(sFanart) oGuiElement.setCat(7) oGui.addFolder(oGuiElement, oOutputParameterHandler) util.finishDialog(dialog) #test pr chnagement mode #xbmc.executebuiltin('Container.SetViewMode(500)') oGui.setEndOfDirectory(view)
def showSeries(sSearch=''): oInputParameterHandler = cInputParameterHandler() iPage = 1 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') else : term = '' result = grab.getUrl(sUrl, iPage, term) oGui = cGui() total = len(result) dialog = util.createDialog(SITE_NAME) if (total > 0): for i in result['results']: total = len(result['results']) util.updateDialog(dialog, total) if dialog.iscanceled(): break sId, sTitle, sOtitle, sThumbnail, sFanart, sDesc = i['id'], i['name'], i['original_name'], i['poster_path'], i['backdrop_path'], i['overview'] if sThumbnail: sThumbnail = POSTER_URL + sThumbnail else: sThumbnail = '' if sFanart: sFanart = FANART_URL + sFanart else : sFanart = '' sTitle = sTitle.encode("utf-8") sSiteUrl = 'tv/' + str(sId) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sSiteUrl) oOutputParameterHandler.addParameter('sMovieTitle', str(sTitle)) oOutputParameterHandler.addParameter('sThumbnail', str(sThumbnail)) oOutputParameterHandler.addParameter('sId', str(sId)) oOutputParameterHandler.addParameter('sFanart', str(sFanart)) oOutputParameterHandler.addParameter('sTmdbId', sId) #oOutputParameterHandler.addParameter('searchtext', sTitle) oOutputParameterHandler.addParameter('searchtext', cUtil().CleanName(sTitle)) #oGui.addTVDB(SITE_IDENTIFIER, 'showSeriesSaison', sTitle, 'series.png', sThumbnail, sFanart, oOutputParameterHandler) cGui.CONTENT = "tvshows" oGuiElement = cGuiElement() oGuiElement.setTmdbId(sId) oGuiElement.setSiteName(SITE_IDENTIFIER) # a activer pour saisons #oGuiElement.setSiteName('globalSearch') # a desactiver pour saison oGuiElement.setFunction('showSeriesSaison') oGuiElement.setTitle(sTitle) oGuiElement.setFileName(sTitle) oGuiElement.setIcon('series.png') oGuiElement.setMeta(2) oGuiElement.setMetaAddon('true') #oGuiElement.setThumbnail(sThumbnail) #oGuiElement.setPoster(sThumbnail) #oGuiElement.setFanart(sFanart) oGuiElement.setCat(2) #oGuiElement.setDescription(sDesc) oGui.addFolder(oGuiElement, oOutputParameterHandler) util.finishDialog(dialog) if (iPage > 0): iNextPage = int(iPage) + 1 oOutputParameterHandler = cOutputParameterHandler() if sSearch: oOutputParameterHandler.addParameter('sSearch', sSearch) oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('page', iNextPage) oGui.addNext(SITE_IDENTIFIER, 'showSeries', '[COLOR teal]Page ' + str(iNextPage) + ' >>>[/COLOR]', oOutputParameterHandler) #test pr chnagement mode #xbmc.executebuiltin('Container.SetViewMode(500)') oGui.setEndOfDirectory(view)
def showMovies(sSearch=''): oGui = cGui() 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/movie', iPage, 'query=' + sSearch) sUrl = '' else: if (oInputParameterHandler.exist('session_id')): term += 'session_id=' + oInputParameterHandler.getValue( 'session_id') sUrl = oInputParameterHandler.getValue('siteUrl') result = grab.getUrl(sUrl, iPage, term) #result = grab.getUrl(sUrl, iPage) total = len(result) if (total > 0): dialog = util.createDialog(SITE_NAME) for i in result['results']: total = len(result['results']) util.updateDialog(dialog, total) if dialog.iscanceled(): break sId, sTitle, sOtitle, sThumb, sFanart, sDesc = i['id'], i[ 'title'], i['original_title'], i['poster_path'], i[ 'backdrop_path'], i['overview'] if sThumb: sThumb = POSTER_URL + sThumb else: sThumb = '' sTitle = sTitle.encode("utf-8") if sFanart: sFanart = FANART_URL + sFanart else: sFanart = '' oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://tmdb/%s' % sId) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sTmdbId', sId) oOutputParameterHandler.addParameter('type', 'film') #oOutputParameterHandler.addParameter('searchtext', showTitle(sTitle, str('none'))) oOutputParameterHandler.addParameter('searchtext', cUtil().CleanName(sTitle)) #oGui.addMovieDB('globalSearch', 'showHosters', sTitle, 'films.png', sThumb, sFanart, oOutputParameterHandler) 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.setMetaAddon('true') #oGuiElement.setThumbnail(sThumb) #oGuiElement.setPoster(sThumb) #oGuiElement.setFanart(sFanart) oGuiElement.setCat(1) oGuiElement.setDescription(sDesc) oGui.addFolder(oGuiElement, oOutputParameterHandler) util.finishDialog(dialog) if (iPage > 0): iNextPage = int(iPage) + 1 oOutputParameterHandler = cOutputParameterHandler() if sSearch: oOutputParameterHandler.addParameter('sSearch', sSearch) oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('page', iNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Page ' + str(iNextPage) + ' >>>[/COLOR]', oOutputParameterHandler) #test pr chnagement mode #xbmc.executebuiltin('Container.SetViewMode(500)') oGui.setEndOfDirectory(view)