def showEntries(entryUrl=False, sGui=False):
    oGui = sGui if sGui else cGui()
    params = ParameterHandler()

    if not entryUrl: entryUrl = params.getValue('sUrl')

    oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False))
    sHtmlContent = oRequest.request()

    pattern = '<div[^>]*class="col-md-[^"]*"[^>]*>.*?'  # start element
    pattern += '<a[^>]*href="([^"]*)"[^>]*>.*?'  # url
    pattern += '<img[^>]*src="([^"]*)"[^>]*>.*?'  # thumbnail
    pattern += '<h3>(.*?)<span[^>]*class="paragraph-end">.*?'  # title
    pattern += '<\/div>'  # end element
    parser = cParser()
    isMatch, aResult = parser.parse(sHtmlContent, pattern)

    if not isMatch:
        if not sGui: oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden')
        return

    total = len(aResult)
    for sEntryUrl, sThumbnail, sName in aResult:
        sThumbnail = cCFScrape().createUrl((URL_MAIN + sThumbnail), oRequest)
        oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showSeasons')
        oGuiElement.setThumbnail(sThumbnail)
        oGuiElement.setMediaType('tvshow')
        oGuiElement.setTVShowTitle(sName)
        params.setParam('sUrl', URL_MAIN + sEntryUrl)
        params.setParam('sThumbnail', sThumbnail)
        oGui.addFolder(oGuiElement, params, True, total)

    if not sGui:
        oGui.setView('tvshows')
        oGui.setEndOfDirectory()
 def __check_protection(self, html, user_agent, cookie_jar):
     oResponse = None
     if 'cf-browser-verification' in html:
         self.__sUrl = self.__sUrl.replace('https', 'http')
         oResponse = cCFScrape().resolve(self.__sUrl, cookie_jar, user_agent)
     elif 'Blazingfast.io' in html or 'xhr.open("GET","' in html:
         oResponse = cBFScrape().resolve(self.__sUrl, cookie_jar, user_agent)
     return oResponse
Exemplo n.º 3
0
    def __check_protection(self, html, user_agent, cookie_jar):
        oResponse = None

        if 'cf-browser-verification' in html:
            oResponse = cCFScrape().resolve(self.__sUrl, cookie_jar,
                                            user_agent)
        elif 'Blazingfast.io' in html:
            oResponse = cBFScrape().resolve(self.__sUrl, cookie_jar,
                                            user_agent)

        return oResponse
def showSeasons():
    oGui = cGui()
    params = ParameterHandler()
    sUrl = params.getValue('sUrl')
    sThumbnail = params.getValue('sThumbnail')
    sTVShowTitle = params.getValue('TVShowTitle')

    oRequest = cRequestHandler(sUrl)
    sHtmlContent = oRequest.request()
    pattern = '<div[^>]*class="hosterSiteDirectNav"[^>]*>.*?<ul>(.*?)<\/ul>'
    parser = cParser()
    isMatch, sMainContent = parser.parseSingleResult(sHtmlContent, pattern)

    if not isMatch:
        oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden')
        return

    pattern = '<a[^>]*href="([^"]*)"[^>]*title="([^"]*)"[^>]*>(.*?)<\/a>.*?'
    isMatch, aResult = parser.parse(sMainContent, pattern)

    if not isMatch:
        oGui.showInfo('xStream', 'Es wurde kein Eintrag gefunden')
        return

    isMatchDesc, sDesc = parser.parseSingleResult(
        sHtmlContent, '<p[^>]*data-full-description="(.*?)"[^>]*>')

    if not sThumbnail:
        isMatchThumb, sThumbnail = parser.parseSingleResult(
            sHtmlContent,
            '<div[^>]*class="seriesCoverBox"[^>]*>.*?<img[^>]*src="([^"]*)"[^>]*>'
        )

        if isMatchThumb:
            sThumbnail = cCFScrape().createUrl(sThumbnail, oRequest)
            params.setParam('sThumbnail', sThumbnail)

    total = len(aResult)
    for sEntryUrl, sName, sText in aResult:
        isMovie = sEntryUrl.endswith('filme')
        oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, ('showEpisodes'))
        oGuiElement.setMediaType('season' if not isMovie else 'movie')
        if sThumbnail:
            oGuiElement.setThumbnail(sThumbnail)
        oGuiElement.setDescription(sDesc)
        if not isMovie:
            oGuiElement.setTVShowTitle(sTVShowTitle)
            oGuiElement.setSeason(sText)
            params.setParam('sSeason', sText)
        params.setParam('sUrl', URL_MAIN + sEntryUrl)
        oGui.addFolder(oGuiElement, params, True, total)

    oGui.setView('seasons')
    oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False):
    oGui = sGui if sGui else cGui()
    params = ParameterHandler()

    if not entryUrl: entryUrl = params.getValue('sUrl')

    iPage = int(params.getValue('page'))
    if iPage > 0:
        entryUrl = entryUrl + ('&' if '?' in entryUrl else
                               '?') + 'page=' + str(iPage)

    oRequestHandler = cRequestHandler(entryUrl,
                                      ignoreErrors=(sGui is not False))
    sHtmlContent = oRequestHandler.request()
    pattern = '<a[^>]*href="([^"]+)" title="([^"]+)"><img src="([^"]+)" alt="'
    parser = cParser()
    isMatch, aResult = parser.parse(sHtmlContent, pattern)

    if not isMatch:
        if not sGui:
            oGui.showInfo('streamon', 'Es wurde kein Eintrag gefunden')
        return

    total = len(aResult)
    for sUrl, sName, sThumbnail in aResult:
        sFunction = "showHosters" if not "serie" in sUrl else "showSeasons"
        if sThumbnail.startswith('/'):
            sThumbnail = URL_MAIN + sThumbnail
        sThumbnail = cCFScrape().createUrl(sThumbnail, oRequestHandler)
        oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, sFunction)
        oGuiElement.setThumbnail(sThumbnail)
        oGuiElement.setMediaType('serie' if 'serie' in sUrl else 'movie')
        params.setParam('entryUrl', URL_MAIN + sUrl)
        params.setParam('sName', sName)
        params.setParam('Thumbnail', sThumbnail)
        oGui.addFolder(oGuiElement,
                       params,
                       bIsFolder="serie" in sUrl,
                       iTotal=total)

    if not sGui:
        isMatch, strPage = parser.parseSingleResult(
            sHtmlContent,
            '<a[^>]*class="next page-numbers"[^>]*href="[^>]*page=([^"]+)">Next &raquo;'
        )
        if isMatch:
            params.setParam('page', int(strPage))
            oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params)

        oGui.setView('tvshows' if 'serie' in entryUrl else 'movies')
        oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False):
    oGui = sGui if sGui else cGui()
    params = ParameterHandler()

    if not entryUrl: entryUrl = params.getValue('sUrl')

    iPage = int(params.getValue('page'))
    if iPage > 0:
        entryUrl = entryUrl + ('&' if '?' in entryUrl else '?') + 'page=' + str(iPage)

    oRequestHandler = cRequestHandler(entryUrl, ignoreErrors = (sGui is not False))
    sHtmlContent = oRequestHandler.request()
    pattern = '<div class="cover"><a[^>]*href="([^"]+)" title="([^"]+).*?data-src="([^"]+)'
    parser = cParser()
    isMatch, aResult = parser.parse(sHtmlContent, pattern)

    if not isMatch: 
        if not sGui: oGui.showInfo('xStream','Es wurde kein Eintrag gefunden')
        return

    total = len(aResult)
    for sUrl, sName, sThumbnail in aResult:
        sFunction = "showHosters" if not "serie" in sUrl else "showSeasons"
        sThumbnail = cCFScrape().createUrl(URL_MAIN + sThumbnail, oRequestHandler)

        oGuiElement = cGuiElement(cUtil().unescape(sName.decode('utf-8')).encode('utf-8'), SITE_IDENTIFIER, sFunction)
        oGuiElement.setThumbnail(sThumbnail)
        oGuiElement.setMediaType('serie' if 'serie' in sUrl else 'movie')
        params.setParam('entryUrl', URL_MAIN + sUrl)
        params.setParam('sName', sName)
        params.setParam('Thumbnail', sThumbnail)
        oGui.addFolder(oGuiElement, params, bIsFolder="serie" in sUrl, iTotal=total)

    isMatch, strPage = parser.parseSingleResult(sHtmlContent, "<a[^>]class='current'.*?<a[^>]href='[^']*'[^>]*>(\d+)<[^>]*>")
    if isMatch:
        params.setParam('page', int(strPage))
        oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params)

    if not sGui:
        oGui.setView('tvshows' if 'serie' in entryUrl else 'movies')
        oGui.setEndOfDirectory()