Example #1
0
def showHosters():
    sUrl = ParameterHandler().getValue('entryUrl')
    sHtmlContent = cRequestHandler(sUrl).request()
    sPattern = "recaptcha[^>]'([^']+)', '([^']+)', '([^']+).*?"
    sPattern += '">.*?>([^<]+)'
    isMatch, aResult = cParser().parse(sHtmlContent, sPattern)
    pattern = '<meta name="csrf-token" content="([^"]+)">'
    token = re.compile(pattern, flags=re.I | re.M).findall(sHtmlContent)[0]
    hosters = []
    for e, h, sLang, sName in aResult:
        sUrl2 = getLinks(sUrl, e, h, token, sLang)
        hoster = {'link': cUtil.cleanse_text(sUrl2), 'name': cUtil.cleanse_text(sName).strip()}
        hosters.append(hoster)
    if hosters:
        hosters.append('getHosterUrl')
    return hosters
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 = 'data-id=.*?">[^>]*<a[^>]href="([^"]+)".*?'
    pattern += "(?:url[^>]'([^']+)?).*?"
    pattern += 'filename">([^<]+)'
    isMatch, aResult = cParser().parse(sHtmlContent, pattern)
    if not isMatch:
        if not sGui:
            oGui.showInfo('streamon', 'Es wurde kein Eintrag gefunden')
        return
    cf = createUrl(entryUrl, oRequest)
    total = len(aResult)
    for sUrl, sThumbnail, sName in aResult:
        sYear = re.compile("(.*?)\((\d*)\)").findall(sName)
        for name, year in sYear:
            sName = name
            sYear = year
            break
        isTvshow = True if "series" in sUrl else False
        oGuiElement = cGuiElement(
            sName, SITE_IDENTIFIER,
            'showEpisodes' if isTvshow else 'showHosters')
        oGuiElement.setMediaType('tvshow' if isTvshow else 'movie')
        if sThumbnail:
            oGuiElement.setThumbnail(sThumbnail + cf)
        if sYear:
            oGuiElement.setYear(sYear)
        params.setParam('entryUrl', sUrl)
        oGui.addFolder(oGuiElement, params, isTvshow, total)
    isMatchNextPage, sNextUrl = cParser().parseSingleResult(
        sHtmlContent, '<a[^>]href="([^"]+)"[^>]*rel="next"')
    if isMatchNextPage:
        sNextUrl = cUtil.cleanse_text(sNextUrl)
        params.setParam('sUrl', sNextUrl)
        oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params)
    if not sGui:
        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')
    oRequest = cRequestHandler(entryUrl, ignoreErrors=(sGui is not False))
    oRequest.addHeaderEntry('Referer', entryUrl)
    sHtmlContent = oRequest.request()

    pattern = '<a[^>]*class="clip-link".*?title="([^"]+).*?href="([^"]+).*?(?:<img src="([^"]+).*?<span>([^<]+)?)'
    isMatch, aResult = cParser.parse(sHtmlContent, pattern)

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

    total = len(aResult)
    for sName, sUrl, sThumbnail, sDesc in aResult:
        sYear = re.compile("(.*?)\((\d*)\)").findall(sName)

        for name, year in sYear:
            sName = name
            sYear = year
            break

        sID = re.compile('-(\d+)[^>]htm').findall(sUrl)[0]
        oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showHosters')
        oGuiElement.setThumbnail(sThumbnail)
        if sDesc:
            oGuiElement.setDescription(sDesc)
        if sYear:
            oGuiElement.setYear(sYear)
        params.setParam('sUrl', URL_Hoster % sID)
        oGui.addFolder(oGuiElement, params, False, total)

    if not sGui:
        isMatchNextPage, sNextUrl = cParser.parseSingleResult(
            sHtmlContent, '<a[^>]*href="([^"]+)">&gt')
        if isMatchNextPage:
            params.setParam('sUrl', cUtil.cleanse_text(sNextUrl))
            oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params)
        oGui.setView('movies')
        oGui.setEndOfDirectory()
def showEntries(entryUrl=False, sGui=False, sSearchText=False):
    oGui = sGui if sGui else cGui()
    params = ParameterHandler()
    if not entryUrl: entryUrl = params.getValue('sUrl')
    sHtmlContent = cRequestHandler(entryUrl,
                                   ignoreErrors=(sGui is not False)).request()
    pattern = 'poster.*?<img src="([^"]+).*?href="([^"]+)">([^"]+)</a>.*?body">(.*?)div.*?bottom">([^<]+)'
    isMatch, aResult = cParser.parse(sHtmlContent, pattern)

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

    total = len(aResult)
    for sThumbnail, sUrl, sName, sDummy, sDesc in aResult:
        if sSearchText and not cParser().search(sSearchText,
                                                cUtil.cleanse_text(sName)):
            continue
        oGuiElement = cGuiElement(sName, SITE_IDENTIFIER, 'showHosters')
        oGuiElement.setThumbnail(URL_MAIN + sThumbnail)
        oGuiElement.setFanart(URL_MAIN + sThumbnail)
        oGuiElement.setDescription(sDesc)
        isYear, sYear = cParser.parse(sDummy, '>([\d]+)<')
        if isYear:
            oGuiElement.setYear(sYear[0])
        oGuiElement.setMediaType('movie')
        if sUrl.startswith('http'):
            params.setParam('entryUrl', sUrl)
        else:
            params.setParam('entryUrl', URL_MAIN + sUrl)
        oGui.addFolder(oGuiElement, params, False, total)
    if not sGui:
        pattern = 'class="swchItemA1"[^>]*>.*?</b>\s*<a[^>]*href="([^"]+)"'
        isMatchNextPage, sNextUrl = cParser.parseSingleResult(
            sHtmlContent, pattern)
        if isMatchNextPage:
            params.setParam('sUrl', URL_MAIN + sNextUrl)
            oGui.addNextPage(SITE_IDENTIFIER, 'showEntries', params)
        oGui.setView('movies')
        oGui.setEndOfDirectory()
def showGenres():
    oGui = cGui()
    params = ParameterHandler()
    sHtmlContent = cRequestHandler(URL_MAIN).request()
    pattern = 'Filme</a><ul[^>]*class="sub-menu">.*?</ul></li><li[^>]*id'
    isMatch, sHtmlContainer = cParser.parseSingleResult(sHtmlContent, pattern)

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

    pattern = '<a[^>]*href="([^"]+)".*?>([^"]+)</a>'
    isMatch, aResult = cParser.parse(sHtmlContainer, pattern)

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

    for sUrl, sName in aResult:
        sName = cUtil.cleanse_text(sName)
        params.setParam('sUrl', sUrl)
        oGui.addFolder(
            cGuiElement(sName.strip(), SITE_IDENTIFIER, 'showEntries'), params)
    oGui.setEndOfDirectory()
 def __init__(self, sTitle='', sSite=None, sFunction=None):
     self.__sType = 'video'
     self.__sMediaUrl = ''
     self.__sTitle = cUtil.cleanse_text(sTitle)
     self.__sTitleSecond = ''
     self.__sDescription = ''
     self.__sThumbnail = ''
     self.__sIcon = self.DEFAULT_FOLDER_ICON
     self.__aItemValues = {}
     self.__aProperties = {}
     self.__aContextElements = []
     self.__sFanart = self.DEFAULT_FANART
     self.__sSiteName = sSite
     self.__sFunctionName = sFunction
     self._sLanguage = ''
     self._sSubLanguage = ''
     self._sYear = ''
     self._sQuality = ''
     self._mediaType = ''
     self._season = ''
     self._episode = ''
     self._imdbID = ''
     self._rating = ''
     self._isMetaSet = False
 def setTitle(self, sTitle):
     self.__sTitle = cUtil.cleanse_text(sTitle)
 def setDescription(self, sDescription):
     sDescription = cUtil.cleanse_text(sDescription)
     self.__sDescription = sDescription
     self.__aItemValues['plot'] = sDescription
 def setTitleSecond(self, sTitleSecond):
     self.__sTitleSecond = cUtil.cleanse_text(str(sTitleSecond))