def showEpisodes(): oGui = cGui() params = ParameterHandler() sTVShowTitle = params.getValue('TVShowTitle') entryUrl = params.getValue('entryUrl') sSeasonNr = params.getValue('sSeasonNr') sHtmlContent = cRequestHandler(entryUrl).request() pattern = '<span[^>]*class="se-t[^"]*">%s</span>.*?<ul[^>]*class="episodios"[^>]*>(.*?)</ul>' % sSeasonNr isMatch, sContainer = cParser.parseSingleResult(sHtmlContent, pattern) if not isMatch: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return pattern = '<a[^>]*href="([^"]+)"[^>]*>\s*(?:<img[^>]*src="([^"]+)?).*?<div[^>]*class="numerando">[^-]*-\s*(\d+)\s*?</div>.*?<a[^>]*>([^<]*)</a>' isMatch, aResult = cParser.parse(sContainer, pattern) if not isMatch: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return total = len(aResult) for sUrl, sThumbnail, sEpisodeNr, sName in aResult: oGuiElement = cGuiElement(sName.strip(), SITE_IDENTIFIER, 'showHosters') oGuiElement.setTVShowTitle(sTVShowTitle) oGuiElement.setSeason(sSeasonNr) oGuiElement.setEpisode(sEpisodeNr) sThumbnail = cParser.replace('-\d+x\d+\.', '.', sThumbnail) oGuiElement.setThumbnail(sThumbnail) oGuiElement.setMediaType('episode') params.setParam('entryUrl', sUrl.strip()) oGui.addFolder(oGuiElement, params, False, total) oGui.setView('episodes') 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') sHtmlContent = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)).request() pattern = '<div[^>]*class="poster">.*?<img[^>]*src="([^"]+).*?<a[^>]*href="([^"]+)">([^<]+).*?(?:<span>([^<]+)?).*?(?:<div[^>]*class="texto">([^<]+)?)' isMatch, aResult = cParser.parse(sHtmlContent, pattern) if not isMatch: pattern = '<div[^>]*class="search_page_form">.*?</div></div></div>' isMatch, sHtmlContainer = cParser.parseSingleResult( sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return pattern = '<img[^>]*src="([^"]+).*?<a[^>]*href="([^"]+)">([^<]+)</a>.*?(?:<span[^>]*class="year">([^<]+)?).*?<p>([^<]+)' isMatch, aResult = cParser.parse(sHtmlContainer, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return 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) isTvshow = True if "tvshow" 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) oGuiElement.setDescription(sDesc) params.setParam('entryUrl', sUrl) params.setParam('sName', sName) params.setParam('sThumbnail', sThumbnail) oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: pattern = "class=[^>]current.*?href='([^']+)" isMatchNextPage, sNextUrl = cParser.parseSingleResult( sHtmlContent, pattern) if isMatchNextPage: params.setParam('sUrl', sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('tvshows' if 'serien' 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() 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()