def load(): # Logger-Eintrag logger.info("Load %s" % SITE_NAME) # GUI-Element erzeugen oGui = cGui() # ParameterHandler erzeugen params = ParameterHandler() # Einträge anlegen params.setParam('sUrl', URL_MOVIES) oGui.addFolder(cGuiElement('Filme', SITE_IDENTIFIER, 'showContentMenu'), params) params.setParam('sUrl', URL_SHOWS) oGui.addFolder(cGuiElement('Serien', SITE_IDENTIFIER, 'showContentMenu'), params) oGui.addFolder(cGuiElement('Suche', SITE_IDENTIFIER, 'showSearch')) # Liste abschließen oGui.setEndOfDirectory()
def showGenre(): oParams = ParameterHandler() sUrl = oParams.getValue('sUrl') sHtmlContent = cRequestHandler(sUrl).request() pattern = '<div[^>]*id="tabln%s"[^>]*>(.*?)</ul>' % oParams.getValue('sGenreId') isMatch, sContainer = cParser().parseSingleResult(sHtmlContent, pattern) if not isMatch: return pattern = '<a[^>]*href="([^"]+)"[^>]*>([^<]*)</a>' isMatch, aResult = cParser().parse(sContainer, pattern) if not isMatch: return oGui = cGui() for sUrl, sName in aResult: oParams.setParam('sUrl', URL_MAIN + sUrl) oGui.addFolder(cGuiElement(sName, SITE_IDENTIFIER, 'showEntries'), oParams) oGui.setEndOfDirectory()
def showSearchEntries(entryUrl=False, sGui=False, sSearchText=None): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') oRequest = cRequestHandler(URL_SEARCH) if sSearchText: oRequest.addHeaderEntry('X-Requested-With', 'XMLHttpRequest') oRequest.addParameters('val', sSearchText.strip) oRequest.setRequestType(1) sHtmlContent = oRequest.request() pattern = '<a[^>]* href="([^"]+)"[^>]*>([^<]+)' isMatch, aResult = cParser.parse(sHtmlContent, pattern) if not isMatch: return total = len(aResult) for sUrl, sName in aResult: oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showHosters') params.setParam('entryUrl', URL_MAIN + sUrl) oGui.addFolder(oGuiElement, params, False, total)
def load(): oParams = ParameterHandler() oGui = cGui() oParams.setParam('mediaType', 'series') oGui.addFolder( cGuiElement('Neue Episoden', SITE_IDENTIFIER, 'showNewEpisodesMenu'), oParams) oGui.addFolder( cGuiElement('Alle Serien', SITE_IDENTIFIER, 'showSeriesMenu'), oParams) oGui.addFolder(cGuiElement('Animes', SITE_IDENTIFIER, 'showAnimesMenu'), oParams) oParams.setParam('mediaType', 'movies') oGui.addFolder(cGuiElement('Filme', SITE_IDENTIFIER, 'showMoviesMenu'), oParams) oParams.setParam('mediaType', 'series') oGui.addFolder(cGuiElement('Genres', SITE_IDENTIFIER, 'showGenresMenu'), oParams) oGui.addFolder(cGuiElement('Suche', SITE_IDENTIFIER, 'showSearch'), oParams) oGui.setEndOfDirectory()
def showGenre(): oGui = cGui() params = ParameterHandler() sHtmlContent = cRequestHandler(URL_MAIN).request() parser = cParser() isMatch, sHtmlContainer = parser.parseSingleResult(sHtmlContent, '<select[^>]*class="sorter_genre"[^>]*>.*?</select>') if not isMatch: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return isMatch, aResult = parser.parse(sHtmlContainer, "<option[^>]*value='([^']*)'[^>]*>([^<]+)</option>") if not isMatch: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return for sValue, sTitle in aResult: params.setParam('sUrl', URL_GENRE % sValue) oGui.addFolder(cGuiElement(sTitle, SITE_IDENTIFIER, 'showEntries'), params) oGui.setEndOfDirectory()
def showContentMenu(): oGui = cGui() params = ParameterHandler() entryUrl = params.getValue('sUrl') params.setParam('sUrl', entryUrl + (ORDER_DESC % 0)) oGui.addFolder(cGuiElement('Neuste', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('sUrl', entryUrl + (ORDER_DESC % 1)) oGui.addFolder(cGuiElement('A-Z', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('sUrl', entryUrl + (ORDER_DESC % 2)) oGui.addFolder(cGuiElement('Aufrufe', SITE_IDENTIFIER, 'showEntries'), params) if 'filme' in entryUrl: params.setParam('sUrl', entryUrl + (ORDER_DESC % 3)) oGui.addFolder( cGuiElement('IMDB-Wertung', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('sUrl', entryUrl) oGui.addFolder(cGuiElement('Genre', SITE_IDENTIFIER, 'showGenre'), params) oGui.setEndOfDirectory()
def showSearchEntries(entryUrl = False, sGui = False): oGui = sGui if sGui else cGui() params = ParameterHandler() if not entryUrl: entryUrl = params.getValue('sUrl') sHtmlContent = cRequestHandler(entryUrl).request() pattern = 'class="short">.*?href="([^"]+)"[^>]class="title">([^<(]+)[^>]([^")]+).*?<img[^>]src="([^"]+)".*?>([^<]+)</p>' aResult = cParser().parse(sHtmlContent, pattern) if not aResult[0]: if not sGui: oGui.showInfo('xStream','Es wurde kein Eintrag gefunden') return total = len (aResult[1]) util = cUtil() for sEntryUrl, sName, sYear, sThumbnail, sDescription in aResult[1]: oGuiElement = cGuiElement(util.unescape(sName.decode('utf-8')).encode('utf-8'), SITE_IDENTIFIER, 'showHosters') oGuiElement.setThumbnail(URL_MAIN +sThumbnail) oGuiElement.setDescription(util.unescape(sDescription.decode('utf-8')).encode('utf-8')) oGuiElement.setYear(sYear) oGuiElement.setMediaType('movie') params.setParam('entryUrl', sEntryUrl) oGui.addFolder(oGuiElement, params, False, total) return
def showMovieMenu(): sHtmlContent = cRequestHandler(URL_MAIN).request() pattern = '<input[^>]*name="kind"[^>]*value="(.*?)"[^>]*>' # kind aResult = cParser().parse(sHtmlContent, pattern) if not aResult[0]: return oGui = cGui() params = ParameterHandler() for sKind in aResult[1]: params.setParam('kind', sKind) oGui.addFolder( cGuiElement(sKind.title(), SITE_IDENTIFIER, 'searchRequest'), params) oGui.addFolder(cGuiElement('Genre', SITE_IDENTIFIER, 'showGenresMenu')) oGui.addFolder( cGuiElement('Erscheinungszeitraum', SITE_IDENTIFIER, 'showYearSearch')) oGui.addFolder( cGuiElement('Geringstes Rating', SITE_IDENTIFIER, 'showRatingSearch')) oGui.setEndOfDirectory()
def getHosterUrl(sUrl=False): params = ParameterHandler() if not sUrl: sUrl = params.getValue('url') results = [] if 'gstream.to/secure/' in sUrl: sHoster = sUrl.split('secure/')[-1].split('/')[0] oRequest = cRequestHandler(sUrl, False) oRequest.addHeaderEntry('Cookie', params.getValue('securityCookie')) oRequest.addHeaderEntry('Referer', params.getValue('movieUrl')) try: oRequest.request() sUrl = oRequest.getRealUrl() sUrl = 'http://%s%s' % (sHoster, sUrl.split(sHoster)[-1]) except: pass result = {} result['streamUrl'] = sUrl result['resolved'] = False results.append(result) return results
def showGenre(): oGui = cGui() params = ParameterHandler() oRequestHandler = cRequestHandler(params.getValue('sUrl')) sHtmlContent = oRequestHandler.request() # Get the URL pattern = '<a[^>]*?class="CatInf"[^>]*?href="(.*?)"[^>]*?>.*?' # Get the entry count pattern += '<div[^>]*?class="CatNumInf"[^>]*?>(\d+)</div>.*?' # Get the genre name pattern += '<div[^>]*?class="CatNameInf"[^>]*?>([^<>]+)</div>' aResult = cParser().parse(sHtmlContent, pattern) if not aResult[0]: return for sUrl, sNum, sName in aResult[1]: if not sUrl or not sNum or not sName: return oGuiElement = cGuiElement("%s (%d)" %(sName, int(sNum)), SITE_IDENTIFIER, 'showEntries') params.setParam('sUrl', sUrl) params.setParam('mediaTypePageId', 1) oGui.addFolder(oGuiElement, params) oGui.setEndOfDirectory()
def _addEntry(oGui, sName, mId): oParams = ParameterHandler() oParams.setParam('id', mId) info = loadInformation(mId) isFolder = False if info: isFolder = info[4] is not False oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showSeasons' if info[4] else 'showHosters') oGuiElement.setTitle(info[5]) oGuiElement.setDescription(info[0]) oGuiElement.setLanguage(info[3]) oGuiElement.setThumbnail(info[1]) oGuiElement.setYear(info[2]) oParams.setParam('lang', info[3]) oGui.addFolder(oGuiElement, oParams, bIsFolder=isFolder, isHoster=not isFolder)
def showSearchEntries(entryUrl=False, sGui=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 = '</a>.*?</div>.*?</div>.*?<a[^>]href="/de/stream/([\d]+).*?src="([^"]+)" alt="([^"]+)"' isMatch, aResult = cParser().parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return total = len(aResult) for sId, sThumbnail, sName in aResult: oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showHosters') oGuiElement.setThumbnail(sThumbnail) oGuiElement.setFanart(sThumbnail) params.setParam('id', sId) oGui.addFolder(oGuiElement, params, False, total) if not sGui: oGui.setEndOfDirectory()
def showGenres(): logger.info('load displayGenreSite') sPattern = '<td class="Title"><a.*?href="/Genre/([^"]+)">([^<]+)</a>.*?Tipp-([0-9]+).html">' oParams = ParameterHandler() sSecurityValue = oParams.getValue('securityCookie') # request sHtmlContent =__getHtmlContent(URL_GENRE_PAGE, sSecurityValue) # parse content oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) oGui = cGui() if (aResult[0] == True): for aEntry in aResult[1]: iGenreId = aEntry[2] __createMenuEntry(oGui, 'showCharacters', aEntry[1], {'page':1, 'mediaType':'fGenre', 'mediaTypePageId': iGenreId, 'securityCookie':sSecurityValue, 'sUrl':URL_MOVIE_PAGE}) oGui.setEndOfDirectory()
def showSearchEntries(entryUrl=False, sGui=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 = 'poster">[^>]*<a[^>]*href="([^"]+)"><img[^>]*src="([^"]+).*?">([^"]+)</a></h2>.*?shortstory_bottom">([^<]+)' isMatch, aResult = cParser.parse(sHtmlContent, pattern) if not isMatch: return total = len(aResult) for sUrl, sThumbnail, sName, sDescription in aResult: oGuiElement = cGuiElement(cUtil.removeHtmlTags(sName), SITE_IDENTIFIER, 'showHosters') oGuiElement.setThumbnail(URL_MAIN + sThumbnail) oGuiElement.setDescription( cUtil.unescape(sDescription.decode('utf-8')).encode('utf-8')) params.setParam('entryUrl', sUrl) oGui.addFolder(oGuiElement, params, False, total)
def load(): logger.info("Load %s" % SITE_NAME) oGui = cGui() params = ParameterHandler() params.setParam('sUrl', URL_KINO) oGui.addFolder(cGuiElement('Kino Filme', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('sUrl', URL_FILME) oGui.addFolder(cGuiElement('Filme', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('sUrl', URL_SERIES) oGui.addFolder(cGuiElement('Serien', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('sUrl', URL_GENRES_FILM) oGui.addFolder(cGuiElement('Film Genre', SITE_IDENTIFIER, 'showGenre'), params) params.setParam('sUrl', URL_GENRES_SERIE) oGui.addFolder(cGuiElement('Serien Genre', SITE_IDENTIFIER, 'showGenre'), params) oGui.addFolder(cGuiElement('Suche', SITE_IDENTIFIER, 'showSearch')) oGui.setEndOfDirectory()
def showGenre(): oGui = cGui() params = ParameterHandler() oRequestHandler = cRequestHandler(params.getValue('sUrl')) sHtmlContent = oRequestHandler.request() pattern = '<a[^>]*?class="CatInf"[^>]*?href="([^"]+).*?' # Link pattern += '<div[^>]*?class="CatNumInf">(\d+).*?' # count pattern += '<div[^>]*?class="CatNameInf">([^<]+)' # Name isMatch, aResult = cParser.parse(sHtmlContent, pattern) if not isMatch: oGui.showInfo('streamon', 'Es wurde kein Eintrag gefunden') return for sUrl, sCount, sName in aResult: params.setParam('sUrl', sUrl) params.setParam('PageId', 1) oGui.addFolder( cGuiElement("%s (%d)" % (sName, int(sCount)), SITE_IDENTIFIER, 'showEntries'), params) oGui.setEndOfDirectory()
def showGenre(): oGui = cGui() params = ParameterHandler() entryUrl = params.getValue('sUrl') sHtmlContent = cRequestHandler(entryUrl).request() isMatch, sContainer = cParser.parseSingleResult( sHtmlContent, 'id="categories.*?class="clear">') if isMatch: pattern = '<a[^>]href="([^"]+)"[^>]*>([^<]+)</a>([^<]+)' isMatch, aResult = cParser.parse(sContainer, pattern) if not isMatch: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return for sUrl, sTitle, Nr in aResult: params.setParam('sUrl', URL_MAIN + sUrl) oGui.addFolder( cGuiElement(sTitle + Nr, SITE_IDENTIFIER, 'showEntries'), params) oGui.setEndOfDirectory()
def showGenres(): oGui = cGui() params = ParameterHandler() sHtmlContent = cRequestHandler(URL_MAIN).request() pattern = 'Filme</a><ul[^>]*class="sub-menu">.*?</ul></li><li[^>]*id' isMatch, sHtmlContainer = cParser.parseSingleResult(sHtmlContent, pattern) if isMatch: pattern = '<a[^>]*href="([^"]+)".*?>([^"]+)</a>' isMatch, aResult = cParser.parse(sHtmlContainer, pattern) if not isMatch: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return for sUrl, sName in aResult: if sUrl.startswith('//'): sUrl = 'https:' + sUrl params.setParam('sUrl', sUrl) oGui.addFolder(cGuiElement(sName, SITE_IDENTIFIER, 'showEntries'), params) oGui.setEndOfDirectory()
def showGenresMenu(): logger.info('load showGenresMenu') oParams = ParameterHandler() sPattern = '<li class="cat-item.*?href="(.*?)"\s*?>(.*?)<' # request sHtmlContent = __getHtmlContent(URL_MAIN) # parse content oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) oGui = cGui() if aResult[0]: for link, title in aResult[1]: guiElement = cGuiElement(title, SITE_IDENTIFIER, 'showMovies') #guiElement.setMediaType('fGenre') # not necessary oParams.addParams({'sUrl': link, 'bShowAllPages': True}) oGui.addFolder(guiElement, oParams) oGui.setEndOfDirectory()
def load(): logger.info("Load %s" % SITE_NAME) oGui = cGui() params = ParameterHandler() params.setParam('sUrl', URL_Kinofilme) oGui.addFolder(cGuiElement('Kinofilme', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('sUrl', URL_FILME_HD) oGui.addFolder(cGuiElement('Filme in HD', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('sUrl', URL_SERIEN) oGui.addFolder(cGuiElement('Serien', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('sUrl', URL_TVSHOWS) oGui.addFolder(cGuiElement('TV-Shows', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('sUrl', URL_Kinofilme) # params.setParam('valueType', 'vert_nav') oGui.addFolder(cGuiElement('Genre', SITE_IDENTIFIER, 'showValueList')) oGui.addFolder(cGuiElement('Suche', SITE_IDENTIFIER, 'showSearch')) oGui.setEndOfDirectory()
def showHosters(): sUrl = ParameterHandler().getValue('entryUrl') sHtmlContent = cRequestHandler(sUrl).request() pattern = '<v-flex>[^>]*<v-btn.*?</v-flex>' isMatch, sHtmlContainer = cParser.parse(sHtmlContent, pattern) pattern = '<meta name="csrf-token" content="([^"]+)">' isMatch, token = cParser.parseSingleResult(sHtmlContent, pattern) hosters = [] for a in sHtmlContainer: pattern = 'x">([^<]+)</v-btn>' isMatch, sQuality = cParser.parseSingleResult(a, pattern) pattern = "recaptcha[^>]'([^']+)', '([^']+)', '([^']+).*?" pattern += '">.*?>([^<]+)' isMatch, aResult = cParser().parse(a, pattern) for e, h, sLang, sName in aResult: link = getLinks(sUrl, e, h, token, sLang) hoster = {'link': link, 'name': sName.strip() + ' ' + sQuality.strip()} hosters.append(hoster) if hosters: hosters.append('getHosterUrl') return hosters
def showContentMenu(): oGui = cGui() params = ParameterHandler() params.setParam('order', 'titleAsc') oGui.addFolder(cGuiElement('A-Z', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('order', 'release_dateDesc') oGui.addFolder( cGuiElement('Veröffentlichungsdatum', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('order', 'mc_user_scoreDesc') oGui.addFolder( cGuiElement('Userbewertungen', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('order', 'mc_num_of_votesDesc') oGui.addFolder( cGuiElement('Anzahl Userbewertungen', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('order', 'titleAsc') oGui.addFolder(cGuiElement('Genre', SITE_IDENTIFIER, 'showGenre'), params) params.setParam('order', 'titleAsc') oGui.addFolder(cGuiElement('Suche', SITE_IDENTIFIER, 'showSearch'), params) oGui.setEndOfDirectory()
def showHosters(): oParams = ParameterHandler() sUrl = oParams.getValue('entryUrl') sHtmlContent = cRequestHandler(sUrl).request() sPattern = '<td[^>]*align="center"[^>]*valign="top"><a[^>]*href="([^"]+).*?src="/([^".]+)' aResult = cParser().parse(sHtmlContent, sPattern) hosters = [] if aResult[1]: for sUrl, sName in aResult[1]: # diry fix for old iconnames if sName == 'putlocker': sName = 'vodlocker' elif sName == 'sockshare': sName = 'shared.sx' hoster = {} hoster['link'] = sUrl hoster['name'] = sName hosters.append(hoster) if hosters: hosters.append('getHosterUrl') return hosters
def showContentMenu(): oGui = cGui() params = ParameterHandler() baseURL = params.getValue('sUrl') oGui.addFolder(cGuiElement('Top 100', SITE_IDENTIFIER, 'showTop100Menu'), params) params.setParam('sUrl', baseURL + PARMS_GENRE_ALL + PARMS_SORT_LAST_UPDATE) oGui.addFolder( cGuiElement('Letztes Update', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('sUrl', baseURL + PARMS_GENRE_ALL + PARMS_SORT_BLOCKBUSTER) oGui.addFolder(cGuiElement('Blockbuster', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('sUrl', baseURL + PARMS_GENRE_ALL + PARMS_SORT_IMDB_RATING) oGui.addFolder(cGuiElement('IMDB Rating', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('sUrl', baseURL + PARMS_GENRE_ALL + PARMS_SORT_YEAR) oGui.addFolder(cGuiElement('Jahr', SITE_IDENTIFIER, 'showEntries'), params) params.setParam('sUrl', baseURL + PARMS_GENRE_ALL + PARMS_SORT_LAST_UPDATE) oGui.addFolder(cGuiElement('Genre', SITE_IDENTIFIER, 'showGenreList'), params) oGui.setEndOfDirectory()
def showSeasons():# Danke Lynx187 oGui = cGui() params = ParameterHandler() selectedShow = params.getValue('selectedShow') sHtmlContent = cRequestHandler(URL_SERIES).request() pattern = '<h3>%s</h3>\s*<p>\|(.*?)</p>' % selectedShow aResult = cParser().parse(sHtmlContent, pattern) pattern = 'href="([^"]+)">([^<]+)<' aResult = cParser().parse(aResult[1][0], pattern) if not aResult[0]: oGui.showInfo('streamon','Es wurde kein Eintrag gefunden') return total = len(aResult[1]) for link, name in aResult[1]: oGuiElement = cGuiElement(name, SITE_IDENTIFIER, 'showEntries') oGuiElement.setSeason(name.split(' ')[-1]) oGuiElement.setMediaType('season') params.setParam('sUrl', link) oGui.addFolder(oGuiElement, params, True, total) oGui.setView('seasons') oGui.setEndOfDirectory()
def showGenre(): sHtmlContent = cRequestHandler(URL_MAIN).request() pattern = '>Genre[^>]Listen</a>.*?</ul>' isMatch, sContainer = cParser().parseSingleResult(sHtmlContent, pattern) if not isMatch: return pattern = '<a[^>]href="([^"]+).*?">([^<]+)' isMatch, aResult = cParser().parse(sContainer, pattern) if not isMatch: return oGui = cGui() params = ParameterHandler() for sUrl, sName in aResult: params.setParam('sUrl', sUrl) oGui.addFolder(cGuiElement(sName, SITE_IDENTIFIER, 'showEntries'), params) oGui.setEndOfDirectory()
def showEpisodes(): oGui = cGui() params = ParameterHandler() sThumbnail = params.getValue('sThumbnail') sSeason = params.getValue('sSeason') news_id = params.getValue('news_id') sTVShowTitle = params.getValue('sName') oRequest = cRequestHandler(URL_EPISODE) oRequest.addParameters('news_id', news_id) oRequest.addParameters('season', sSeason) oRequest.setRequestType(1) sHtmlContent = oRequest.request() if not sHtmlContent: return data = json.loads(sHtmlContent) if "options" in data: sHtmlContent = data["options"] pattern = '<option[^>]*value="(\d+)"[^>]*>([^<]+(\d+))\s*</option>' isMatch, aResult = cParser.parse(sHtmlContent, pattern) if not isMatch: return total = len(aResult) for seriesId, sName, Episodenr in aResult: oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'getHosters') oGuiElement.setTVShowTitle(sTVShowTitle) oGuiElement.setSeason(sSeason) oGuiElement.setEpisode(Episodenr) oGuiElement.setThumbnail(sThumbnail) oGuiElement.setMediaType('episode') params.setParam('seriesId', seriesId) 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 = "type_(\d).*?title='([^']+)[^>]*href='([^']+).*?src='([^']+)" isMatch, aResult = cParser.parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return total = len(aResult) for smType, sName, sUrl, sThumbnail in aResult: if sSearchText and not cParser().search(sSearchText, sName): continue if smType == '3': continue if sThumbnail.startswith('//'): sThumbnail = 'https:' + sThumbnail isTvshow = True if "1" in smType 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) oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: pattern = "class='active'>\d</a><a[^>]href='([^']+)" isMatchNextPage, sNextUrl = cParser.parseSingleResult( sHtmlContent, pattern) if isMatchNextPage: params.setParam('sUrl', URL_MAIN + sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('tvshows' if 'download_1' 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') sHtmlContent = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False)).request() pattern = 'poster.*?<img src="([^"]+).*?href="([^"]+)">([^"]+)</a>.*?body">(.*?)div.*?bottom">([^<]+)' isMatch, aResult = cParser.parse(sHtmlContent, pattern) if not isMatch: if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden') return total = len(aResult) for sThumbnail, sUrl, sName, sDummy, sDesc in aResult: if sSearchText and not cParser().search(sSearchText, cUtil.cleanse_text(sName)): continue oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showHosters') oGuiElement.setThumbnail(URL_MAIN + sThumbnail) oGuiElement.setFanart(URL_MAIN + sThumbnail) oGuiElement.setDescription(sDesc) isYear, sYear = cParser.parse(sDummy, '>([\d]+)<') if isYear: oGuiElement.setYear(sYear[0]) oGuiElement.setMediaType('movie') if sUrl.startswith('http'): params.setParam('entryUrl', sUrl) else: params.setParam('entryUrl', URL_MAIN + sUrl) oGui.addFolder(oGuiElement, params, False, total) if not sGui: pattern = 'class="swchItemA1"[^>]*>.*?</b>\s*<a[^>]*href="([^"]+)"' isMatchNextPage, sNextUrl = cParser.parseSingleResult( sHtmlContent, pattern) if isMatchNextPage: params.setParam('sUrl', URL_MAIN + 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') sHtmlContent = __getContent(entryUrl) sPattern = '<div[^>]*class="poster">.*?<img[^>]*src="([^"]+).*?<a[^>]*href="([^"]+)">([^<]+).*?(?:<span>([^<]+)?).*?<div[^>]*class="texto">([^<]+)' isMatch, aResult = cParser.parse(sHtmlContent, sPattern) 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: sThumbnail = re.sub('-\d+x\d+\.', '.', sThumbnail) isTvshow = True if "serie" in sUrl else False if sThumbnail and not sThumbnail.startswith('http'): sThumbnail = URL_MAIN + sThumbnail oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showSeasons' if isTvshow else 'showHosters') oGuiElement.setMediaType('tvshow' if isTvshow else 'movie') oGuiElement.setThumbnail(sThumbnail) if sYear: oGuiElement.setYear(sYear) oGuiElement.setDescription(sDesc) sUrl = cUtil.quotePlus(sUrl) params.setParam('entryUrl', sUrl) params.setParam('sName', sName) params.setParam('sThumbnail', sThumbnail) oGui.addFolder(oGuiElement, params, isTvshow, total) if not sGui: sPattern = '"next"[^>]*href="([^"]+)' isMatchNextPage, sNextUrl = cParser.parseSingleResult( sHtmlContent, sPattern) if isMatchNextPage: params.setParam('sUrl', sNextUrl) oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params) oGui.setView('tvshows' if 'serie' in sUrl else 'movies') oGui.setEndOfDirectory()