예제 #1
0
파일: ianime.py 프로젝트: akuala/repo.kuala
def showHosters():
    oGui = cGui()
    oParser = cParser()
    oInputParameterHandler = cInputParameterHandler()
    sUrl = oInputParameterHandler.getValue('siteUrl')
    sMovieTitle = oInputParameterHandler.getValue('sMovieTitle')
    sThumb = oInputParameterHandler.getValue('sThumb')

    oRequestHandler = cRequestHandler(sUrl)
    oRequestHandler.addHeaderEntry('User-Agent', UA)
    sHtmlContent = oRequestHandler.request()

    #VSlog(sUrl)


    if 'HTML/JavaScript Encoder' in sHtmlContent:
        sHtmlContent = ICDecode(sHtmlContent)

    sHtmlContent = sHtmlContent.replace('<iframe src="http://www.promoliens.net', '')
    sHtmlContent = sHtmlContent.replace("<iframe src='cache_vote.php", '')

    list_url = []

    #1 er methode
    sPattern = '<div class="box"><iframe.+?src=[\'|"](.+?)[\'|"]'
    aResult = oParser.parse(sHtmlContent, sPattern)

    if (aResult[0] == True):
        for aEntry in aResult[1]:
            if re.match(".+?&#[0-9]+;", aEntry):#directe mais codé html
                sHosterUrl = cUtil().unescape(aEntry)

            else:#directe en clair
                sHosterUrl = str(aEntry)

            #Ces liens sont tjours des liens
            if (not sHosterUrl.startswith('http')) and (len(sHosterUrl) > 2):
                sHosterUrl = URL_MAIN + sHosterUrl

            list_url.append(sHosterUrl)

    #2 eme methode
    sPattern = '<script>eval\(unescape\((.+?)\); eval\(unescape\((.+?)\);<\/script>'
    aResult = oParser.parse(sHtmlContent, sPattern)
    if (aResult[0] == True):
        for aEntry in aResult[1]:
            #si url cryptee mangacity algo
            sHosterUrl = DecryptMangacity(aEntry[1])
            sHosterUrl = sHosterUrl.replace('\\', '')
            list_url.append(sHosterUrl)

    #3 eme methode
    sPattern = 'document\.write\(unescape\("(%3c%.+?)"\)\);'
    aResult = oParser.parse(sHtmlContent, sPattern)
    if (aResult[0] == True):
        #VSlog("methode 3")
        for aEntry in aResult[1]:
            tmp = Unquote(aEntry)

            sPattern2 = 'src=["\']([^"\']+)["\']'
            aResult = re.findall(sPattern2, tmp)
            if aResult:
                list_url.append(aResult[0])

    #VSlog(str(list_url))

    if len(list_url) > 0:
        for aEntry in list_url:

            sHosterUrl = aEntry

            #Dans le cas ou l'adresse n'est pas directe,on cherche a l'extraire
            if not sHosterUrl[:4] == 'http':
                sHosterUrl = ExtractLink(sHosterUrl)

            #Si aucun lien on arrete ici
            if not sHosterUrl:
                continue

            #si openload code
            if 'openload2.php' in sHosterUrl:
                #on telecharge la page

                oRequestHandler = cRequestHandler(sHosterUrl )
                oRequestHandler.addHeaderEntry('User-Agent', UA)
                sHtmlContent = oRequestHandler.request()
                #Et on remplace le code
                sHtmlContent = ICDecode(sHtmlContent)
                sHosterUrl = ExtractLink(sHtmlContent)

            #Passe par lien .asx ??
            sPattern = '(https*:\/\/www.ianime[^\/\\]+\/[0-9a-zA-Z_-]+\.asx)'
            aResult = oParser.parse(sHosterUrl, sPattern)
            if aResult[0] :
                #on telecharge la page
                oRequestHandler = cRequestHandler(sHosterUrl )
                oRequestHandler.addHeaderEntry('Referer', sUrl)
                oRequestHandler.addHeaderEntry('User-Agent', UA)
                sHtmlContent = oRequestHandler.request()

                #Si c'est une redirection, on passe juste le vrai lien
                if ('ianime' not in oRequestHandler.getRealUrl().split('/')[2]):
                    sHosterUrl = oRequestHandler.getRealUrl()
                else:
                    #Sinon on remplace le code
                    html = ICDecode(sHtmlContent)
                    sHosterUrl = ExtractLink(html)

            #Passe par lien .vxm ??
            #sPattern = 'http:\/\/www.ianime[^\/\\]+\/([0-9a-zA-Z_-]+)\.vxm'
            #aResult = oParser.parse(sHosterUrl, sPattern)
            #if aResult[0] :
            #    sHosterUrl = 'http://embed.nowvideo.sx/embed.php?v=' + aResult[1][0]

            #redirection tinyurl
            if 'tinyurl' in sHosterUrl:
                sHosterUrl = GetTinyUrl(sHosterUrl)


            #test pr liens raccourcis
            if 'http://goo.gl' in sHosterUrl:
                try:
                    headers = {'User-Agent' : 'Mozilla 5.10', 'Host' : 'goo.gl', 'Connection' : 'keep-alive'}
                    request = urllib2.Request(sHosterUrl, None, headers)
                    reponse = urllib2.urlopen(request)
                    sHosterUrl = reponse.geturl()
                except:
                    pass

            #Potection visio.php
            if '/visio.php?' in sHosterUrl:
                oRequestHandler = cRequestHandler(sHosterUrl )
                oRequestHandler.addHeaderEntry('Referer', sUrl)
                oRequestHandler.addHeaderEntry('User-Agent', UA)
                sHtmlContent = oRequestHandler.request()

                sHtmlContent = ICDecode(sHtmlContent)

                sPattern = 'src=[\'"]([^\'"]+)[\'"]'
                aResult = oParser.parse(sHtmlContent, sPattern)
                if aResult[0]:
                    sHosterUrl = aResult[1][0]

            #Derniere en date
            sPattern = "(https*:\/\/www.ianime[^\/\\]+\/[^']+)"
            aResult = oParser.parse(sHosterUrl, sPattern)
            if aResult[0]:

                VSlog('>>' + sHosterUrl)

                oRequestHandler = cRequestHandler(sHosterUrl)
                oRequestHandler.addHeaderEntry('Referer', sUrl)
                oRequestHandler.addHeaderEntry('User-Agent', UA)

                sHtmlContent = oRequestHandler.request()

                sHtmlContent = ICDecode(sHtmlContent)

                sHosterUrl2 = ExtractLink(sHtmlContent)


                if 'intern_player.png' in sHosterUrl2 or 'intern_player2.png' in sHosterUrl2:
                    #VSlog('Fausse image : ' + sHosterUrl)

                    xx = str(random.randint(300, 350))#347
                    yy = str(random.randint(200, 255))#216

                    oRequestHandler = cRequestHandler(sHosterUrl)
                    oRequestHandler.setRequestType(cRequestHandler.REQUEST_TYPE_POST)
                    #Add params
                    oRequestHandler.addParameters('submit.x', xx)
                    oRequestHandler.addParameters('submit.y', yy)

                    #look for hidden params
                    p1 = re.search(r'name="valeur" value="([^"]+)"', sHtmlContent)
                    if p1:
                        #VSlog('Hidden param')
                        oRequestHandler.addParameters('valeur', p1.group(1))

                    #Set headers
                    oRequestHandler.addHeaderEntry('Referer', sUrl)
                    oRequestHandler.addHeaderEntry('User-Agent', UA)
                    sHtmlContent = oRequestHandler.request()

                    #VSlog("Img decode " + sHtmlContent)

                    sHosterUrl2 = ExtractLink(sHtmlContent)

                sHosterUrl = sHosterUrl2

            if 'tinyurl' in sHosterUrl:
                sHosterUrl = GetTinyUrl(sHosterUrl)

            oHoster = cHosterGui().checkHoster(sHosterUrl)
            if (oHoster != False):
                oHoster.setDisplayName(sMovieTitle)
                oHoster.setFileName(sMovieTitle)
                cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb)

    oGui.setEndOfDirectory()
예제 #2
0
def FullUnescape(code):
    sPattern = '<script type="text/javascript">document\.write\(unescape\(".+?"\)\);</script>'
    aResult = re.findall(sPattern, code)
    if aResult:
        return Unquote(aResult[0])
    return code
예제 #3
0
파일: ianime.py 프로젝트: akuala/repo.kuala
def showMovies(sSearch = ''):
    oGui = cGui()
    oParser = cParser()

    if sSearch:

        #query_args = { 's': str(sSearch) }
        #data = urllib.urlencode(query_args)
        #headers = {'User-Agent' : 'Mozilla 5.10', 'Referer' : 'URL_MAIN'}
        #url = URL_MAIN + 'result.php'
        #request = urllib2.Request(url, data, headers)
        #reponse = urllib2.urlopen(request)

        sSearch = Unquote(sSearch)
        sSearch = QuotePlus(sSearch).upper() #remplace espace par + et passe en majuscule

        url = URL_MAIN + 'resultat+' + sSearch + '.html'

        oRequestHandler = cRequestHandler(url)
        oRequestHandler.addHeaderEntry('User-Agent', UA)
        oRequestHandler.addHeaderEntry('Referer', URL_MAIN)
        sHtmlContent = oRequestHandler.request()

    else:
        oInputParameterHandler = cInputParameterHandler()
        sUrl = oInputParameterHandler.getValue('siteUrl')

        oRequestHandler = cRequestHandler(sUrl)
        oRequestHandler.addHeaderEntry('User-Agent', UA)
        sHtmlContent = oRequestHandler.request()
        #sHtmlContent = DecryptMangacity(sHtmlContent)

    if 'HTML/JavaScript Encoder' in sHtmlContent:
        sHtmlContent = ICDecode(sHtmlContent)

    if sHtmlContent.startswith('<script type="text/javascript">'):
        sHtmlContent = FullUnescape(sHtmlContent)

    if sSearch or 'categorie.php' in sUrl or 'categorie_' in sUrl or 'listing3.php?' in sUrl:
        sPattern = '<center><div style="background: url\(\'([^\'].+?)\'\); background-size.+?alt="(.+?)" title.+?<a href=["\']*(.+?)[\'"]* class=.button'
    else:
        sPattern = '<center><div style="background: url\(\'([^\'].+?)\'\); background-size.+?<a href="([^"]+)".+?alt="(.+?)"'

    sHtmlContent = re.sub('<a\s*href=\"categorie.php\?watch=\"\s*class="genre\s*\"', '', sHtmlContent, re.DOTALL)

    aResult = oParser.parse(sHtmlContent, sPattern)

    if (aResult[0] == False):
        oGui.addText(SITE_IDENTIFIER)

    if (aResult[0] == True):
        total = len(aResult[1])
        progress_ = progress().VScreate(SITE_NAME)

        for aEntry in aResult[1]:
            progress_.VSupdate(progress_, total)
            if progress_.iscanceled():
                break


            sThumb = aEntry[0]
            if not sThumb.startswith('http'):
                sThumb = URL_MAIN + sThumb

            if sSearch or 'categorie.php' in sUrl or 'categorie_' in sUrl or 'listing3.php?' in sUrl:
                sTitle = aEntry[1]
                sUrl2 = aEntry[2]
            else:
                sTitle = str(aEntry[2])
                sUrl2 = aEntry[1]

            if not sUrl2.startswith('http'):
                sUrl2 = URL_MAIN + sUrl2

            #affichage de la langue
            sLang = ''
            if 'VF' in sTitle:
                sLang = 'VF'
            elif 'VOSTFR' in sTitle:
                sLang = 'VOSTFR'

            # affichage de la qualité -> NON, qualité fausse
#             sQual = ''
#             if 'DVDRIP' in sTitle:
#                 sQual = 'DVDRIP'

            # Nettoyer le titre
            sTitle = sTitle.replace(' DVDRIP', '')
            sTitle = sTitle.replace('Visionnez ', '').replace('[Streaming] - ', '').replace('gratuitement maintenant','')
            if ' - Episode' in sTitle:
                sTitle = sTitle.replace(' -', '')
            sTitle = cUtil().CleanName(sTitle).capitalize()

            sDisplayTitle = ('%s (%s)') % (sTitle, sLang)

            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', sUrl2)
            oOutputParameterHandler.addParameter('sMovieTitle', sTitle)
            oOutputParameterHandler.addParameter('sThumb', sThumb)

            if '?manga=' in sUrl2:
                oGui.addTV(SITE_IDENTIFIER, 'showEpisode', sDisplayTitle, 'animes.png', sThumb, '', oOutputParameterHandler)
            elif '?serie=' in sUrl2:
                oGui.addTV(SITE_IDENTIFIER, 'showEpisode', sDisplayTitle, 'series.png', sThumb, '', oOutputParameterHandler)
            elif '?film=' in sUrl2:
                oGui.addMovie(SITE_IDENTIFIER, 'showMovies', sDisplayTitle, 'films.png', sThumb, '', oOutputParameterHandler)
            else:
                oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, 'films.png', sThumb, '', oOutputParameterHandler)

        progress_.VSclose(progress_)

        if not sSearch: # une seule page par recherche
            sNextPage = __checkForNextPage(sHtmlContent)
            if (sNextPage != False):
                oOutputParameterHandler = cOutputParameterHandler()
                oOutputParameterHandler.addParameter('siteUrl', sNextPage)
                oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Suivant >>>[/COLOR]', oOutputParameterHandler)

    if not sSearch:
        oGui.setEndOfDirectory()
예제 #4
0
def showMovies(sSearch=''):
    oGui = cGui()

    if sSearch:
        sUrl = URL_MAIN + 'search.php'
        oRequestHandler = cRequestHandler(sUrl)
        oRequestHandler.setRequestType(cRequestHandler.REQUEST_TYPE_POST)
        oRequestHandler.addParameters('q', Unquote(sSearch))
    else:
        oInputParameterHandler = cInputParameterHandler()
        sUrl = oInputParameterHandler.getValue('siteUrl')
        oRequestHandler = cRequestHandler(sUrl)

    oRequestHandler.addHeaderEntry('Referer', URL_MAIN)
    sHtmlContent = oRequestHandler.request()

    if sSearch:
        sPattern = '<a href="([^"]+)".+?url\((.+?)\).+?<div class="title"> (.+?) </div>'
    elif 'Annee/' in sUrl or '/ABC' in sUrl:
        sPattern = '<div class="table-movies-content.+?href="([^"]+)".+?url\((.+?)\).+?<.i>.([^<]+)'
    elif 'genre/' in sUrl:
        sPattern = 'film-uno.+?href="([^"]+)".+?data-src="([^"]+)".+?alt="([^"]+)'
    else:
        sPattern = '<div class="film-uno">.+?<a href="([^"]+)".+?data-src="([^"]+)".+?alt="([^"]+)".+?min.+?·([^<]+).+?short-story">([^<]+)'

    oParser = cParser()
    aResult = oParser.parse(sHtmlContent, sPattern)

    if (aResult[0] == False):
        oGui.addText(SITE_IDENTIFIER)

    if (aResult[0] == True):
        total = len(aResult[1])
        progress_ = progress().VScreate(SITE_NAME)
        oOutputParameterHandler = cOutputParameterHandler()
        for aEntry in aResult[1]:
            progress_.VSupdate(progress_, total)
            if progress_.iscanceled():
                break

            sUrl = aEntry[0]
            sThumb = aEntry[1]
            sTitle = aEntry[2]
            sDesc = ''
            if len(aEntry) > 3:
                if xbmc.getInfoLabel('system.buildversion')[0:2] >= '19':
                    sQual = aEntry[3].split('·')[1].replace('Â', '').strip()
                    sLang = aEntry[3].split('·')[2].strip()
                else:
                    sQual = aEntry[3].split('·')[1].strip()
                    sLang = aEntry[3].split('·')[2].strip()

                sDesc = aEntry[4]

                sDisplayTitle = ('%s [%s] (%s)') % (sTitle, sQual, sLang)

            else:
                sDisplayTitle = sTitle

            oOutputParameterHandler.addParameter('siteUrl', sUrl)
            oOutputParameterHandler.addParameter('sMovieTitle', sTitle)
            oOutputParameterHandler.addParameter('sThumb', sThumb)
            oOutputParameterHandler.addParameter('sDesc', sDesc)
            oGui.addMovie(SITE_IDENTIFIER, 'showHoster', sDisplayTitle, '',
                          sThumb, sDesc, oOutputParameterHandler)
        progress_.VSclose(progress_)

    if not sSearch:
        sNextPage, sPaging = __checkForNextPage(sHtmlContent)
        if (sNextPage != False):
            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', sNextPage)
            # sNumPage = re.search('(page|genre).*?[-=\/]([0-9]+)', sNextPage).group(2)  # ou replace'.html',''; '([0-9]+)$'
            oGui.addNext(SITE_IDENTIFIER, 'showMovies', 'Page ' + sPaging,
                         oOutputParameterHandler)

        oGui.setEndOfDirectory()
예제 #5
0
def showMovies(sSearch=''):
    oGui = cGui()

    if sSearch:
        sUrl = URL_MAIN + 'search.php'
        oRequestHandler = cRequestHandler(sUrl)
        oRequestHandler.setRequestType(cRequestHandler.REQUEST_TYPE_POST)
        oRequestHandler.addParameters('q', Unquote(sSearch))
    else:
        oInputParameterHandler = cInputParameterHandler()
        sUrl = oInputParameterHandler.getValue('siteUrl')
        oRequestHandler = cRequestHandler(sUrl)

    oRequestHandler.addHeaderEntry('Referer', URL_MAIN)
    sHtmlContent = oRequestHandler.request()

    if sSearch:
        sPattern = '<a href="([^"]+)".+?url\((.+?)\).+?<div class="title"> (.+?) </div>'
    elif 'Annee/' in sUrl or '/ABC' in sUrl:
        sPattern = '<div class="table-movies-content.+?href="([^"]+)".+?url\((.+?)\).+?<.i>.([^<]+)'
    elif 'genre/' in sUrl:
        sPattern = 'film-uno.+?href="([^"]+)".+?data-src="([^"]+)".+?alt="([^"]+)'
    else:
        sPattern = 'film-uno">.+?<a href="([^"]+)".+?data-src="([^"]+)".+?alt="([^"]+)".+?short-story">([^<]+)'

    oParser = cParser()
    aResult = oParser.parse(sHtmlContent, sPattern)

    if (aResult[0] == False):
        oGui.addText(SITE_IDENTIFIER)

    if (aResult[0] == True):
        total = len(aResult[1])
        progress_ = progress().VScreate(SITE_NAME)
        for aEntry in aResult[1]:
            progress_.VSupdate(progress_, total)
            if progress_.iscanceled():
                break

            sUrl = aEntry[0]
            sThumb = aEntry[1]
            sTitle = aEntry[2]
            sDesc = ''
            if len(aEntry) > 3:
                sDesc = aEntry[3]

            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', sUrl)
            oOutputParameterHandler.addParameter('sMovieTitle', sTitle)
            oOutputParameterHandler.addParameter('sThumb', sThumb)
            oOutputParameterHandler.addParameter('sDesc', sDesc)
            oGui.addMovie(SITE_IDENTIFIER, 'showHoster', sTitle, '', sThumb,
                          sDesc, oOutputParameterHandler)
        progress_.VSclose(progress_)

    if not sSearch:
        sNextPage = __checkForNextPage(sHtmlContent)
        if (sNextPage != False):
            oOutputParameterHandler = cOutputParameterHandler()
            oOutputParameterHandler.addParameter('siteUrl', sNextPage)
            number = re.search('(page|genre).*?[-=\/]([0-9]+)',
                               sNextPage).group(
                                   2)  # ou replace'.html',''; '([0-9]+)$'
            oGui.addNext(SITE_IDENTIFIER, 'showMovies',
                         '[COLOR teal]Page ' + number + ' >>>[/COLOR]',
                         oOutputParameterHandler)

        oGui.setEndOfDirectory()
예제 #6
0
def showHosters():
    oGui = cGui()
    oParser = cParser()
    oInputParameterHandler = cInputParameterHandler()
    sUrl = oInputParameterHandler.getValue('siteUrl')
    sMovieTitle = oInputParameterHandler.getValue('sMovieTitle')
    sThumb = oInputParameterHandler.getValue('sThumb')

    oRequestHandler = cRequestHandler(sUrl)
    sHtmlContent = oRequestHandler.request()

    # D'abord on saute les redirections.
    if 'replay.robindesdroits' in sUrl:
        sPattern = 'content="0;URL=([^"]+)">'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if aResult:
            sUrl = aResult[1][0]
            oRequestHandler = cRequestHandler(sUrl)
            sHtmlContent = oRequestHandler.request()

    # Ensuite les sites a la con
    if (True):
        if 'AdF' in sHtmlContent:
            sUrl = AdflyDecoder(sUrl)
            if 'motheregarded' in sUrl:
                sPattern = 'href=(.+?)&dp_lp'
                aResult = oParser.parse(sUrl, sPattern)
                if (aResult[0] == True):
                    sUrl = Unquote(''.join(aResult[1])).decode('utf8')

            oRequestHandler = cRequestHandler(sUrl)
            sHtmlContent = oRequestHandler.request()

    # clictune / mylink / ect ...
    sPattern = '<b><a href=".+?redirect\/\?url\=(.+?)\&id.+?">'
    aResult = oParser.parse(sHtmlContent, sPattern)
    if aResult[0] == True:
        sUrl = Unquote(aResult[1][0])

    # Et maintenant le ou les liens

    if 'gounlimited' in sUrl:
        oRequestHandler = cRequestHandler(sUrl)
        sHtmlContent = oRequestHandler.request()

        sPattern = '(eval\(function\(p,a,c,k,e(?:.|\s)+?\))<\/script>'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            sHtmlContent = cPacker().unpack(aResult[1][0])

            sPattern = '{sources:\["([^"]+)"'
            aResult = oParser.parse(sHtmlContent, sPattern)
            if not aResult[0]:
                sPattern = '\[{src:"([^"]+)"'
                aResult = oParser.parse(sHtmlContent, sPattern)

            if aResult[0]:
                sHosterUrl = aResult[1][0]
                oHoster = cHosterGui().checkHoster(sHosterUrl)
                if (oHoster != False):
                    oHoster.setDisplayName(sMovieTitle)
                    oHoster.setFileName(sMovieTitle)
                    cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb)

    elif 'jheberg' in sUrl:
        aResult = cJheberg().GetUrls(sUrl)
        if (aResult):
            for aEntry in aResult:
                sHosterUrl = aEntry

                oHoster = cHosterGui().checkHoster(sHosterUrl)
                if (oHoster != False):
                    oHoster.setDisplayName(sMovieTitle)
                    oHoster.setFileName(sMovieTitle)
                    cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb)

    elif 'multiup' in sUrl:
        aResult = cMultiup().GetUrls(sUrl)

        if (aResult):
            for aEntry in aResult:
                sHosterUrl = aEntry

                oHoster = cHosterGui().checkHoster(sHosterUrl)
                if (oHoster != False):
                    oHoster.setDisplayName(sMovieTitle)
                    oHoster.setFileName(sMovieTitle)
                    cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb)

    else:
        sHosterUrl = sUrl
        oHoster = cHosterGui().checkHoster(sHosterUrl)
        if (oHoster != False):
            oHoster.setDisplayName(sMovieTitle)
            oHoster.setFileName(sMovieTitle)
            cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb)

    oGui.setEndOfDirectory()
예제 #7
0
    def addParameter(self, sParameterName, mParameterValue):
        if not mParameterValue:
            return

        self.__aParams[sParameterName] = Unquote(str(mParameterValue))
예제 #8
0
    def getValue(self, sParamName):
        if (self.exist(sParamName)):
            sParamValue = self.__aParams[sParamName]
            return Unquote(sParamValue)

        return False