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
Example #2
0
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)
Example #6
0
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()
Example #10
0
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()
Example #12
0
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
Example #13
0
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()
Example #15
0
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()
Example #16
0
    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)
Example #17
0
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
Example #20
0
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
Example #23
0
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()
Example #26
0
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()
Example #27
0
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
Example #28
0
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
Example #29
0
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
Example #30
0
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()
Example #34
0
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)
Example #35
0
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    
Example #37
0
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()
Example #38
0
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
Example #39
0
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()
Example #40
0
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():
    params = ParameterHandler()
    sUrl = ""
    if params.exist("sUrl"):
        sUrl = params.getValue("sUrl")
        __getAllSeasons(sUrl)
    else:
        return
Example #43
0
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 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
Example #49
0
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
Example #50
0
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
Example #51
0
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
Example #53
0
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 []
Example #54
0
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()
Example #55
0
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()