def showEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) sHtmlContent = oRequest.request() pattern = 'data-src="([^"]+).*? alt="([^"]+).*?href="([^"]+)' isMatch, aResult = cParser().parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sThumbnail, sName, sUrl in aResult: if sSearchText and not cParser().search(sSearchText, sName): continue oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showHosters') oGuiElement.setThumbnail(sThumbnail + cf) oGuiElement.setFanart(sThumbnail + cf) oGuiElement.setMediaType('movie') params.setParam('entryUrl', sUrl) oGui.addFolder(oGuiElement, params, False, total) if not sGui: isMatchNextPage, sNextUrl = cParser().parseSingleResult(sHtmlContent, 'pagination.*?<a href="([^"]+)" data-ci-pagination-page="\d" rel="next">') if isMatchNextPage: params.setParam('sUrl', sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('movies') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') page = params.getValue('page') oRequest = cRequestHandler(entryUrl % page) sHtmlContent = oRequest.request() pattern = 'search_frame".*?<a[^>]href="([^"]+)"><img[^>]src="([^"]+).*?<strong>([^<]+).*?year/([\d]+)' isMatch, aResult = cParser().parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sUrl, sThumbnail, sName, sYear in aResult: sThumbnail = cParser().replace('\d+x\d+', '', sThumbnail + cf) oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showHosters') oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) oGuiElement.setYear(sYear) oGuiElement.setMediaType('movie') params.setParam('entryUrl', sUrl) oGui.addFolder(oGuiElement, params, False, total) if not sGui: isMatchNextPage, sNextUrl = cParser().parse(sHtmlContent, "page[^>]([\d]+)") if isMatchNextPage: if max(sNextUrl) > page: params.setParam('page', int(page) + 1) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('movies') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl) sHtmlContent = oRequest.request() pattern = 'TPost C">.*?href="([^"]+).*?img[^>]src="([^"]+)(.*?)Title">([^<]+)' isMatch, aResult = cParser().parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sUrl, sThumbnail, dummy, sName in aResult: sThumbnail = 'https:' + sThumbnail + cf if sSearchText and not cParser().search(sSearchText, sName): continue isTvshow = True if 'Season' in dummy or 'TV' in dummy else False oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showSeasons' if isTvshow else 'showHosters') oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) oGuiElement.setMediaType('tvshow' if isTvshow else 'movie') params.setParam('entryUrl', sUrl) params.setParam('sThumbnail', sThumbnail) oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: pattern = 'next page-numbers" href="([^"]+)' isMatchNextPage, sNextUrl = cParser.parseSingleResult(sHtmlContent, pattern) if isMatchNextPage: params.setParam('sUrl', sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) #oGui.setView('tvshow' if 'Season' in dummy or 'TV' in dummy else 'movie') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False): import time oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') sortBy = params.getValue('sortBy') page = params.getValue('page') type = params.getValue('type') sHtmlContent = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)).request() isMatch, url = cParser.parseSingleResult(sHtmlContent, "url : '([^']+)") isMatch, token = cParser.parseSingleResult(sHtmlContent, "token':'([^']+)") oRequest = cRequestHandler(url, ignoreErrors=(sGui is not False)) if sSearchText: oRequest.addParameters('search', sSearchText) page = '1' type = 'Alle' sortBy = 'latest' oRequest.addHeaderEntry('X-Requested-With', 'XMLHttpRequest') oRequest.addParameters('_token', token) oRequest.addParameters('from', 1900) oRequest.addParameters('page', page) oRequest.addParameters('rating', 0) oRequest.addParameters('sortBy', sortBy) oRequest.addParameters('to', time.strftime("%Y", time.localtime())) oRequest.addParameters('type', type) oRequest.setRequestType(1) sHtmlContent = oRequest.request() pattern = '<a title=[^>]"(.*?)" href=[^>]"([^"]+).*?src=[^>]"([^"]+)' isMatch, aResult = cParser.parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sName, sUrl, sThumbnail in aResult: if sSearchText and not cParser().search(sSearchText, sName): continue isTvshow = True if 'folge' in sUrl else False sThumbnail = sThumbnail + cf oGuiElement = cGuiElement(sName[:-1], SITE_IDENTIFIER, 'showSeasons' if isTvshow else 'showHosters') oGuiElement.setThumbnail(sThumbnail[:-1]) oGuiElement.setFanart(sThumbnail[:-1]) oGuiElement.setMediaType('tvshow' if isTvshow else 'movie') params.setParam('sThumbnail', sThumbnail) params.setParam('sName', sName) params.setParam('entryUrl', sUrl[:-1]) oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: pattern = 'Next.*?data-p=[^>]"([\d]+).*?d-flex' isMatch, sUrl = cParser.parseSingleResult(sHtmlContent, pattern) if isMatch: params.setParam('page', sUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('tvshows' if 'folge' in entryUrl else 'movies') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) if sSearchText: oRequest.addParameters('story', sSearchText) oRequest.addParameters('do', 'search') oRequest.addParameters('subaction', 'search') oRequest.addParameters('x', '0') oRequest.addParameters('y', '0') oRequest.addParameters('titleonly', '3') oRequest.addParameters('submit', 'submit') else: oRequest.addParameters('dlenewssortby', 'date') oRequest.addParameters('dledirection', 'desc') oRequest.addParameters('set_new_sort', 'dle_sort_main') oRequest.addParameters('set_direction_sort', 'dle_direction_main') oRequest.setRequestType(1) sHtmlContent = oRequest.request() pattern = 'class="title.*?href="([^"]+)">([^<]+).*?src="([^"]+)' isMatch, aResult = cParser().parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sUrl, sName, sThumbnail in aResult: if sSearchText and not cParser().search(sSearchText, sName): continue sThumbnail = sThumbnail + cf isTvshow = True if 'staffel' in sName.lower() else False isYear, sYear = cParser.parse(sName, "(.*?)\((\d*)\)") for name, year in sYear: sName = name sYear = year break oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showSeasons' if isTvshow else 'showHosters') oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) if isYear: oGuiElement.setYear(sYear) oGuiElement.setMediaType('tvshow' if isTvshow else 'movie') params.setParam('sThumbnail', sThumbnail) params.setParam('TVShowTitle', sName) params.setParam('entryUrl', sUrl) oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: isMatchNextPage, sNextUrl = cParser().parseSingleResult( sHtmlContent, '<a[^>]href="([^"]+)">vorw') if isMatchNextPage: params.setParam('sUrl', sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('tvshows' if 'staffel' in sName.lower() else 'movies') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) if sSearchText: oRequest.addParameters('do', 'search') oRequest.addParameters('full_search', '0') oRequest.addParameters('search_start', '0') oRequest.addParameters('story', sSearchText) oRequest.addParameters('subaction', 'search') oRequest.addParameters('result_from', '1') oRequest.addParameters('submit', 'submit') oRequest.setRequestType(1) sHtmlContent = oRequest.request() pattern = '<div[^>]id="mainbar.*?<div[^>]class="clearfix' isMatch, sContainer = cParser().parseSingleResult(sHtmlContent, pattern) if isMatch: pattern = '<div[^>]class="shortstory-in">.*?<a[^>]href="([^"]+)"[^>]title="([^"]+).*?<img[^>]src="([^"]+).*?<span class="film-rip">(.*?)</span>' isMatch, aResult = cParser().parse(sContainer, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sUrl, sName, sThumbnail, sDummy in aResult: if sSearchText and not cParser().search(sSearchText, sName): continue isTvshow = True if 'Staffel' in sDummy else False sThumbnail = sThumbnail + cf if isTvshow: if not 'Staffel' in sName: isMatch, st = cParser().parseSingleResult( sDummy, 'Staffel.*?([\d]+).*?</a>') if isMatch: sName = sName + ' ' + st + ' Staffel' oGuiElement = cGuiElement( sName, SITE_IDENTIFIER, 'showEpisodes' if isTvshow else 'showHosters') oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) oGuiElement.setMediaType('tvshow' if isTvshow else 'movie') params.setParam('sThumbnail', sThumbnail) params.setParam('TVShowTitle', sName) params.setParam('entryUrl', sUrl) oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: isMatchNextPage, sNextUrl = cParser().parseSingleResult( sHtmlContent, 'pages-next">[^>][^>][^>][^>][^>]<a href="([^"]+)"') if isMatchNextPage: params.setParam('sUrl', sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('tvshows' if 'staffel' in sName.lower() else 'movies') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') iPage = int(params.getValue('page')) if iPage > 0: entryUrl = entryUrl + ('&' if '?' in entryUrl else '?') + 'page=' + str(iPage) oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) oRequest.addHeaderEntry('Referer', URL_MAIN) sHtmlContent = oRequest.request() pattern = '<div[^>]class="post-thumb">.*?<a[^>]*href="([^"]+)"[^>]title="([^"]+)">.*?src="([^"]+)"' isMatch, aResult = cParser().parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sUrl, sName, sThumbnail in aResult: if sSearchText and not cParser().search(sSearchText, sName): continue isTvshow = True if "serie" in sUrl else False oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showSeasons' if isTvshow else 'showHosters') if sThumbnail.startswith('//'): sThumbnail = 'https:' + sThumbnail if sThumbnail.startswith('/'): sThumbnail = URL_MAIN + sThumbnail oGuiElement.setThumbnail(sThumbnail + cf) oGuiElement.setFanart(sThumbnail + cf) oGuiElement.setMediaType('tvshow' if isTvshow else 'movie') if sUrl.startswith('http'): params.setParam('entryUrl', sUrl) if not sUrl.startswith('http'): params.setParam('entryUrl', URL_MAIN + sUrl) params.setParam('sName', sName) params.setParam('Thumbnail', sThumbnail + cf) oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: isMatch, strPage = cParser().parseSingleResult( sHtmlContent, '<a[^>]*class="next page-numbers"[^>]*href="[^>]*page=([^"]+)">Next »' ) if isMatch: params.setParam('page', int(strPage)) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('tvshows' if 'serie' in entryUrl else 'movies') oGui.setEndOfDirectory()
def showEpisodes(): oGui = cGui() params = ParameterHandler() sUrl = params.getValue('sUrl') sTVShowTitle = params.getValue('TVShowTitle') sSeason = params.getValue('sSeason') if not sSeason: sSeason = "0" isMovieList = sUrl.endswith('filme') oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() pattern = '<table[^>]*class="seasonEpisodesList"[^>]*>(.*?)<\/table>' isMatch, sContainer = cParser.parseSingleResult(sHtmlContent, pattern) if isMatch: pattern = '<tr[^>]*data-episode-season-id="(\d+).*?<a href="([^"]+).*?(?:<strong>(.*?)</strong>.*?)?(?:<span>(.*?)</span>.*?)?<' isMatch, aResult = cParser.parse(sContainer, pattern) if not isMatch: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return isDesc, sDesc = cParser.parseSingleResult( sHtmlContent, '<p[^>]*data-full-description="(.*?)"[^>]*>') isThumbnail, sThumbnail = cParser.parseSingleResult( sHtmlContent, '<div[^>]*class="seriesCoverBox"[^>]*>.*?<img[^>]*src="([^"]*)"[^>]*>') if isThumbnail: cf = cRequestHandler.createUrl(URL_MAIN, oRequest) sThumbnail = sThumbnail + cf total = len(aResult) for sID, sUrl, sNameGer, sNameEng in aResult: sName = "%d - " % int(sID) sName += sNameGer if sNameGer else sNameEng oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showHosters') oGuiElement.setMediaType('episode' if not isMovieList else 'movie') if isThumbnail: oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) if isDesc: oGuiElement.setDescription(sDesc) if not isMovieList: oGuiElement.setSeason(sSeason) oGuiElement.setEpisode(int(sID)) oGuiElement.setTVShowTitle(sTVShowTitle) params.setParam('sUrl', URL_MAIN + sUrl) oGui.addFolder(oGuiElement, params, False, total) oGui.setView('episodes' if not isMovieList else 'movies') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) sHtmlContent = oRequest.request() pattern = '<div[^>]*class="poster">.*?img[^>]src="([^"]+)"[^>]alt="([^"]+).*?(.*?)<a[^>]href="([^"]+).*?<span>([\d]+)</span>.*?<div[^>]class="texto">([^"]+)</div>' isMatch, aResult = cParser.parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sThumbnail, sName, sDummy, sUrl, sYear, sDesc in aResult: isTvshow = True if "serie" in sUrl else False sThumbnail = sThumbnail + cf if sThumbnail.startswith('//'): sThumbnail = 'https:' + sThumbnail if sUrl.startswith('//'): sUrl = 'https:' + sUrl oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showSeasons' if isTvshow else 'showHosters') oGuiElement.setMediaType('tvshow' if isTvshow else 'movie') oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) if 'German' in sDummy: oGuiElement.setLanguage('Deutsch') if 'English' in sDummy: oGuiElement.setLanguage('Englisch') oGuiElement.setYear(sYear) oGuiElement.setDescription(sDesc) params.setParam('entryUrl', sUrl) params.setParam('sName', sName) params.setParam('sThumbnail', sThumbnail) params.setParam('sDesc', sDesc) oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: pattern = '"next"[^>]*href="([^"]+)' isMatchNextPage, sNextUrl = cParser.parseSingleResult( sHtmlContent, pattern) if isMatchNextPage: if sNextUrl.startswith('//'): sNextUrl = 'https:' + sNextUrl params.setParam('sUrl', sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('tvshows' if 'serie' in sUrl else 'movies') oGui.setEndOfDirectory()
def showSearchEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl) sHtmlContent = oRequest.request() pattern = '-2">.*?href="([^"]+).*?src="([^"]+).*?alt="([^"]+).*?year">([\d]+)(.*?)(?:<div[^>]class="contenido"><p>([^<]+)?)' isMatch, aResult = cParser.parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sUrl, sThumbnail, sName, sYear, sDummy, sDesc in aResult: if sSearchText and not cParser().search(sSearchText, sName): continue if sThumbnail and not sThumbnail.startswith('http'): sThumbnail = 'https:' + sThumbnail sThumbnail = sThumbnail + cf if sUrl.startswith('//'): sUrl = 'https:' + sUrl isTvshow = True if "serie" in sUrl else False oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showSeasons' if isTvshow else 'showHosters') oGuiElement.setMediaType('tvshow' if isTvshow else 'movie') oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) oGuiElement.setYear(sYear) if 'de.png' in sDummy: oGuiElement.setLanguage('Deutsch') if 'en.png' in sDummy: oGuiElement.setLanguage('Englisch') oGuiElement.setDescription(sDesc) params.setParam('entryUrl', sUrl) params.setParam('sName', sName) params.setParam('sThumbnail', sThumbnail) params.setParam('sDesc', sDesc) oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: pattern = "span[^>]*class=[^>]*current[^>]*>.*?</span><a[^>]*href='([^']+)" isMatchNextPage, sNextUrl = cParser.parseSingleResult( sHtmlContent, pattern) if isMatchNextPage: if sNextUrl.startswith('//'): sNextUrl = 'https:' + sNextUrl params.setParam('sUrl', sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showSearchEntries', params) oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) oRequest.addHeaderEntry('Referer', entryUrl) sHtmlContent = oRequest.request() pattern = '<a[^>]class="coverImage"[^>]title="([^"]+)"[^>]href="([^"]+).*?"[^>]src="([^"]+).*?(.*?)</a>.*?</span>' isMatch, aResult = cParser.parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sName, sUrl, sThumbnail, sLang in aResult: if sSearchText and not cParser().search(sSearchText, sName.replace(' ', '%20')): continue isMatch, sYear = cParser.parse(sName, "(.*?)\((\d*)\)") for name, year in sYear: sName = name sYear = year break oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showHosters') oGuiElement.setThumbnail(sThumbnail + cf) oGuiElement.setFanart(sThumbnail + cf) oGuiElement.setYear(sYear) if 'en.png' in sLang and 'de.png' in sLang: oGuiElement.setLanguage('Deutsch & Englisch') elif 'de.png' in sLang: oGuiElement.setLanguage('Deutsch') elif 'en.png' in sLang: oGuiElement.setLanguage('Englisch') else: oGuiElement.setLanguage('') params.setParam('entryUrl', sUrl) oGui.addFolder(oGuiElement, params, False, total) if not sGui: Page = params.getValue('Page') Page = int(Page) + int(30) params.setParam('Page', Page) if not params.getValue('nUrl') == False: params.setParam('sUrl', params.getValue('nUrl') + '/' + str(Page)) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('movies') oGui.setEndOfDirectory()
def showSeasons(): oGui = cGui() params = ParameterHandler() sUrl = params.getValue('sUrl') sTVShowTitle = params.getValue('TVShowTitle') oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() pattern = '<div[^>]*class="hosterSiteDirectNav"[^>]*>.*?<ul>(.*?)<\/ul>' isMatch, sContainer = cParser.parseSingleResult(sHtmlContent, pattern) if isMatch: pattern = '<a[^>]*href="([^"]*)"[^>]*title="([^"]*)"[^>]*>(.*?)<\/a>.*?' isMatch, aResult = cParser.parse(sContainer, pattern) if not isMatch: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return isDesc, sDesc = cParser.parseSingleResult( sHtmlContent, '<p[^>]*data-full-description="(.*?)"[^>]*>') isThumbnail, sThumbnail = cParser.parseSingleResult( sHtmlContent, '<div[^>]*class="seriesCoverBox"[^>]*>.*?<img[^>]*src="([^"]*)"[^>]*>') if isThumbnail: cf = cRequestHandler.createUrl(URL_MAIN, oRequest) if sThumbnail.startswith('/'): sThumbnail = URL_MAIN + sThumbnail + cf else: sThumbnail = sThumbnail + cf total = len(aResult) for sUrl, sName, sNr in aResult: isMovie = sUrl.endswith('filme') oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showEpisodes') oGuiElement.setMediaType('season' if not isMovie else 'movie') if isThumbnail: oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) if isDesc: oGuiElement.setDescription(sDesc) if not isMovie: oGuiElement.setTVShowTitle(sTVShowTitle) oGuiElement.setSeason(sNr) params.setParam('sSeason', sNr) params.setParam('sThumbnail', sThumbnail) params.setParam('sUrl', URL_MAIN + sUrl) oGui.addFolder(oGuiElement, params, True, total) oGui.setView('seasons') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) sHtmlContent = oRequest.request() pattern = '"><a[^>]href="([^"]+)"[^>]title="([^"]+)"><img[^>]src="([^"]+)' isMatch, aResult = cParser.parse(sHtmlContent, pattern) if not isMatch: pattern = '</div><a[^>]href="([^"]+)"[^>]title="([^"]+)">.*?src="([^"]+)' isMatch, aResult = cParser.parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sUrl, sName, sThumbnail in aResult: if sSearchText and not cParser().search(sSearchText, sName): continue isTvshow, aResult = cParser.parse(sName, 'S\d\dE\d\d') sThumbnail = sThumbnail + cf if sThumbnail.startswith('/'): sThumbnail = URL_MAIN + sThumbnail oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showSeasons' if isTvshow else 'showHosters') oGuiElement.setMediaType('tvshow' if isTvshow else 'movie') oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) if sUrl.startswith('//'): params.setParam('entryUrl', 'https:' + sUrl) else: params.setParam('entryUrl', sUrl) params.setParam('sName', sName) params.setParam('sThumbnail', sThumbnail) oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: pattern = '<a[^>]class="pageing.*?href=([^>]+)>[^>]v' isMatchNextPage, sNextUrl = cParser.parseSingleResult( sHtmlContent, pattern) if isMatchNextPage: if sNextUrl.startswith('/'): sNextUrl = URL_MAIN + sNextUrl params.setParam('sUrl', sNextUrl.replace("'", "").replace('"', '')) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('tvshow' if isTvshow else 'movie') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') sBaseUrl = params.getValue('sBaseUrl') if not sBaseUrl: params.setParam('sBaseUrl', entryUrl) sBaseUrl = entryUrl oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) sHtmlContent = oRequest.request() pattern = 'class="linkto.*?href="([^"]+).*?src="([^"]+).*?>([^>]+)</div>' isMatch, aResult = cParser.parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sUrl, sThumbnail, sName in aResult: if sSearchText and not cParser().search(sSearchText, sName): continue sThumbnail = URL_MAIN + sThumbnail + cf isTvshow = True if 'serie' in sUrl else False oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showSeasons' if isTvshow else 'showHosters') oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) oGuiElement.setMediaType("tvshow" if isTvshow else "movie") params.setParam('entryUrl', URL_MAIN + sUrl.replace('../..', '')) params.setParam('Name', sName) params.setParam('sThumbnail', sThumbnail) params.setParam('isTvshow', isTvshow) oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: pattern = 'pagenumberselected.*?href=".*?href="([^"]+)' isMatch, sNextUrl = cParser.parseSingleResult(sHtmlContent, pattern) pattern = 'seiterr"[^>]href="([^"]+)' if isMatch: isMatch, Lastpage = cParser.parseSingleResult( sHtmlContent, pattern) if isMatch: if sNextUrl <= Lastpage: params.setParam('sUrl', sBaseUrl + sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('tvshows' if 'serie' in entryUrl else 'movies') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) sHtmlContent = oRequest.request() pattern = 'hover-link">.*?</div></div></div></div></a></li></ul>' isMatch, sContainer = cParser().parseSingleResult(sHtmlContent, pattern) if isMatch: pattern = 'href="([^"]+).*?original=".*?([^"]+).*?flagHolderDiv">.*?' pattern += "alt='([^']+).*?" pattern += 'title"><h2>([^<]+).*?left">([^<]+)' isMatch, aResult = cParser().parse(sContainer, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sUrl, sThumbnail, sLang, sName, sYear in aResult: if sSearchText and not cParser().search(sSearchText, sName): continue isTvshow = True if "serie" in sUrl else False sThumbnail = URL_MAIN + sThumbnail + cf oGuiElement = cGuiElement( sName, SITE_IDENTIFIER, 'showEpisodes' if isTvshow else 'showHosters') oGuiElement.setMediaType('tvshow' if isTvshow else 'movie') oGuiElement.setLanguage(sLang) oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) oGuiElement.setYear(sYear) oGuiElement.setMediaType('tvshow' if isTvshow else 'movie') params.setParam('TVShowTitle', sName) params.setParam('entryUrl', sUrl) params.setParam('sThumbnail', sThumbnail) oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: isMatchNextPage, sNextUrl = cParser().parseSingleResult( sHtmlContent, "class='arrow'><a[^>]*href='([^']+)'>»") if isMatchNextPage: params.setParam('sUrl', sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('tvshows' if 'serie' in entryUrl else 'movies') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) sHtmlContent = oRequest.request() pattern = 'class="dataHover.*?footerContainer' isMatch, sContainer = cParser().parseSingleResult(sHtmlContent, pattern) if isMatch: pattern = '<a[^>]href="([^"]+)"><img[^>]src="([^"]+)"><div><span>([^<]+)' isMatch, aResult = cParser().parse(sContainer, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sUrl, sThumbnail, sName in aResult: if sSearchText and not cParser().search(sSearchText, sName): continue isID, hosterid = cParser.parse(sUrl, '\D/([\d]+)/') sThumbnail = URL_MAIN + sThumbnail + cf isTvshow = True if "serie" in sUrl else False oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showSeasons' if isTvshow else 'showHosters') oGuiElement.setMediaType('tvshow' if isTvshow else 'movie') oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) params.setParam('entryUrl', URL_MAIN + sUrl) params.setParam('sName', sName) params.setParam('sThumbnail', sThumbnail) params.setParam('hosterid', hosterid[0]) params.setParam('isTvshow', isTvshow) oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: pattern = '<a[^>]href="([^"]+)">></a>' isMatchNextPage, sNextUrl = cParser.parseSingleResult( sHtmlContent, pattern) if isMatchNextPage: baseURL = params.getValue('baseURL') params.setParam('sUrl', baseURL + sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('tvshows' if 'serie' in entryUrl else 'movies') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) sHtmlContent = oRequest.request() pattern = 'single-list-movie">.*?src="([^"]+).*?href="([^"]+)">([^<]+).*?<li>([^<]+)' isMatch, aResult = cParser().parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sThumbnail, sUrl, sName, sDesc in aResult: isTvshow = True if '-s-' in sUrl else False if sSearchText and not cParser().search(sSearchText, sName): continue isMatch, sYear = cParser.parse(sName, '(.*?)\((\d*)\)') for name, year in sYear: sName = name sYear = year break oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showSeasons' if isTvshow else 'showHosters') oGuiElement.setThumbnail(sThumbnail + cf) oGuiElement.setFanart(sThumbnail + cf) oGuiElement.setYear(sYear) oGuiElement.setDescription(sDesc) oGuiElement.setMediaType('tvshow' if isTvshow else 'movie') params.setParam('entryUrl', URL_MAIN + sUrl) params.setParam('sThumbnail', sThumbnail) params.setParam('sName', sName) oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: isMatchNextPage, sNextUrl = cParser().parseSingleResult( sHtmlContent, 'next"><a href="([^"]+)') if isMatchNextPage: params.setParam('sUrl', URL_MAIN + sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('tvshow' if isTvshow else 'movie') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) sHtmlContent = oRequest.request() if sSearchText is not False: pattern = 'search-page.*?<div[^>]class="sidebar[^>]scrolling">' else: pattern = 'class="item movies">.*?<div[^>]class="sidebar[^>]scrolling">' isMatch, sContainer = cParser.parseSingleResult(sHtmlContent, pattern) if isMatch: if sSearchText is not False: pattern = '<img[^>]src="([^"]+).*?<a[^>]href="([^"]+)">([^<]+).*?year">([\d]+)' else: pattern = '<img[^>]src="([^"]+).*?<h3><a[^>]href="([^"]+)">([^<]+)</a></h3>[^>]<span>([\d]+)' isMatch, aResult = cParser.parse(sContainer, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sThumbnail, sUrl, sName, sYear in aResult: if sSearchText and not cParser().search(sSearchText, sName): continue sThumbnail = cParser.replace('-\d+x\d+\.', '.', sThumbnail) + cf oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showHosters') oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) oGuiElement.setYear(sYear) oGuiElement.setMediaType('movie') params.setParam('entryUrl', sUrl) oGui.addFolder(oGuiElement, params, False, total) if not sGui: isMatchNextPage, sNextUrl = cParser().parseSingleResult( sHtmlContent, "<span[^>]class=[^>]current.*?</span><a[^>]href='([^']+)") if isMatchNextPage: params.setParam('sUrl', sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('movies') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) sHtmlContent = oRequest.request() pattern = 'class="rig-cell"[^>]href="([^"]+).*?src="([^"]+).*?<span[^>]class="name">([^<]+)' isMatch, aResult = cParser().parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sUrl, sThumbnail, sName in aResult: if sSearchText and not cParser().search(sSearchText, sName): continue isTvshow = True if 'staffel' in sUrl.lower() else False oGuiElement = cGuiElement( sName, SITE_IDENTIFIER, 'showEpisodes' if isTvshow else 'showHosters') sThumbnail = URL_MAIN + sThumbnail + cf oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) oGuiElement.setMediaType('tvshow' if isTvshow else 'movie') params.setParam('TVShowTitle', sName) params.setParam('entryUrl', URL_MAIN + sUrl) params.setParam('sThumbnail', sThumbnail) params.setParam('isTvshow', 'false') oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: isMatchNextPage, sNextUrl = cParser().parseSingleResult( sHtmlContent, '<a[^>]href="([^"]+)">N') if isMatchNextPage: params.setParam('sUrl', URL_MAIN + sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('tvshows' if 'staffel' in sUrl.lower() else 'movies') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) sHtmlContent = oRequest.request() pattern = '<div[^>]*class="col-md-[^"]*"[^>]*>.*?' # start element pattern += '<a[^>]*href="([^"]*)"[^>]*>.*?' # url pattern += '<img[^>]*src="([^"]*)"[^>]*>.*?' # thumbnail pattern += '<h3>(.*?)<span[^>]*class="paragraph-end">.*?' # title pattern += '<\/div>' # end element isMatch, aResult = cParser.parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sUrl, sThumbnail, sName in aResult: sThumbnail = URL_MAIN + sThumbnail + cf oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showSeasons') oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) oGuiElement.setMediaType('tvshow') oGuiElement.setTVShowTitle(sName) params.setParam('sUrl', URL_MAIN + sUrl) oGui.addFolder(oGuiElement, params, True, total) if not sGui: pattern = 'pagination">.*?<a href="([^"]+)">></a>.*?</a></div>' isMatchNextPage, sNextUrl = cParser.parseSingleResult( sHtmlContent, pattern) if isMatchNextPage: params.setParam('sUrl', sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('tvshows') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)) sHtmlContent = oRequest.request() pattern = '<span class="center.*?<img src="([^"]+).*?<span[^>]class="movie-title">.*?' pattern += '<a[^>]href="([^"]+)"[^>]title="([^"]+)">.*?<span[^>]class="movie-release".*?(\d+).*?' pattern += "<p[^>]class='story'>([^<]+)" isMatch, aResult = cParser().parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sThumbnail, sUrl, sName, sYear, sDesc in aResult: if sSearchText and not cParser().search(sSearchText, sName): continue sThumbnail = cParser().replace('-\d+x\d+\.', '.', sThumbnail + cf) oGuiElement = cGuiElement(clear(sName), SITE_IDENTIFIER, 'showHosters') oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) oGuiElement.setDescription(sDesc) oGuiElement.setYear(sYear) oGuiElement.setMediaType('movie') params.setParam('entryUrl', sUrl) oGui.addFolder(oGuiElement, params, False, total) if not sGui: isMatchNextPage, sNextUrl = cParser().parseSingleResult( sHtmlContent, "<link[^>]rel='next'[^>]href='([^']+)") if isMatchNextPage: params.setParam('sUrl', sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('movies') oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(entryUrl) if sSearchText: pattern = 'sres-wrap.*?href="([^"]+).*?src="([^"]+).*?alt="([^"]+)' else: pattern = 'class="short">.*?href="([^"]+).*?src="([^"]+).*?alt="([^"]+)' sHtmlContent = oRequest.request() isMatch, aResult = cParser().parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sUrl, sThumbnail, sName in aResult: sThumbnail = URL_MAIN + sThumbnail + cf if sSearchText and not cParser().search(sSearchText, sName): continue oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showHosters') oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) oGuiElement.setMediaType('movie') params.setParam('entryUrl', sUrl) oGui.addFolder(oGuiElement, params, False, total) if not sGui: pattern = 'pnext"><a href="([^"]+)' isMatchNextPage, sNextUrl = cParser.parseSingleResult( sHtmlContent, pattern) if isMatchNextPage: params.setParam('sUrl', sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('movie') oGui.setEndOfDirectory()
def load(): logger.info("Load %s" % SITE_NAME) parms = ParameterHandler() oGui = cGui() oRequest = cRequestHandler(URL_MAIN) sHtmlContent = oRequest.request() parms.setParam('cf', cRequestHandler.createUrl(URL_MAIN, oRequest)) parms.setParam('sUrl', URL_NEWS) parms.setParam('page', 1) parms.setParam('mediaType', 'news') oGui.addFolder(cGuiElement('Neues von Heute', SITE_IDENTIFIER, 'showNews'), parms) parms.setParam('sUrl', URL_MOVIE_PAGE) parms.setParam('mediaType', 'movie') oGui.addFolder(cGuiElement('Filme', SITE_IDENTIFIER, 'showMovieMenu'), parms) parms.setParam('sUrl', URL_SERIE_PAGE) parms.setParam('mediaType', 'series') oGui.addFolder(cGuiElement('Serien', SITE_IDENTIFIER, 'showSeriesMenu'), parms) parms.setParam('sUrl', URL_DOCU_PAGE) parms.setParam('mediaType', 'documentation') oGui.addFolder(cGuiElement('Dokumentationen', SITE_IDENTIFIER, 'showDocuMenu'), parms) parms.setParam('sUrl', URL_SEARCH) parms.setParam('mediaType', '') oGui.addFolder(cGuiElement('Suche', SITE_IDENTIFIER, 'showSearch'), parms) oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') iPage = int(params.getValue('page')) oRequest = cRequestHandler(entryUrl + '&page=' + str(iPage) if iPage > 0 else entryUrl, ignoreErrors=(sGui is not False)) oRequest.addHeaderEntry('Referer', URL_MAIN) oRequest.addHeaderEntry('Upgrade-Insecure-Requests', '1') sHtmlContent = oRequest.request() pattern = '<ul[^>]class="products row">(.*?)</ul>' isMatch, sContainer = cParser.parseSingleResult(sHtmlContent, pattern) if isMatch: pattern = '<div class="box-product clearfix" data-popover.*?href="([^"]+).*?data-src="([^"]+).*?title=".*?">([^<]+)' isMatch, aResult = cParser.parse(sContainer, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return cf = cRequestHandler.createUrl(entryUrl, oRequest) total = len(aResult) for sUrl, sThumbnail, sName in aResult: sName = sName.replace(' stream', '') if sSearchText and not cParser().search(sSearchText, sName): continue sThumbnail = sThumbnail.replace('_thumb', '') + cf isMatch, sYear = cParser.parse(sName, "(.*?)\((\d*)\)") for name, year in sYear: sName = name sYear = year break isTvshow = True if 'staffel' in sUrl or 'staffel' in sName else False if URL_PARMS_ORDER_YEAR in entryUrl and not isTvshow: sName += ' (' + str(sYear) + ')' oGuiElement = cGuiElement( sName, SITE_IDENTIFIER, 'showEpisodes' if isTvshow else 'showHosters') oGuiElement.setMediaType('tvshow' if isTvshow else 'movie') oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) if sYear: oGuiElement.setYear(sYear) params.setParam('entryUrl', sUrl) params.setParam('sName', sName) params.setParam('sThumbnail', sThumbnail) oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: sPageNr = int(params.getValue('page')) if sPageNr == 0: sPageNr = 2 else: sPageNr += 1 params.setParam('page', int(sPageNr)) params.setParam('sUrl', entryUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('tvshows' if URL_SHOWS in entryUrl else 'movies') oGui.setEndOfDirectory()