def showHostersSeries(): params = ParameterHandler() if params.exist("sUrl") and params.exist("sMovieTitle"): sUrl = params.getValue("sUrl") sMovieTitle = params.getValue("sMovieTitle") sHtmlContent = cRequestHandler(sUrl).request() sPattern = '<tr id="tablemoviesindex2".*?<a href="([^"]+)".*? width="16">([^<]+)<' aResult = cParser().parse(sHtmlContent.replace("\\", ""), sPattern) if aResult[0] == True: hosters = [] previousName = "" iMatches = 2 for aEntry in aResult[1]: sHoster = aEntry[1].strip() hoster = {} hoster["name"] = sHoster hoster["link"] = URL_MAIN + "/" + aEntry[0] if hoster["name"] == previousName: hoster["displayedName"] = hoster["name"] + " (" + str(iMatches) + ")" iMatches += 1 else: previousName = hoster["name"] iMatches = 2 hosters.append(hoster) hosters.append("showHoster") return hosters
def showHostersSeries(): oInputParameterHandler = ParameterHandler() if (oInputParameterHandler.exist('sUrl') and oInputParameterHandler.exist('sMovieTitle')): sUrl = oInputParameterHandler.getValue('sUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sHtmlContent = cRequestHandler(sUrl).request() sPattern = '<tr id="tablemoviesindex2".*?<a href="([^"]+)".*? width="16">([^<]+)<' aResult = cParser().parse(sHtmlContent.replace('\\',''), sPattern) if (aResult[0] == True): hosters = [] previousName = '' iMatches = 2 for aEntry in aResult[1]: sHoster = aEntry[1].strip() hoster = {} hoster['name'] = sHoster hoster['link'] = URL_MAIN + aEntry[0] if hoster['name'] == previousName: hoster['displayedName'] = hoster['name'] + ' ('+str(iMatches)+')' iMatches += 1 else: previousName = hoster['name'] iMatches = 2 hosters.append(hoster) hosters.append('showHoster') return hosters
def showCharacters(): logger.info('load showCharacters') oGui = cGui() oParams = ParameterHandler() sSecurityValue = oParams.getValue('securityCookie') if oParams.exist('sUrl') and oParams.exist('page') and oParams.exist('mediaType'): siteUrl = oParams.getValue('sUrl') # iPage = oParams.getValue('page') # sMediaType = oParams.getValue('mediaType') # request sHtmlContent = __getHtmlContent(siteUrl, sSecurityValue) # parse content sPattern = 'class="LetterMode.*?>([^>]+)</a>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0]: for aEntry in aResult[1]: oGuiElement = cGuiElement(aEntry, SITE_IDENTIFIER, 'ajaxCall') # oOutputParameterHandler = ParameterHandler() oParams.setParam('character', aEntry[0]) # oOutputParameterHandler.addParameter('page', iPage) # oOutputParameterHandler.addParameter('mediaType', sMediaType) # oOutputParameterHandler.addParameter('securityCookie', sSecurityValue) if oParams.exist('mediaTypePageId'): sMediaTypePageId = oParams.getValue('mediaTypePageId') oParams.setParam('mediaTypePageId', sMediaTypePageId) oGui.addFolder(oGuiElement, oParams) oGui.setEndOfDirectory()
def showMovies(): oGui = cGui() oParams = ParameterHandler() if (oParams.exist(PARAM_URL_KEY)): sUrl = oParams.getValue(PARAM_URL_KEY) sRootUrl = sUrl iPage = 1 if (oParams.exist(PARAM_PAGE_KEY)): iPage = oParams.getValue(PARAM_PAGE_KEY) sRootUrl = oParams.getValue(PARAM_ROOTURL_KEY) if (sRootUrl.startswith(URL_MOVIES_ALL) | sRootUrl.startswith(URL_SEARCH)): sPattern = PATTERN_LIST elif (sRootUrl.startswith(URL_CURRENT_MOVIES) | sRootUrl.startswith(URL_NEW_MOVIES) | sRootUrl.startswith(URL_MAIN)): sPattern = PATTERN_DIVBOX else: oGui.showError('Error','wrong root url') return _parseMedia(sUrl,sRootUrl,iPage,sPattern, oGui) else: oGui.showError('Error','wrong page count') return else: oGui.showError('Error','No request url found') oGui.setEndOfDirectory()
def onPlayBackStopped(self): logger.info('Playback stopped') if self.playedTime == 0 and self.totalTime == 999999: self.streamSuccess = False logger.error('Kodi failed to open stream') self.streamFinished = True if cConfig().getSetting('metahandler') == 'true': META = True try: from metahandler import metahandlers except Exception as e: META = False logger.info("Could not import package 'metahandler'") logger.info(e) else: META = False if META: try: percent = self.playedTime / self.totalTime logger.info('Watched percent ' + str(int(percent * 100))) if percent >= 0.80: logger.info('Attemt to change watched status') meta = metahandlers.MetaData() params = ParameterHandler() season = '' episode = '' mediaType = params.getValue('mediaType') imdbID = params.getValue('imdbID') name = params.getValue('Title') TVShowTitle = params.getValue('TVShowTitle') if params.exist('season'): season = params.getValue('season') if int(season) > 0: mediaType = 'season' if params.exist('episode'): episode = params.getValue('episode') if int(episode) > 0: mediaType = 'episode' if imdbID and mediaType: if mediaType == 'movie' or mediaType == 'tvshow': metaInfo = meta.get_meta(self._mediaType, self.__sTitle, imdbID) elif mediaType == 'season': metaInfo = meta.get_seasons( TVShowTitle, imdbID, str(season)) elif mediaType == 'episode' and TVShowTitle: metaInfo = meta.get_episode_meta( TVShowTitle, imdbID, str(season), str(episode)) if metaInfo and int(metaInfo['overlay']) == 6: meta.change_watched(mediaType, name, imdbID, season=season, episode=episode) xbmc.executebuiltin("XBMC.Container.Refresh") else: logger.info( 'Could not change watched status; imdbID or mediaType missing' ) except Exception as e: logger.info(e)
def showCharacters(): logger.info('load showCharacters') oGui = cGui() oParams = ParameterHandler() sSecurityValue = oParams.getValue('securityCookie') if oParams.exist('sUrl') and oParams.exist('page') and oParams.exist('mediaType'): siteUrl = oParams.getValue('sUrl') # iPage = oParams.getValue('page') # sMediaType = oParams.getValue('mediaType') # request sHtmlContent = __getHtmlContent(siteUrl, sSecurityValue) # parse content pattern = 'class="LetterMode.*?>([^>]+)</a>' oParser = cParser() aResult = oParser.parse(sHtmlContent, pattern) if aResult[0]: for aEntry in aResult[1]: oGuiElement = cGuiElement(aEntry, SITE_IDENTIFIER, 'ajaxCall') # params = ParameterHandler() oParams.setParam('character', aEntry[0]) # params.addParameter('page', iPage) # params.addParameter('mediaType', sMediaType) # params.addParameter('securityCookie', sSecurityValue) if oParams.exist('mediaTypePageId'): sMediaTypePageId = oParams.getValue('mediaTypePageId') oParams.setParam('mediaTypePageId', sMediaTypePageId) oGui.addFolder(oGuiElement, oParams) oGui.setEndOfDirectory()
def __getHtmlContent(sUrl = None, sSecurityValue=None): params = ParameterHandler() # Test if a url is available and set it if sUrl is None and not params.exist('siteUrl'): logger.info("There is no url we can request.") return False else: if sUrl is None: sUrl = params.getValue('siteUrl') # Test if a security value is available if sSecurityValue is None: if params.exist('securityCookie'): sSecurityValue = params.getValue('securityCookie') else : sSecurityValue = '' # Make the request oRequest = cRequestHandler(sUrl) #oRequest.addHeaderEntry('Cookie', sSecurityValue) #oRequest.addHeaderEntry('Accept', '*/*') #oRequest.addHeaderEntry('Host', 'gstream.to') return oRequest.request()
def showHostersSeries(): params = ParameterHandler() if (params.exist('sUrl') and params.exist('sMovieTitle')): sUrl = params.getValue('sUrl') sMovieTitle = params.getValue('sMovieTitle') sHtmlContent = cRequestHandler(sUrl).request() sPattern = '<tr id="tablemoviesindex2".*?<a href="([^"]+)".*? width="16">([^<]+)<' aResult = cParser().parse(sHtmlContent.replace('\\', ''), sPattern) if (aResult[0] == True): hosters = [] previousName = '' iMatches = 2 for aEntry in aResult[1]: sHoster = aEntry[1].strip() hoster = {} hoster['name'] = sHoster hoster['link'] = URL_MAIN + '/' + aEntry[0] if hoster['name'] == previousName: hoster['displayedName'] = hoster['name'] + ' (' + str( iMatches) + ')' iMatches += 1 else: previousName = hoster['name'] iMatches = 2 hosters.append(hoster) hosters.append('showHoster') return hosters
def __getHtmlContent(sUrl = None, sSecurityValue = None): oParams = ParameterHandler() # Test if a url is available and set it if sUrl is None and not oParams.exist('sUrl'): logger.error("There is no url we can request.") return False else: if sUrl is None: sUrl = oParams.getValue('sUrl') # Test if a security value is available if sSecurityValue is None: if oParams.exist("securityCookie"): sSecurityValue = oParams.getValue("securityCookie") if not sSecurityValue: sSecurityValue = '' # preferred language sPrefLang = __getPreferredLanguage() # Make the request oRequest = cRequestHandler(sUrl) oRequest.addHeaderEntry('Cookie', sPrefLang+sSecurityValue+'ListDisplayYears=Always;') oRequest.addHeaderEntry('Referer', URL_MAIN) oRequest.addHeaderEntry('Accept', '*/*') oRequest.addHeaderEntry('Host', domain) return oRequest.request()
def __getHtmlContent(sUrl=None, sSecurityValue=None, ignoreErrors=False): oParams = ParameterHandler() # Test if a url is available and set it if sUrl is None and not oParams.exist('sUrl'): logger.error("There is no url we can request.") return False elif sUrl is None: sUrl = oParams.getValue('sUrl') # Test if a security value is available if sSecurityValue is None: if oParams.exist("securityCookie"): sSecurityValue = oParams.getValue("securityCookie") else: sSecurityValue = '' # preferred language sPrefLang = __getPreferredLanguage() # Make the request oRequest = cRequestHandler(sUrl, ignoreErrors=ignoreErrors) if "kinox.ag" not in domain: oRequest.addHeaderEntry( 'Cookie', sPrefLang + str(sSecurityValue) + 'ListDisplayYears=Always;') oRequest.addHeaderEntry('Referer', URL_MAIN) oRequest.addHeaderEntry('Accept', '*/*') oRequest.addHeaderEntry('Host', domain) return oRequest.request()
def showMovies(): oGui = cGui() oParams = ParameterHandler() if (oParams.exist(PARAM_URL_KEY)): sUrl = oParams.getValue(PARAM_URL_KEY) sRootUrl = sUrl iPage = 1 if (oParams.exist(PARAM_PAGE_KEY)): iPage = oParams.getValue(PARAM_PAGE_KEY) sRootUrl = oParams.getValue(PARAM_ROOTURL_KEY) if (sRootUrl.startswith(URL_MOVIES_ALL) | sRootUrl.startswith(URL_SEARCH)): sPattern = PATTERN_LIST elif (sRootUrl.startswith(URL_CURRENT_MOVIES) | sRootUrl.startswith(URL_NEW_MOVIES) | sRootUrl.startswith(URL_MAIN)): sPattern = PATTERN_DIVBOX else: oGui.showError('Error', 'wrong root url') return _parseMedia(sUrl, sRootUrl, iPage, sPattern, oGui) else: oGui.showError('Error', 'wrong page count') return else: oGui.showError('Error', 'No request url found') oGui.setEndOfDirectory()
def getHosters(): hosters = [] params = ParameterHandler() if (params.exist('movieUrl') and params.exist('sMovieTitle')): sSiteUrl = params.getValue('movieUrl') sMovieTitle = params.getValue('sMovieTitle') sHtmlContent = __getHtmlContent(sUrl=sSiteUrl) sPattern = 'id="ame_noshow_post.*?<a href="([^"]+)" title="[^"]+" target="_blank">([^<]+)</a>' aResult = cParser().parse(sHtmlContent, sPattern) if aResult[0] == True: aHosters = [] for aEntry in aResult[1]: sUrl = aEntry[0] # extract hoster domainname if 'gstream.to/secure/' in sUrl: sHoster = sUrl.split('secure/')[-1].split('/')[0].split( '.')[-2] else: sHoster = sUrl.split('//')[-1].split('/')[0].split('.')[-2] hoster = {} hoster['link'] = sUrl hoster['name'] = sHoster hosters.append(hoster) hosters.append('getHosterUrl') return hosters
def __getHtmlContent(sUrl=None, sSecurityValue=None): params = ParameterHandler() # Test if a url is available and set it if sUrl is None and not params.exist('siteUrl'): logger.info("There is no url we can request.") return False else: if sUrl is None: sUrl = params.getValue('siteUrl') # Test if a security value is available if sSecurityValue is None: if params.exist('securityCookie'): sSecurityValue = params.getValue('securityCookie') else: sSecurityValue = '' # Make the request oRequest = cRequestHandler(sUrl) #oRequest.addHeaderEntry('Cookie', sSecurityValue) #oRequest.addHeaderEntry('Accept', '*/*') #oRequest.addHeaderEntry('Host', 'gstream.to') return oRequest.request()
def parseMovieSimpleList(): oGui = cGui() params = ParameterHandler() oParser = cParser() if (params.exist('iPage')): iPage = params.getValue('iPage') else: iPage = 1 if (params.exist('sUrl')): sUrl = params.getValue('sUrl') logger.info(sUrl) if (sUrl.find('tvshows-season-') != -1): sPattern = '<TR[^>]*>\s*<TD[^>]*id="tdmovies"[^>]*>\s*<a href="([^"]+)">(.*?)</a>.*?<img[^>]*border=0[^>]*src="/img/([^"]+)"[^>]*>.*?</TR>' if params.exist('sLanguageToken'): sLanguageToken = params.getValue('sLanguageToken') oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0] == True: for aEntry in aResult[1]: sUrl = str(aEntry[0]).strip() if not (sUrl.startswith('http')): sUrl = URL_MAIN + '/' + sUrl if aEntry[2] == sLanguageToken: break oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0] == True: for aEntry in aResult[1]: sUrl = str(aEntry[0]).strip() if not (sUrl.startswith('http')): sUrl = URL_MAIN + '/' + sUrl if aEntry[2] == sLanguageToken: break else: oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0] == True: sUrl = str(aResult[1][0][0]).strip() if not (sUrl.startswith('http')): sUrl = URL_MAIN + sUrl oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0] == True: sUrl = str(aResult[1][0][0]).strip() if not (sUrl.startswith('http')): sUrl = URL_MAIN + '/' + sUrl __getAllSeasons(sUrl) else: __parseMovieSimpleList(sUrl, iPage, oGui) oGui.setView('movies') oGui.setEndOfDirectory()
def parseMovieSimpleList(): oGui = cGui() params = ParameterHandler() oParser = cParser() if (params.exist('iPage')): iPage = params.getValue('iPage') else: iPage = 1 if (params.exist('sUrl')): sUrl = params.getValue('sUrl') logger.info(sUrl) if (sUrl.find('tvshows-season-') != -1): sPattern = '<TR>\s*<TD.*?id="tdmovies".*?<a href="([^"]+)">(.*?)\s*</a>.*?<img border=0 src="http://[^/]+/img/([^"]+)".*?</TR>' if params.exist('sLanguageToken'): sLanguageToken = params.getValue('sLanguageToken') oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0] == True: for aEntry in aResult[1]: sUrl = str(aEntry[0]).strip() if not (sUrl.startswith('http')): sUrl = URL_MAIN +'/'+ sUrl if aEntry[2] == sLanguageToken: break oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0] == True: for aEntry in aResult[1]: sUrl = str(aEntry[0]).strip() if not (sUrl.startswith('http')): sUrl = URL_MAIN +'/'+ sUrl if aEntry[2] == sLanguageToken: break else: oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0] == True: sUrl = str(aResult[1][0][0]).strip() if not (sUrl.startswith('http')): sUrl = URL_MAIN + sUrl oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0] == True: sUrl = str(aResult[1][0][0]).strip() if not (sUrl.startswith('http')): sUrl = URL_MAIN +'/'+ sUrl __getAllSeasons(sUrl) else: __parseMovieSimpleList(sUrl, iPage, oGui) oGui.setView('movies') oGui.setEndOfDirectory()
def onPlayBackStopped(self): logger.info('Playback stopped') if self.playedTime == 0 and self.totalTime == 999999: self.streamSuccess = False logger.error('Kodi failed to open stream') self.streamFinished = True if cConfig().getSetting('metahandler')=='true': META = True try: from metahandler import metahandlers except Exception as e: META = False logger.info("Could not import package 'metahandler'") logger.info(e) else: META = False if META: try: percent = self.playedTime/self.totalTime logger.info('Watched percent '+str(int(percent*100))) if percent >= 0.80: logger.info('Attemt to change watched status') meta = metahandlers.MetaData() params = ParameterHandler() season = '' episode = '' mediaType = params.getValue('mediaType') imdbID = params.getValue('imdbID') name = params.getValue('Title') TVShowTitle = params.getValue('TVShowTitle') if params.exist('season'): season = params.getValue('season') if int(season) > 0:mediaType = 'season' if params.exist('episode'): episode = params.getValue('episode') if int(episode) > 0: mediaType = 'episode' if imdbID and mediaType: if mediaType == 'movie' or mediaType == 'tvshow': metaInfo = meta.get_meta(self._mediaType, self.__sTitle, imdbID) elif mediaType == 'season': metaInfo = meta.get_seasons(TVShowTitle, imdbID, str(season)) elif mediaType == 'episode' and TVShowTitle: metaInfo = meta.get_episode_meta(TVShowTitle, imdbID, str(season), str(episode)) if metaInfo and int(metaInfo['overlay']) == 6: meta.change_watched(mediaType, name, imdbID, season=season, episode=episode) xbmc.executebuiltin("XBMC.Container.Refresh") else: logger.info('Could not change watched status; imdbID or mediaType missing') except Exception as e: logger.info(e)
def showHosters(): params = ParameterHandler() if (params.exist('sUrl') and params.exist('sMovieTitle')): sUrl = params.getValue('sUrl') sMovieTitle = params.getValue('sMovieTitle') sHtmlContent = cRequestHandler(sUrl).request() sPattern = '<tr id="tablemoviesindex2">.*?<a href="([^"]+)">([^<]+)<.*?alt="(.*?) .*?width="16">.*?</a>.*?smileys/([1-9]).gif"' aResult = cParser().parse(sHtmlContent.replace('\\', ''), sPattern) hosters = [] if (aResult[0] == True): for aEntry in aResult[1]: sHoster = aEntry[2].strip() hoster = {} hoster['name'] = sHoster hoster['link'] = URL_MAIN + '/' + aEntry[0] hoster['displayedName'] = aEntry[ 1] + ' - ' + sHoster + ' - Quality: ' + aEntry[3] hoster['quality'] = aEntry[3] hoster['date'] = aEntry[1].strip() if sHoster == 'Stream4k': hoster['resolveable'] = True hosters.append(hoster) sPattern = '<SELECT name="hosterlist".*?>(.*?)</SELECT>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): sPattern = '<OPTION value="([^"]+)".*?>([^<]+)</OPTION>' aResult = oParser.parse(aResult[1][0], sPattern) if (aResult[0] == True): for aEntry in aResult[1]: sUrl = aEntry[0] if not sUrl.startswith('http'): sUrl = URL_MAIN + '/' + sUrl sHosterFull = aEntry[1].strip() hoster = {} hoster['name'] = sHosterFull.rsplit(' ', 1)[0] hoster['link'] = sUrl hoster['displayedName'] = sHosterFull hosters.append(hoster) if (len(hosters) > 0): hosters.append('showHoster') return hosters
def showAllEpisodes(): oGui = cGui() params = ParameterHandler() sUrl = '' if not params.exist('sUrl'): return sUrl = params.getValue('sUrl') if not params.exist('season'): return sSeason = params.getValue('season') oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() sPattern = '<FORM name="episodeform' + sSeason + '">(.*?)</FORM>' aResult = cParser().parse(sHtmlContent, sPattern) sHtmlContent = aResult[1][0] sPattern = '<SELECT name="episode".*?>(.*?)</SELECT>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if not aResult[0]: return sPattern = '<OPTION value="([^"]+)".*?>([^<]+)</OPTION>' aResult = oParser.parse(aResult[1][0], sPattern) if not aResult[0]: return for aEntry in aResult[1]: sUrl = aEntry[0] if not sUrl.startswith('http'): sUrl = URL_MAIN + '/' + sUrl sMovieTitle = aEntry[1].strip() episodeNr = aEntry[1].strip().split(' ')[-1] oGuiElement = cGuiElement(sMovieTitle, SITE_IDENTIFIER, 'showHostersSeries') oGuiElement.setEpisode(episodeNr) if sSeason: oGuiElement.setSeason(sSeason) oGuiElement.setMediaType('episode') params.setParam('sUrl', sUrl) params.setParam('sMovieTitle', sMovieTitle) params.setParam('episode', episodeNr) oGui.addFolder(oGuiElement, params, bIsFolder=False, iTotal=len(aResult[1])) oGui.setView('episodes') oGui.setEndOfDirectory()
def showHosters(): params = ParameterHandler() if (params.exist('sUrl') and params.exist('sMovieTitle')): sUrl = params.getValue('sUrl') sMovieTitle = params.getValue('sMovieTitle') sHtmlContent = cRequestHandler(sUrl).request() sPattern = '<tr id="tablemoviesindex2">.*?<a href="([^"]+)">([^<]+)<.*?alt="(.*?) .*?width="16">.*?</a>.*?smileys/([1-9]).gif"' aResult = cParser().parse(sHtmlContent.replace('\\',''), sPattern) hosters = [] if (aResult[0] == True): for aEntry in aResult[1]: sHoster = aEntry[2].strip() hoster = {} hoster['name'] = sHoster hoster['link'] = URL_MAIN +'/'+ aEntry[0] hoster['displayedName'] = aEntry[1] + ' - ' + sHoster + ' - Quality: ' + aEntry[3] hoster['quality'] = aEntry[3] hoster['date'] = aEntry[1].strip() hosters.append(hoster) sPattern = '<SELECT name="hosterlist".*?>(.*?)</SELECT>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): sPattern = '<OPTION value="([^"]+)".*?>([^<]+)</OPTION>' aResult = oParser.parse(aResult[1][0],sPattern) if (aResult[0] == True): for aEntry in aResult[1]: sUrl = aEntry[0] if not sUrl.startswith('http'): sUrl = URL_MAIN +'/'+ sUrl sHosterFull = aEntry[1].strip() hoster = {} hoster['name'] = sHosterFull.rsplit(' ', 1)[0] hoster['link'] = sUrl hoster['displayedName'] = sHosterFull hosters.append(hoster) if(len(hosters) > 0): hosters.append('showHoster') return hosters
def showAllEpisodes(): oGui = cGui() params = ParameterHandler() sUrl = '' if not params.exist('sUrl'): return sUrl = params.getValue('sUrl') if not params.exist('season'): return sSeason = params.getValue('season') oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() sPattern = '<FORM name="episodeform' + sSeason + '">(.*?)</FORM>' aResult = cParser().parse(sHtmlContent, sPattern) sHtmlContent = aResult[1][0] sPattern = '<SELECT name="episode".*?>(.*?)</SELECT>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if not aResult[0]: return sPattern = '<OPTION value="([^"]+)".*?>([^<]+)</OPTION>' aResult = oParser.parse(aResult[1][0],sPattern) if not aResult[0]: return for aEntry in aResult[1]: sUrl = aEntry[0] if not sUrl.startswith('http'): sUrl = URL_MAIN +'/'+ sUrl sMovieTitle = aEntry[1].strip() episodeNr = aEntry[1].strip().split(' ')[-1] oGuiElement = cGuiElement(sMovieTitle, SITE_IDENTIFIER, 'showHostersSeries') oGuiElement.setEpisode(episodeNr) if sSeason: oGuiElement.setSeason(sSeason) oGuiElement.setMediaType('episode') params.setParam('sUrl', sUrl) params.setParam('sMovieTitle', sMovieTitle) params.setParam('episode', episodeNr) oGui.addFolder(oGuiElement, params, bIsFolder = False, iTotal = len(aResult[1])) oGui.setView('episodes') oGui.setEndOfDirectory()
def parseMovieEntrySite(): parms = ParameterHandler() if parms.exist('sUrl'): sUrl = parms.getValue('sUrl') sHtmlContent = __getHtmlContent(sUrl) sMovieTitle = __createMovieTitle(sHtmlContent) result = cParser().parse(sHtmlContent, '<div class="Grahpics">.*?<img src="([^"]+)"') thumbnail = URL_MAIN + str(result[1][0]) if result[0] else False bIsSerie = __isSerie(sHtmlContent) if bIsSerie: oGui = cGui() aSeriesItems = parseSerieSite(sHtmlContent) if not aSeriesItems[0]: return total = len(aSeriesItems) for aEntry in aSeriesItems[1]: seasonNum = str(aEntry) guiElement = cGuiElement('%s - Staffel %s' % (sMovieTitle, seasonNum), SITE_IDENTIFIER, 'showEpisodes') guiElement.setMediaType('season') guiElement.setSeason(seasonNum) guiElement.setTVShowTitle(sMovieTitle) parms.setParam('Season', seasonNum) if thumbnail: guiElement.setThumbnail(thumbnail + parms.getValue('cf')) oGui.addFolder(guiElement, parms, total) oGui.setView('seasons') oGui.setEndOfDirectory() else: logger.info('Movie') result = showHosters() return result
def parseMovieEntrySite(): oParams = ParameterHandler() sSecurityValue = oParams.getValue('securityCookie') if oParams.exist('sUrl'): sUrl = oParams.getValue('sUrl') # get movieEntrySite content sHtmlContent = __getHtmlContent(sUrl, sSecurityValue) sMovieTitle = __createMovieTitle(sHtmlContent) # get thumbnail result = cParser().parse(sHtmlContent, '<div class="Grahpics">.*?<img src="([^"]+)"') thumbnail = URL_MAIN + str(result[1][0]) if result[0] else False bIsSerie = __isSerie(sHtmlContent) if bIsSerie: oGui = cGui() aSeriesItems = parseSerieSite(sHtmlContent) if not aSeriesItems[0]: return total = len(aSeriesItems) for aEntry in aSeriesItems[1]: seasonNum = str(aEntry) guiElement = cGuiElement('%s - Staffel %s' % (sMovieTitle, seasonNum), SITE_IDENTIFIER, 'showEpisodes') guiElement.setMediaType('season') guiElement.setSeason(seasonNum) guiElement.setTVShowTitle(sMovieTitle) oParams.setParam('Season', seasonNum) if thumbnail: guiElement.setThumbnail(thumbnail) oGui.addFolder(guiElement, oParams, iTotal=total) oGui.setView('seasons') oGui.setEndOfDirectory() else: logger.info('Movie') result = showHosters(sHtmlContent, sMovieTitle) return result
def parseMovieEntrySite(): oParams = ParameterHandler() sSecurityValue = oParams.getValue('securityCookie') if (oParams.exist('sUrl')): sUrl = oParams.getValue('sUrl') # get movieEntrySite content sHtmlContent = __getHtmlContent(sUrl, sSecurityValue) sMovieTitle = __createMovieTitle(sHtmlContent) bIsSerie = __isSerie(sHtmlContent) if (bIsSerie): oGui = cGui() aSeriesItems = parseSerieSite(sHtmlContent) if (len(aSeriesItems) > 0): imdbID = oParams.getValue('imdbID') for item in aSeriesItems: oGuiElement = cGuiElement(item['title'], SITE_IDENTIFIER, 'showHosters') sShowTitle = sMovieTitle.split('(')[0].split('*')[0] oGuiElement.setMediaType('episode') #if META and imdbID: # oMetaget = metahandlers.MetaData() # meta = oMetaget.get_episode_meta(sShowTitle, imdbID, item['season'], item['episode']) # meta['TVShowTitle'] = sShowTitle # oGuiElement.setItemValues(meta) # oGuiElement.setThumbnail(meta['cover_url']) # oGuiElement.setFanart(meta['backdrop_url']) # oGuiElement.setTitle('%s %s' % (item['title'], meta['title'].encode('utf-8'))) oParams.addParams({'sUrl':item['url'], 'episode':item['episode'], 'season':item['season'], 'TvShowTitle':sShowTitle}) oGui.addFolder(oGuiElement, oParams, bIsFolder = False, iTotal = len(aSeriesItems)) oGui.setView('episodes') oGui.setEndOfDirectory() else: result = showHosters(sHtmlContent, sMovieTitle) return result
def showGenre(): oGui = cGui() params = ParameterHandler() if params.exist('sUrl'): sUrl = params.getValue('sUrl') sHtmlContent = cRequestHandler(sUrl).request() sPattern = '<tr>\s*<td[^>]*id="tdmovies"[^>]*>\s*' sPattern += '<a[^>]*href="([^"]+)"[^>]*>([^<]+)</a>\s*</td>\s*' sPattern += '(?:<td[^>]*id="tdmovies"[^>]*>(\d+)</td>)?' isMatch, aResult = cParser.parse(sHtmlContent, sPattern, ignoreCase=True) if not isMatch: oGui.showInfo('streamon', 'Es wurde kein Eintrag gefunden') return for sUrl, sTitle, sCount in aResult: sUrl = sUrl.strip() if not sUrl.startswith('http'): sUrl = URL_MAIN + '/' + sUrl sTitle = '%s (%s)' % (sTitle, sCount) oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setFunction('parseMovieSimpleList') oGuiElement.setTitle(sTitle) params = ParameterHandler() params.setParam('sUrl', sUrl) oGui.addFolder(oGuiElement, params) oGui.setEndOfDirectory()
def showFeaturedSeries(): params = ParameterHandler() if params.exist('sUrl'): sUrl = params.getValue('sUrl') oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() sPattern = '<div id="maincontenttvshow">(.*?)<BR><BR>' aResult = cParser().parse(sHtmlContent, sPattern) if aResult[0] == True: sPattern = '<div style="float:left"><a href="([^"]+)"><img src="([^"]+)" border=0.*?title="([^"]+)"></a>.*?<img src="/img/(.*?).png"' sHtmlContent = aResult[1][0] aResult = cParser().parse(sHtmlContent, sPattern) if aResult[0] == True: oGui = cGui() for aEntry in aResult[1]: newUrl = str(aEntry[0]).strip() if not (newUrl.startswith('http')): newUrl = URL_MAIN + '/' + newUrl sThumbnail = aEntry[1] sMovieTitle = aEntry[2].strip().replace('\t', '') oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setFunction('showAllSeasons') oGuiElement.setTitle(sMovieTitle) oGuiElement.setThumbnail( sThumbnail.replace('https', 'http')) oGuiElement.setLanguage(__getLanguage(aEntry[3])) oGuiElement.setMediaType('tvshow') params = ParameterHandler() params.setParam('sUrl', newUrl) oGui.addFolder(oGuiElement, params) oGui.setView('tvshows') oGui.setEndOfDirectory()
def showFeaturedSeries(): oInputParameterHandler = ParameterHandler() if (oInputParameterHandler.exist('sUrl')): sUrl = oInputParameterHandler.getValue('sUrl') oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() sPattern = '<div id="maincontenttvshow">(.*?)<BR><BR>' aResult = cParser().parse(sHtmlContent,sPattern) if aResult[0] == True: sPattern = '<div style="float:left"><a href="([^"]+)"><img src="([^"]+)" border=0.*?title="([^"]+)"></a>.*?<img src="http://img.movie4k.to/img/(.*?).png"' sHtmlContent = aResult[1][0] aResult = cParser().parse(sHtmlContent, sPattern) if aResult[0] == True: oGui = cGui() for aEntry in aResult[1]: newUrl = str(aEntry[0]).strip() if not (newUrl.startswith('http')): newUrl = URL_MAIN + newUrl sThumbnail = aEntry[1] sMovieTitle = aEntry[2].strip().replace('\t', '') oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setFunction('showAllSeasons') oGuiElement.setTitle(sMovieTitle) oGuiElement.setThumbnail(sThumbnail) oGuiElement.setLanguage(__getLanguage(aEntry[3])) oOutputParameterHandler = ParameterHandler() oOutputParameterHandler.setParam('sUrl', newUrl) oGui.addFolder(oGuiElement, oOutputParameterHandler) oGui.setView('tvshows') oGui.setEndOfDirectory()
def __writeLog(sLog, cLogLevel=xbmc.LOGDEBUG): params = ParameterHandler() try: sLog = str(sLog) except UnicodeEncodeError: sLog = sLog.encode('utf-8') try: if isinstance(sLog, unicode): sLog = '%s (ENCODED)' % (sLog.encode('utf-8')) if params.exist('site'): site = params.getValue('site') sLog = "\t[%s] -> %s: %s" % (common.addonName, site, sLog) else: sLog = "\t[%s] %s" % (common.addonName, sLog) xbmc.log(sLog, cLogLevel) except Exception as e: try: xbmc.log('Logging Failure: %s' % (e), cLogLevel) except: pass
def __writeLog(sLog, cLogLevel): params = ParameterHandler() if params.exist('site'): site = params.getValue('site') print "\t[xStream] ->%s: %s" %(site,sLog) else: print "\t[xStream] %s" % sLog
def showHosters(sHtmlContent='', sTitle=False): oParams = ParameterHandler() sSecurityValue = oParams.getValue('securityCookie') if not sTitle: sTitle = oParams.getValue('title') if oParams.exist('sUrl'): sUrl = oParams.getValue('sUrl') sHtmlContent = __getHtmlContent(sUrl, sSecurityValue) pattern = 'class="MirBtn.*?rel="([^"]+)".*?class="Named">([^<]+)</div>(.*?)</div>' oParser = cParser() aResult = oParser.parse(sHtmlContent, pattern) hosters = [] if aResult[0]: for aEntry in aResult[1]: sHoster = aEntry[1] # check for additional mirrors pattern = '<b>Mirror</b>: [0-9]+/([0-9]+)' oParser = cParser() aResult = oParser.parse(aEntry[2], pattern) mirrors = 1 if aResult[0]: mirrors = int(aResult[1][0]) for i in range(1, mirrors + 1): sUrl = URL_MIRROR + urllib.unquote_plus(aEntry[0]) mirrorName = "" if mirrors > 1: mirrorName = " Mirror " + str(i) sUrl = re.sub(r'Mirror=[0-9]+', 'Mirror=' + str(i), sUrl) hoster = {'name': sHoster, 'link': sUrl, 'displayedName': sHoster + mirrorName} hosters.append(hoster) hosters.append('getHosterUrlandPlay') return hosters
def __displayItems(oGui, sHtmlContent): # Test if a cookie was set, else define the default empty one sSecurityValue = "" oParams = ParameterHandler() if oParams.exist("securityCookie"): sSecurityValue = oParams.getValue("securityCookie") # The pattern to filter every item of the list sPattern = '<td class="Icon"><img width="16" height="11" src="/gr/sys/lng/(\d+).png" alt="language"></td>'+\ '.*?title="([^\"]+)".*?<td class="Title">.*?<a href="([^\"]+)" onclick="return false;">([^<]+)</a>' # Parse to get all items of the list oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if not aResult[0]: logger.error("Could not find an item") return # Go throught all items and create a gui element for them. for aEntry in aResult[1]: sTitle = __createTitleWithLanguage(aEntry[0], aEntry[3]) sUrl = URL_MAIN + aEntry[2] if aEntry[1] == 'movie' or aEntry[1] == 'cinema': mediaType = 'movie' else: mediaType = aEntry[1] oGuiElement = cGuiElement(sTitle, SITE_IDENTIFIER, 'parseMovieEntrySite') oParams.setParam('sUrl',sUrl) oParams.setParam('mediaType',mediaType) if mediaType == 'series': oGui.addFolder(oGuiElement,oParams) else: oGui.addFolder(oGuiElement,oParams,bIsFolder=False)
def showGenre(): oGui = cGui() params = ParameterHandler() if (params.exist('sUrl')): sUrl = params.getValue('sUrl') oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() sPattern = '<TR>.*?<a href="([^"]+)">([^<]+)</a>.*?>([^<]+)</TD>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): for aEntry in aResult[1]: sUrl = aEntry[0].strip() if not (sUrl.startswith('http')): sUrl = URL_MAIN + '/' + sUrl sTitle = aEntry[1] + ' (' + aEntry[2] + ')' oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setFunction('parseMovieSimpleList') oGuiElement.setTitle(sTitle) oOutputParameterHandler = ParameterHandler() oOutputParameterHandler.setParam('sUrl', sUrl) oGui.addFolder(oGuiElement, oOutputParameterHandler) oGui.setEndOfDirectory()
def showHosters(): parms = ParameterHandler() if parms.exist('sUrl'): sUrl = parms.getValue('sUrl') sHtmlContent = __getHtmlContent(sUrl) pattern = 'class="MirBtn.*?rel="([^"]+)".*?class="Named">([^<]+)</div>(.*?)</div>' aResult = cParser().parse(sHtmlContent, pattern) hosters = [] if aResult[0]: for aEntry in aResult[1]: sHoster = aEntry[1] pattern = '<b>Mirror</b>: [0-9]+/([0-9]+)' aResult = cParser().parse(aEntry[2], pattern) mirrors = 1 if aResult[0]: mirrors = int(aResult[1][0]) for i in range(1, mirrors + 1): sUrl = URL_MIRROR + urllib.unquote_plus(aEntry[0]) mirrorName = "" if mirrors > 1: mirrorName = " Mirror " + str(i) sUrl = cParser().replace(r'Mirror=[0-9]+', 'Mirror=' + str(i), sUrl) hoster = {'name': sHoster, 'link': sUrl, 'displayedName': sHoster + mirrorName} hosters.append(hoster) hosters.append('getHosterUrl') return hosters
def showGenre(): oGui = cGui() params = ParameterHandler() if params.exist("sUrl"): sUrl = params.getValue("sUrl") oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() sPattern = '<TR>.*?<a href="([^"]+)">(.*?)</a>.*?<TD id="tdmovies" width="50">(.*?)</TD>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0] == True: for aEntry in aResult[1]: sUrl = aEntry[0].strip() if not (sUrl.startswith("http")): sUrl = URL_MAIN + "/" + sUrl sTitle = aEntry[1] + " (" + aEntry[2] + ")" oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setFunction("parseMovieSimpleList") oGuiElement.setTitle(sTitle) oOutputParameterHandler = ParameterHandler() oOutputParameterHandler.setParam("sUrl", sUrl) oGui.addFolder(oGuiElement, oOutputParameterHandler) oGui.setEndOfDirectory()
def __writeLog(sLog, cLogLevel): params = ParameterHandler() if params.exist('site'): site = params.getValue('site') print "\t[PLUGIN] xStream->" + site + ": " + str(sLog) else: print "\t[PLUGIN] xStream: " + str(sLog)
def showGenre(): oGui = cGui() oInputParameterHandler = ParameterHandler() if (oInputParameterHandler.exist(PARAM_URL_KEY)): sUrl = oInputParameterHandler.getValue(PARAM_URL_KEY) oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() sPattern = '<li><a href="([^"]+)" title="Alle[^"]+">([^<]+)<span>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): for aEntry in aResult[1]: sUrl = aEntry[0] sUrl = URL_MAIN + sUrl sTitle = aEntry[1].strip() oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setFunction('showMovies') oGuiElement.setTitle(sTitle) oOutputParameterHandler = ParameterHandler() oOutputParameterHandler.setParam(PARAM_URL_KEY, sUrl) oOutputParameterHandler.setParam(PARAM_ROOTURL_KEY, sUrl) oOutputParameterHandler.setParam(PARAM_PAGE_KEY,1) oGui.addFolder(oGuiElement, oOutputParameterHandler) oGui.setEndOfDirectory()
def parseMovieEntrySite(): oParams = ParameterHandler() sSecurityValue = oParams.getValue('securityCookie') if (oParams.exist('sUrl')): sUrl = oParams.getValue('sUrl') # get movieEntrySite content sHtmlContent = __getHtmlContent(sUrl, sSecurityValue) sMovieTitle = __createMovieTitle(sHtmlContent) bIsSerie = __isSerie(sHtmlContent) if (bIsSerie): oGui = cGui() aSeriesItems = parseSerieSite(sHtmlContent) if (len(aSeriesItems) > 0): imdbID = oParams.getValue('imdbID') for item in aSeriesItems: oGuiElement = cGuiElement(item['title'], SITE_IDENTIFIER, 'showHosters') sShowTitle = sMovieTitle.split('(')[0].split('*')[0] oGuiElement.setMediaType('episode') oParams.addParams({'sUrl':item['url'], 'episode':item['episode'], 'season':item['season'], 'TvShowTitle':sShowTitle}) oGui.addFolder(oGuiElement, oParams, bIsFolder = False, iTotal = len(aSeriesItems)) oGui.setView('episodes') oGui.setEndOfDirectory() else: result = showHosters(sHtmlContent, sMovieTitle) return result
def showGenre(): oGui = cGui() oInputParameterHandler = ParameterHandler() if (oInputParameterHandler.exist('sUrl')): sUrl = oInputParameterHandler.getValue('sUrl') oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() sPattern = '<TR>.*?<a href="([^"]+)">(.*?)</a>.*?<TD id="tdmovies" width="50">(.*?)</TD>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): for aEntry in aResult[1]: sUrl = aEntry[0].strip() if not (sUrl.startswith('http')): sUrl = URL_MAIN + sUrl sTitle = aEntry[1] + ' (' + aEntry[2] + ')' oGuiElement = cGuiElement() oGuiElement.setSiteName(SITE_IDENTIFIER) oGuiElement.setFunction('parseMovieSimpleList') oGuiElement.setTitle(sTitle) oOutputParameterHandler = ParameterHandler() oOutputParameterHandler.setParam('sUrl', sUrl) oGui.addFolder(oGuiElement, oOutputParameterHandler) oGui.setEndOfDirectory()
def __writeLog(sLog, cLogLevel): params = ParameterHandler() if params.exist('site'): site = params.getValue('site') print "\t[xStream] ->%s: %s" % (site, sLog) else: print "\t[xStream] %s" % sLog
def __getAjaxContent(sMediaType, iPage, iMediaTypePageId, metaOn, sCharacter=''): iDisplayStart = __createDisplayStart(iPage) oParams = ParameterHandler() # Test if a security value is available if oParams.exist("securityCookie"): sSecurityValue = oParams.getValue("securityCookie") else: sSecurityValue = False # preferred language sPrefLang = __getPreferredLanguage() # perform the request oRequest = cRequestHandler(URL_AJAX) if not iMediaTypePageId: # {"fType":"movie","fLetter":"A"} oRequest.addParameters( 'additional', '{"fType":"' + str(sMediaType) + '","fLetter":"' + str(sCharacter) + '"}') else: # {"foo":"bar","fGenre":"2","fType":"","fLetter":"A"} oRequest.addParameters( 'additional', '{"foo":"bar","' + str(sMediaType) + '":"' + iMediaTypePageId + '","fType":"movie","fLetter":"' + str(sCharacter) + '"}') oRequest.addParameters('iDisplayLength', '30') oRequest.addParameters('iDisplayStart', iDisplayStart) if metaOn and not sMediaType == 'documentation': oRequest.addParameters('bSortable_0', 'true') oRequest.addParameters('bSortable_1', 'true') oRequest.addParameters('bSortable_2', 'true') oRequest.addParameters('bSortable_3', 'false') oRequest.addParameters('bSortable_4', 'false') oRequest.addParameters('bSortable_5', 'false') oRequest.addParameters('bSortable_6', 'true') oRequest.addParameters('iColumns', '7') oRequest.addParameters('iSortCol_0', '2') oRequest.addParameters('iSortingCols', '1') oRequest.addParameters('sColumns', '') oRequest.addParameters('sEcho', iPage) oRequest.addParameters('sSortDir_0', 'asc') sUrl = oRequest.getRequestUri() logger.info("Url: " + sUrl) oRequest = cRequestHandler(sUrl) else: oRequest.addParameters('ListMode', 'cover') oRequest.addParameters('Page', str(iPage)) oRequest.addParameters('Per_Page', '30') oRequest.addParameters('dir', 'desc') if "kinox.ag" not in domain: oRequest.addHeaderEntry( 'Cookie', sPrefLang + str(sSecurityValue) + 'ListDisplayYears=Always;') oRequest.addHeaderEntry('Referer', URL_MAIN) oRequest.addHeaderEntry('Accept', '*/*') oRequest.addHeaderEntry('Host', domain) return oRequest.request()
def showAllSeasons(): params = ParameterHandler() sUrl = '' if (params.exist('sUrl')): sUrl = params.getValue('sUrl') __getAllSeasons(sUrl) else: return
def showAllSeasons(): params = ParameterHandler() sUrl = "" if params.exist("sUrl"): sUrl = params.getValue("sUrl") __getAllSeasons(sUrl) else: return
def showAllSeasons(): oInputParameterHandler = ParameterHandler() sUrl = '' if (oInputParameterHandler.exist('sUrl')): sUrl = oInputParameterHandler.getValue('sUrl') __getAllSeasons(sUrl) else: return
def parseMovieResultSite(): oGui = cGui() params = ParameterHandler() if (params.exist('siteUrl')): siteUrl = params.getValue('siteUrl') normalySiteUrl = params.getValue('normalySiteUrl') iPage = params.getValue('iPage') __parseMovieResultSite(oGui, siteUrl, normalySiteUrl, iPage) oGui.setEndOfDirectory()
def showCharacters(): oGui = cGui() parms = ParameterHandler() if parms.exist('sUrl') and parms.exist('page') and parms.exist('mediaType'): siteUrl = parms.getValue('sUrl') sHtmlContent = __getHtmlContent(siteUrl) pattern = 'class="LetterMode.*?>([^>]+)</a>' aResult = cParser().parse(sHtmlContent, pattern) if aResult[0]: for aEntry in aResult[1]: oGuiElement = cGuiElement(aEntry, SITE_IDENTIFIER, 'ajaxCall') parms.setParam('character', aEntry[0]) if parms.exist('mediaTypePageId'): sMediaTypePageId = parms.getValue('mediaTypePageId') parms.setParam('mediaTypePageId', sMediaTypePageId) oGui.addFolder(oGuiElement, parms) oGui.setEndOfDirectory()
def play(): params = ParameterHandler() if (params.exist('sUrl') and params.exist('sTitle')): sUrl = params.getValue('sUrl') sTitle = params.getValue('sTitle') print sUrl oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() sPattern = ': "([^\."]+\.flv)"' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): sStreamUrl = URL_GET_STREAM + str(aResult[1][0])+'?autostart=true' result = {} result['streamUrl'] = sStreamUrl result['resolved'] = True return result return False
def play(): params = ParameterHandler() if params.exist("sUrl") and params.exist("sTitle"): sUrl = params.getValue("sUrl") sTitle = params.getValue("sTitle") print sUrl oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() sPattern = ': "([^\."]+)\.flv"' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0] == True: sStreamUrl = URL_GET_STREAM + str(aResult[1][0]) + "_HD.flv?autostart=true" result = {} result["streamUrl"] = sStreamUrl result["resolved"] = True return result return False
def __writeLog(sLog, cLogLevel): params = ParameterHandler() try: sLog = str(sLog) except UnicodeEncodeError: sLog = sLog.encode('utf-8') if params.exist('site'): site = params.getValue('site') print "\t[xStream] ->%s: %s" %(site,sLog) else: print "\t[xStream] %s" % sLog
def __writeLog(sLog, cLogLevel): params = ParameterHandler() try: sLog = str(sLog) except UnicodeEncodeError: sLog = sLog.encode('utf-8') if params.exist('site'): site = params.getValue('site') print "\t[xStream] ->%s: %s" % (site, sLog) else: print "\t[xStream] %s" % sLog
def showHosters(): oInputParameterHandler = ParameterHandler() if (oInputParameterHandler.exist('sUrl') and oInputParameterHandler.exist('sMovieTitle')): sUrl = oInputParameterHandler.getValue('sUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sHtmlContent = cRequestHandler(sUrl).request() sPattern = '<tr id="tablemoviesindex2">.*?<a href="([^"]+)">([^<]+)<.*?alt="(.*?) .*?width="16">.*?</a>.*?alt="([^"]+)"' aResult = cParser().parse(sHtmlContent.replace('\\',''), sPattern) if (aResult[0] == True): hosters = [] for aEntry in aResult[1]: sHoster = aEntry[2].strip() hoster = {} hoster['name'] = sHoster hoster['link'] = URL_MAIN + aEntry[0] hoster['displayedName'] = aEntry[1] + ' - ' + sHoster + ' - ' + aEntry[3] hosters.append(hoster) hosters.append('showHoster') return hosters
def showXXXHosters(): params = ParameterHandler() if (params.exist('sUrl') and params.exist('sMovieTitle')): sUrl = params.getValue('sUrl') sMovieTitle = params.getValue('sMovieTitle') print "########### xmovie" sHtmlContent = cRequestHandler(sUrl).request() sPattern = '<tr id="tablemoviesindex2">.*?<a href="([^"]+)">([^<]+)<.*?alt="(.*?) .*?width="16">.*?</a>.*?smileys/([1-9]).gif"' aResult = cParser().parse(sHtmlContent.replace('\\',''), sPattern) if (aResult[0] == True): hosters = [] for aEntry in aResult[1]: sHoster = aEntry[2].strip() hoster = {} hoster['name'] = sHoster hoster['link'] = URL_MAIN +'/'+ aEntry[0] hoster['displayedName'] = aEntry[1] + ' - ' + sHoster + ' - Quality: ' + aEntry[3] hoster['quality'] = aEntry[3] hoster['date'] = aEntry[1].strip() hosters.append(hoster) hosters.append('showHoster') return hosters
def showHosters(): oInputParameterHandler = ParameterHandler() if (oInputParameterHandler.exist(PARAM_URL_KEY)): sUrl = oInputParameterHandler.getValue(PARAM_URL_KEY) hosters = [] hoster = {} hoster['name'] = 'ecostream.tv' hoster['link'] = sUrl hoster['displayedName'] = 'Ecostream' hosters.append(hoster) hosters.append('showHoster') return hosters return []
def __getHtmlContent(sUrl=None, sSecurityValue=None): params = ParameterHandler() # Test if a url is available and set it if sUrl is None and not params.exist('siteUrl'): logger.info("There is no url we can request.") return False else: if sUrl is None: sUrl = params.getValue('siteUrl') # Test if a security value is available if sSecurityValue is None: if params.exist('securityCookie'): sSecurityValue = params.getValue('securityCookie') else: sSecurityValue = '' # Make the request oRequest = cRequestHandler(sUrl, caching=True) oRequest.ignoreDiscard(True) return oRequest.request()
def showHosters(): params = ParameterHandler() if (params.exist('sUrl') and params.exist('sMovieTitle')): sUrl = params.getValue('sUrl') sMovieTitle = params.getValue('sMovieTitle') sHtmlContent = cRequestHandler(sUrl).request() sPattern = '<tr id="tablemoviesindex2">.*?<a href="([^"]+)">([^<]+)<.*?alt="(.*?) .*?width="16">.*?</a>.*?smileys/([1-9]).gif"' aResult = cParser().parse(sHtmlContent.replace('\\', ''), sPattern) if (aResult[0] == True): hosters = [] for aEntry in aResult[1]: sHoster = aEntry[2].strip() hoster = {} hoster['name'] = sHoster hoster['link'] = URL_MAIN + '/' + aEntry[0] hoster['displayedName'] = aEntry[ 1] + ' - ' + sHoster + ' - Quality: ' + aEntry[3] hoster['quality'] = aEntry[3] hoster['date'] = aEntry[1].strip() hosters.append(hoster) hosters.append('showHoster') return hosters
def __getHtmlContent(sUrl=None, ignoreErrors=False): parms = ParameterHandler() if sUrl is None and not parms.exist('sUrl'): logger.error("There is no url we can request.") return False elif sUrl is None: sUrl = parms.getValue('sUrl') sPrefLang = __getPreferredLanguage() oRequest = cRequestHandler(sUrl, ignoreErrors=ignoreErrors) oRequest.addHeaderEntry('Cookie', sPrefLang + 'ListDisplayYears=Always;') oRequest.addHeaderEntry('Referer', URL_MAIN) oRequest.addHeaderEntry('Accept', '*/*') oRequest.addHeaderEntry('Host', domain) return oRequest.request()