예제 #1
0
    def __getMediaLinkForGuest(self):
    
        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()
        
        #Dexieme test Dean Edwards Packer
        oParser = cParser()
        sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
        aResult = oParser.parse(sHtmlContent, sPattern)
        
        if (aResult[0] == True):
                sUnpacked = cPacker().unpack(aResult[1][0])
                
                sPattern =  'file:"([^"]+\.mp4)'
                aResult = oParser.parse(sUnpacked, sPattern)

                if (aResult[0] == True):
                    api_call = aResult[1][0]
              
                return True, api_call
        else:
            cGui().showInfo(self.__sDisplayName, 'Fichier introuvable' , 5)
            return False, False
        
        return False, False
예제 #2
0
    def __getMediaLinkForGuest(self):

        sUrl = self.__sUrl

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

        if 'File was deleted' in sHtmlContent:
            return False,False

        oParser = cParser()
        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 = '{file:"([^"]+)",label:"([^"]+)"}'
        aResult = oParser.parse(sHtmlContent,sPattern)
        if (aResult[0] == True):
            #initialisation des tableaux
            url=[]
            qua=[]
        
            #Remplissage des tableaux
            for i in aResult[1]:
                url.append(str(i[0]))
                qua.append(str(i[1]))
                
            api_call = dialog().VSselectqual(qua,url)

        if (api_call):
            return True, api_call

        return False, False
def GetLink():
    oGui = cGui()

    oInputParameterHandler = cInputParameterHandler()
    sUrl = oInputParameterHandler.getValue('siteUrl')
    sTitle = oInputParameterHandler.getValue('sMovieTitle')

    sThumbnail = oInputParameterHandler.getValue('sThumbnail')

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

    oParser = cParser()
    sPattern = '(\s*eval\s*\(\s*function(?:.|\s)+?{}\)\))'
    aResult = oParser.parse(sHtmlContent, sPattern)
    if (aResult[0] == True):
        sHosterUrl = cPacker().unpack(aResult[1][0])

        sHosterUrl = sHosterUrl.replace('"+window.innerWidth+"', '1680')

        sPattern2 = "src=\\\\\'(.+?)\\\\"
        aResult = oParser.parse(sHosterUrl, sPattern2)
        if (aResult[0] == True):
            oHoster = cHosterGui().checkHoster(aResult[1][0])
            sHosterUrl = aResult[1][0]
        else:
            oHoster = False

        if (oHoster != False):
            sDisplayTitle = cUtil().DecoTitle(sTitle)
            oHoster.setDisplayName(sDisplayTitle)
            oHoster.setFileName(sTitle)
            cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail)

    oGui.setEndOfDirectory()
예제 #4
0
    def __getMediaLinkForGuest(self):
        api_call = False

        sUrl = self.__sUrl

        oRequest = cRequestHandler(sUrl)
        sHtmlContent = oRequest.request()
        if 'File was deleted' in sHtmlContent:
            return False, False

        oParser = cParser()
        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 = '{file:"(http.+?mp4)"}'
        aResult = oParser.parse(sHtmlContent,sPattern)
        if (aResult[0] == True):
            api_call = aResult[1][0] #pas de choix qualité trouvé pour le moment

        if (api_call):
            return True, api_call

        return False, False
예제 #5
0
    def __getMediaLinkForGuest(self):
        api_call = False

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        #type1
        oParser = cParser()
        sPattern = '<source *src="([^"]+)" *type=\'video/.+?\''
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            api_call = aResult[1][0]

        #type2?
        sPattern =  '<script type=\'text/javascript\'>(.+?)</script>'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            stri = cPacker().unpack(aResult[1][0])
            sPattern =  'file:"([^"]+)",label:"([0-9]+)"}'
            aResult = oParser.parse(stri, sPattern)
            if (aResult[0] == True):
                url=[]
                qua=[]

                for aEntry in aResult[1]:
                    url.append(aEntry[0])
                    qua.append(aEntry[1][:3] + '*' + aEntry[1][3:])

                api_call = dialog().VSselectqual(qua, url)

        if (api_call):
            return True, api_call

        return False, False
예제 #6
0
    def __getMediaLinkForGuest(self):
        api_call = ''
        oParser = cParser()

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        sPattern = 'sources: *\[{file:"([^"]+)"'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            api_call = aResult[1][0]
        else:
            sPattern = '(eval\(function\(p,a,c,k,e(?:.|\s)+?\)\)\))'
            aResult = oParser.parse(sHtmlContent, sPattern)
            if (aResult[0] == True):
                sHtmlContent = cPacker().unpack(aResult[1][0])
                sPattern = '{file:"([^"]+.mp4)"'
                aResult = oParser.parse(sHtmlContent,sPattern)
                if (aResult[0] == True):
                    api_call = aResult[1][0]

        if (api_call):
            return True, api_call

        return False, False
예제 #7
0
    def __getMediaLinkForGuest(self):

        oRequestHandler = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequestHandler.request()

        oParser = cParser()
        sPattern = '(\s*eval\s*\(\s*function(?:.|\s)+?{}\)\))'
        #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 = 'file":"([^"]+)".+?"label":"([^"]+)"'
            aResult = oParser.parse(sHtmlContent, sPattern)

            if (aResult[0] == True):
                url=[]
                qua=[]

                for aEntry in aResult[1]:
                    url.append(aEntry[0])
                    qua.append(aEntry[1])

                api_call = dialog().VSselectqual(qua, url)

        if (api_call):
            return True, api_call

        return False, False
예제 #8
0
    def __getMediaLinkForGuest(self):

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()
        
        #Dean Edwards Packer
        sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
        aResult = re.findall(sPattern,sHtmlContent)
        #aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult):
            sUnpacked = cPacker().unpack(aResult[0])
            sHtmlContent = sUnpacked

        sPattern = 'file: *"([^{}<>]+?\.mp4)"}'
        
        oParser = cParser()
        #sHtmlContent=sHtmlContent.replace('|','/')
        aResult = oParser.parse(sHtmlContent, sPattern)


        if (aResult[0] == True):
            api_call = aResult[1][0]
            return True, api_call
            
        return False, False
예제 #9
0
    def __getMediaLinkForGuest(self):

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        api_call = ''

        oParser = cParser()

        sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
        aResult = re.findall(sPattern, sHtmlContent)
        
        if (aResult):
            sUnpacked = cPacker().unpack(aResult[0])
            sHtmlContent = sUnpacked

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

        if (api_call):
            return True, api_call

        return False, False
예제 #10
0
def CheckCpacker(str):

    sPattern = '>([^>]+\(p,a,c,k,e(?:.|\s)+?\)\)\s*)<'
    aResult = re.search(sPattern, str, re.DOTALL | re.UNICODE)
    if (aResult):
        #VSlog('Cpacker encryption')
        str2 = aResult.group(1)

        if not str2.endswith(';'):
            str2 = str2 + ';'

        #if not str2.startswith('eval'):
        #    str2 = 'eval(function' + str2[4:]

        #Me demandez pas pourquoi mais si je l'affiche pas en log, ca freeze ?????
        #VSlog(str2)

        try:
            tmp = cPacker().unpack(str2)
            #tmp = tmp.replace("\\'", "'")
        except:
            tmp =''

        #VSlog(tmp)

        return str[:(aResult.start() + 1)] + tmp + str[(aResult.end()-1):]

    return str
예제 #11
0
    def __getMediaLinkForGuest(self):

        web_url = self.getUrl(self.__sUrl)
        
        oRequest = cRequestHandler(web_url)
        sHtmlContent = oRequest.request()
        
        oParser = cParser()
        
        #Dean Edwards Packer
        sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
        aResult = oParser.parse(sHtmlContent, sPattern)

        if (aResult[0] == True):
            sUnpacked = cPacker().unpack(aResult[1][0])
            sHtmlContent = sUnpacked
            
        sPattern = 'file\s*:\s*"([^"]+)'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            api_call = aResult[1][0]
            return True, api_call
        else:
            return False, False
        
        return False, False
예제 #12
0
파일: thevid.py 프로젝트: rofunds/maximumTv
    def __getMediaLinkForGuest(self): 
                    
        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()
        
        oParser = cParser()
              
        #Dean Edwards Packer
        sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            sUnpacked = cPacker().unpack(aResult[1][0])
        
        #fh = open('c:\\test.txt', "w")
        #fh.write(sUnpacked)
        #fh.close()
        
        if (sUnpacked):

            sPattern ='var vurl2 *= *"([^"]+?)";'
            aResult = oParser.parse(sUnpacked, sPattern)
            
            #print aResult
            
            if (aResult[0] == True):
                return True , aResult[1][0]
        
        cGui().showInfo(self.__sDisplayName, 'Fichier introuvable' , 5)
        
        return False, False
예제 #13
0
    def __getMediaLinkForGuest(self):

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()
        oParser = cParser()

        api_call = False

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

        else:
            sPattern = 'file:"([^"]+)",label:"[0-9]+"}'
            aResult = oParser.parse(sHtmlContent, sPattern)
            if (aResult[0] == True):
                api_call = aResult[1][0] + '|User-Agent=' + UA# + '&Referer=' + self.__sUrl


        if (api_call):
            return True, api_call

        return False, False
예제 #14
0
    def __getMediaLinkForGuest(self):
        api_call = ''

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()
        oParser = cParser()

        #lien direct
        sPattern = ',{file: *"([^"]+)"}\]'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            api_call = aResult[1][0]

        #2 test Dean Edwards Packer
        else:
            sPattern = "<script type='text/javascript'>(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
            aResult = oParser.parse(sHtmlContent, sPattern)
            if (aResult[0] == True):
                sUnpacked = cPacker().unpack(aResult[1][0])
                sPattern =  'file:"([^"]+\.mp4)'
                aResult = oParser.parse(sUnpacked, sPattern)
                if (aResult[0] == True):
                    api_call = aResult[1][0]

        if (api_call):
            return True, api_call

        return False, False
예제 #15
0
    def __getMediaLinkForGuest(self):
        print self.__sUrl
        
        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()
        
        #fh = open('c:\\test.txt', "w")
        #fh.write(sHtmlContent)
        #fh.close()
        
        oParser = cParser()
        
        #lien indirect
        sPattern = '<iframe[^<>]+src="(http:\/\/allvid\.ch\/embed-.+?)"[^<>]+><\/iframe>'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            oRequest = cRequestHandler(aResult[1][0])
            sHtmlContent = oRequest.request()
        
        #test pour voir si code
        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 = 'file:"([^"]+\.mp4)"(?:,label:"([^"]+)")*'
        aResult = oParser.parse(sHtmlContent, sPattern)
        
        api_call = False

        if (aResult[0] == True):
            
            #initialisation des tableaux
            url=[]
            qua=[]
            
            #Replissage des tableaux
            for i in aResult[1]:
                url.append(str(i[0]))
                qua.append(str(i[1]))
                
            #Si une seule url
            if len(url) == 1:
                api_call = url[0]
            #si plus de une
            elif len(url) > 1:
                #Afichage du tableau
                dialog2 = xbmcgui.Dialog()
                ret = dialog2.select('Select Quality',qua)
                if (ret > -1):
                    api_call = url[ret]
 
        if (api_call):
            return True, api_call
            
        return False, False
예제 #16
0
    def __getMediaLinkForGuest(self):

        api_call = ''

        oParser = cParser()
        oRequest = cRequestHandler(self.__sUrl)
        oRequest.addHeaderEntry('User-Agent', UA)
        oRequest.addHeaderEntry('Referer',
                                self.__sUrl.replace('iframe.php?u=', ''))
        sHtmlContent = oRequest.request()

        sPattern = '<input  id=".+?name="([^"]+)" type="hidden" value="([^"]+)"/><input  id="challenge" name="([^"]+)" type="hidden" value="([^"]+)"/>'

        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            postdata = aResult[1][0][0] + '=' + aResult[1][0][
                1] + '&' + aResult[1][0][2] + '=' + aResult[1][0][3]

            oRequest = cRequestHandler(self.__sUrl)
            oRequest.setRequestType(1)
            oRequest.addHeaderEntry('User-Agent', UA)
            oRequest.addHeaderEntry('Referer', self.__sUrl)
            oRequest.addParametersLine(postdata)

            sHtmlContent = oRequest.request()

            sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
            aResult = re.findall(sPattern, sHtmlContent)

            if (aResult):
                sUnpacked = cPacker().unpack(aResult[0])
                sHtmlContent = sUnpacked
                if (sHtmlContent):
                    sPattern = "replace\(.*'(.+?)'"
                    aResult = oParser.parse(sHtmlContent, sPattern)

                    if (aResult[0] == True):
                        from resources.lib.gui.hoster import cHosterGui

                        sHosterUrl = aResult[1][0]

                        if not sHosterUrl.startswith('http'):
                            sHosterUrl = 'http:%s' % sHosterUrl

                        sHosterUrl = sHosterUrl.replace('\\', '')

                        oHoster = cHosterGui().checkHoster(sHosterUrl)
                        oHoster.setUrl(sHosterUrl)
                        api_call = oHoster.getMediaLink()

                        if (api_call[0] == True):
                            return True, api_call[1]

                        return False, False
예제 #17
0
    def __getMediaLinkForGuest(self):

        sId = self.__getIdFromUrl(self.__sUrl)

        sUrl = 'http://vidup.me/embed-' + sId + '.html'

        stream_url = ''
        oRequest = cRequestHandler(sUrl)
        sHtmlContent = oRequest.request()

        key = self.__getKey(sHtmlContent)

        getCode = 'http://vidup.me/jwv/' + key
        oRequest = cRequestHandler(getCode)
        sHtmlContent2 = oRequest.request()
        unPacked = cPacker().unpack(sHtmlContent2)

        oParser = cParser()
        sPattern = 'vt=([^"]+)"'
        aResult = oParser.parse(unPacked, sPattern)
        if (aResult[0] == True):
            code = aResult[1][0]
            url = []
            qua = []

            sPattern = "label: '([0-9]+)p', file: '([^']+)'"
            aResult = oParser.parse(sHtmlContent, sPattern)
            if (aResult[0]):
                for aEntry in aResult[1]:
                    url.append(aEntry[1])
                    qua.append(aEntry[0])
            else:
                sPattern = '"file":"([^"]+)","label":"([0-9]+)p"'
                aResult = oParser.parse(sHtmlContent, sPattern)
                if (aResult[0]):
                    for aEntry in aResult[1]:
                        url.append(aEntry[0])
                        qua.append(aEntry[1])

            #Si une seule url
            if len(url) == 1:
                stream_url = url[0]
            #si plus de une
            elif len(url) > 1:
                #Afichage du tableau
                dialog2 = xbmcgui.Dialog()
                ret = dialog2.select('Select Quality', qua)
                if (ret > -1):
                    stream_url = url[ret]

        if (stream_url):
            return True, stream_url + '?direct=false&ua=1&vt=' + code

        return False, False
예제 #18
0
def showHosters():
    oGui = cGui()
    oInputParameterHandler = cInputParameterHandler()
    sUrl = oInputParameterHandler.getValue('siteUrl')
    sMovieTitle = oInputParameterHandler.getValue('sMovieTitle')
    sThumb = oInputParameterHandler.getValue('sThumb')

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

    oParser = cParser()
    sPattern = '<a href="([^"]+)" target="_blank" rel="noreferrer noopener">'
    aResult = oParser.parse(sHtmlContent, sPattern)

    if (aResult[0] == False):
        sPattern = 'iframe src="([^"]+)"'
        aResult = oParser.parse(sHtmlContent, sPattern)
    else:
        oRequestHandler = cRequestHandler(''.join(aResult[1]))
        sHtmlContent = oRequestHandler.request()

        sPattern = '<a href="([^"]+)" target="_blank" class="link link--external" rel="nofollow '
        aResult = oParser.parse(sHtmlContent, sPattern)

    if (aResult[0] == True):
        for aEntry in aResult[1]:

            if 'gounlimited' in aEntry:
                oRequestHandler = cRequestHandler(aEntry)
                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 (aResult[0] == True):
                        sHosterUrl = aResult[1][0]
                        oHoster = cHosterGui().checkHoster(sHosterUrl)
                        if (oHoster != False):
                            oHoster.setDisplayName(sMovieTitle)
                            oHoster.setFileName(sMovieTitle)
                            cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb)
            else:
                sHosterUrl = aEntry
                oHoster = cHosterGui().checkHoster(sHosterUrl)
                if (oHoster != False):
                    oHoster.setDisplayName(sMovieTitle)
                    oHoster.setFileName(sMovieTitle)
                    cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb)

    oGui.setEndOfDirectory()
예제 #19
0
    def __getMediaLinkForGuest(self):
        print self.__sUrl

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        #fh = open('c:\\test.txt', "w")
        #fh.write(sHtmlContent)
        #fh.close()

        oParser = cParser()

        #lien indirect
        sPattern = '<iframe[^<>]+src="(http:\/\/allvid\.ch\/embed-.+?)"[^<>]+><\/iframe>'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            oRequest = cRequestHandler(aResult[1][0])
            sHtmlContent = oRequest.request()

        #test pour voir si code
        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 = 'file:"([^"]+\.mp4)"(?:,label:"([^"]+)")*'
        aResult = oParser.parse(sHtmlContent, sPattern)

        api_call = False

        if (aResult[0] == True):

            #initialisation des tableaux
            url = []
            qua = []

            #Replissage des tableaux
            for i in aResult[1]:
                url.append(str(i[0]))
                qua.append(str(i[1]))

            #Si au moins 1 url
            if (url):
                #Afichage du tableau
                dialog2 = xbmcgui.Dialog()
                ret = dialog2.select('Select Quality', qua)
                if (ret > -1):
                    api_call = url[ret]

        if (api_call):
            return True, api_call

        return False, False
예제 #20
0
def showHosters():
    oGui = cGui()
    oInputParameterHandler = cInputParameterHandler()
    sUrl = oInputParameterHandler.getValue('siteUrl')
    sMovieTitle = oInputParameterHandler.getValue('sMovieTitle')
    sThumbnail = oInputParameterHandler.getValue('sThumbnail')
    
    oRequestHandler = cRequestHandler(sUrl)
    sHtmlContent = oRequestHandler.request();
    #sHtmlContent = sHtmlContent.replace('<iframe src="//www.facebook.com/plugins/like.php','').replace('<iframe src="http://www.facebook.com/plugins/likebox.php','([^<]+)')
               
        
    sPattern = 'id="player"></div> <script type="text/rocketscript">(.+?)</script>'
    oParser = cParser()
    aResult = oParser.parse(sHtmlContent, sPattern)
    print sPattern

    if (aResult[0] == True):
        sHosterUrl = cPacker().unpack(aResult[1][0])
        print sHosterUrl
        

        
        sPattern2 = '"file":"(.+?)","label":"(.+?)P",' 
        aResult = oParser.parse(sHosterUrl, sPattern2)
	
        if (aResult[0] == True):
			total = len(aResult[1])
			dialog = cConfig().createDialog(SITE_NAME)
			for aEntry in aResult[1]:
				cConfig().updateDialog(dialog, total)
				if dialog.iscanceled():
					break
            
				url = str(aEntry[0])
				Squality = str(aEntry[1])
				sTitle = '[' + Squality + '] ' + sMovieTitle
				if url.startswith('//'):
					url = 'http:' + url
            
				sHosterUrl = url
				oHoster = cHosterGui().checkHoster(sHosterUrl)
				if (oHoster != False):
					sDisplayTitle = cUtil().DecoTitle(sTitle)
					oHoster.setDisplayName(sDisplayTitle)
					oHoster.setFileName(sTitle)
					cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail)
				

			cConfig().finishDialog(dialog)
                
    oGui.setEndOfDirectory()
예제 #21
0
    def __getMediaLinkForGuest(self, api_call=None):

        sUrl = self.__sUrl

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

        if 'File was deleted' in sHtmlContent:
            return False, False

        oParser = cParser()
        sPattern = '(eval\(function\(p,a,c,k,e(?:.|\s)+?\))<\/script>'
        aResult = oParser.parse(sHtmlContent, sPattern)

        if (aResult[0] == True):
            sHtmlContent2 = cPacker().unpack(aResult[1][0])

            sPattern = '{file:"([^"]+)",label:"([^"]+)"}'
            aResult = oParser.parse(sHtmlContent2, sPattern)
            if aResult[0]:
                # initialisation des tableaux
                url = []
                qua = []
                for i in aResult[1]:
                    url.append(str(i[0]))
                    qua.append(str(i[1]))

                api_call = dialog().VSselectqual(qua, url)

            if not api_call:
                sPattern = 'src:"([^"]+)"'
                aResult = oParser.parse(sHtmlContent2, sPattern)
                if aResult[0]:
                    api_call = aResult[1][0].replace(',', '').replace(
                        '.urlset', '')

        if not api_call:
            sPattern = 'sources: *\[{src: "([^"]+)", *type: "video/mp4"'
            aResult = oParser.parse(sHtmlContent, sPattern)
            if aResult[0]:
                api_call = aResult[1][0]

        if not api_call:
            sPattern = 'source src="([^"]+)" type='
            aResult = oParser.parse(sHtmlContent, sPattern)
            if aResult[0]:
                api_call = aResult[1][0]

        if api_call:
            return True, api_call

        return False, False
예제 #22
0
def CheckCpacker(str):
    oParser = cParser()
    sPattern = '(\s*eval\s*\(\s*function(?:.|\s)+?{}\)\))'
    aResult = oParser.parse(str, sPattern)
    if (aResult[0]):
        xbmc.log('Cpacker encryption')
        str2 = aResult[1][0]
        if not str2.endswith(';'):
            str2 = str2 + ';'

        return cPacker().unpack(str2)

    return str
예제 #23
0
def CheckCpacker(sHtmlContent):
    oParser = cParser()
    sPattern = "(eval\(function\(p,a,c,k,e(?:.|\s)+?\))<\/script>"
    aResult = oParser.parse(sHtmlContent, sPattern)
    if (aResult[0] == True):
        str2 = aResult[1][0]
        try:
            result = cPacker().unpack(str2)
            return result
        except:
            pass

    return False
예제 #24
0
def showHosters():
    oGui = cGui()
    oInputParameterHandler = cInputParameterHandler()
    sUrl = oInputParameterHandler.getValue('siteUrl')
    sMovieTitle = oInputParameterHandler.getValue('sMovieTitle')
    sThumb = oInputParameterHandler.getValue('sThumb')
    #vimple redirect to ok or openload
    oRequestHandler = cRequestHandler(sUrl)
    sHtmlContent = oRequestHandler.request()

    oParser = cParser()
    list_url = []

    sPattern = '<iframe.+?src="(http(?:|s):\/\/media\.vimple\.me.+?f=([^"]+))"'
    aResult = oParser.parse(sHtmlContent, sPattern)
    if (aResult[0] == True):

        sUrl3 = 'https://ok.ru/videoembed/' + aResult[1][0][1]
        list_url.append(sUrl3)

        sUrl2 = aResult[1][0][0]

        oRequestHandler = cRequestHandler(sUrl2)
        oRequestHandler.addHeaderEntry(
            'User-Agent',
            'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:61.0) Gecko/20100101 Firefox/61.0'
        )
        oRequestHandler.addHeaderEntry('Referer', sUrl)
        sHtmlContent = oRequestHandler.request()

        sHtmlContent = oParser.abParse(sHtmlContent, "<script>",
                                       "</script><script>")

        sPattern = 'eval\s*\(\s*function(?:.|\s)+?{}\)\)'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            sHtmlContent = cPacker().unpack(aResult[1][0])
            sHtmlContent = sHtmlContent.replace('\\', '')
            code = re.search('(https://openload.+?embed\/.+?\/)', sHtmlContent)
            if code:
                sUrl4 = code.group(1)
                list_url.append(sUrl4)

    for aEntry in list_url:
        oHoster = cHosterGui().checkHoster(aEntry)
        if (oHoster != False):
            oHoster.setDisplayName(sMovieTitle)
            oHoster.setFileName(sMovieTitle)
            cHosterGui().showHoster(oGui, oHoster, aEntry, '')

    oGui.setEndOfDirectory()
예제 #25
0
def showHosters():
    oGui = cGui()
    oInputParameterHandler = cInputParameterHandler()
    sUrl = oInputParameterHandler.getValue('siteUrl')
    sMovieTitle = oInputParameterHandler.getValue('sMovieTitle')
    sThumbnail = oInputParameterHandler.getValue('sThumbnail')

    oRequestHandler = cRequestHandler(sUrl)
    sHtmlContent = oRequestHandler.request()
    # ([^<]+)
    #recup du lien mp4
    sPattern = '<iframe.+?src="([^"]+)"'
    oParser = cParser()
    aResult = oParser.parse(sHtmlContent, sPattern)
    if (aResult[0] == True):
        oRequest = cRequestHandler(aResult[1][0])
        sHtmlContent = oRequest.request()

        #test pour voir si code
    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 = '"label":"([^"]+)","type":"video\/mp4","file":"([^"]+)"'
    aResult = oParser.parse(sHtmlContent, sPattern)

    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

            url = str(aEntry[1])
            sTitle = str(aEntry[0])
            if url.startswith('//'):
                url = 'http:' + url

            sHosterUrl = url
            oHoster = cHosterGui().checkHoster(sHosterUrl)
            if (oHoster != False):
                sDisplayTitle = sTitle
                oHoster.setDisplayName(sDisplayTitle)
                oHoster.setFileName(sMovieTitle)
                cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail)

        progress_.VSclose(progress_)

    oGui.setEndOfDirectory()
예제 #26
0
    def __getMediaLinkForGuest(self): 
  
        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()
        oParser = cParser()

        api_call = ''
        
        sId = self.__getIdFromhtml(sHtmlContent)
        if sId == '':
            return False,False
            
        oRequest = cRequestHandler('https://thevideo.cc/vsign/player/' + sId)
        sHtmlContent2 = oRequest.request()
        sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?\)\))"
        aResult = oParser.parse(sHtmlContent2, sPattern)
        if (aResult[0] == True):
            sUnpacked = cPacker().unpack(aResult[1][0])
            sPattern = 'vt=([^"]+)";'
            aResult = oParser.parse(sUnpacked, sPattern)
            if (aResult[0] == True):
                sVt =  aResult[1][0]
        
        sPattern = '"file":"([^"]+)","label":"([^"]+)"'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            #initialisation des tableaux
            url=[]
            qua=[]
        
            #Remplissage des tableaux
            for i in aResult[1]:
                url.append(str(i[0]))
                qua.append(str(i[1]))
                
            #Si une seule url
            if len(url) == 1:
                api_call = url[0]
            #si plus de une
            elif len(url) > 1:
            #Affichage du tableau
                dialog2 = xbmcgui.Dialog()
                ret = dialog2.select('Select Quality', qua)
                if (ret > -1):
                    api_call = url[ret]
        
        if (api_call):
            return True, api_call + '?direct=false&ua=1&vt=' + sVt 
            
        return False, False
예제 #27
0
    def __getMediaLinkForGuest(self):

        url_stream = ''

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        oParser = cParser()

        sPattern = "<script type='text\/javascript'>(eval\(function\(p,a,c,k,e,d.+?)<\/script>"
        aResult = oParser.parse(sHtmlContent, sPattern)

        if (aResult[0] == True):
            for i in aResult[1]:
                sHtmlContent = cPacker().unpack(i)
                #xbmc.log(sHtmlContent)

                #Premiere methode avec <embed>
                if '<embed' in sHtmlContent:
                    pass

                #deuxieme methode, lien code aes
                else:
                    EncodedLink = re.search('file:"([^"]+)"', sHtmlContent,
                                            re.DOTALL)

                    if (EncodedLink):

                        Key = "a949376e37b369" + "f17bc7d3c7a04c5721"
                        x = GKDecrypter(128, 128)
                        sUrl = x.decrypt(EncodedLink.group(1),
                                         Key.decode("hex"),
                                         "ECB").split('\0')[0]

                        #Si utilise pyaes
                        #import resources.lib.pyaes as pyaes
                        #decryptor = pyaes.new(Key.decode("hex"), pyaes.MODE_ECB, IV='')
                        #sUrl = decryptor.decrypt(lt.decode("hex")).replace('\x00', '')

                        #xbmc.log('>> ' + sUrl)

                        url_stream = sUrl

        if (url_stream):
            return True, url_stream
        else:
            cGui().showInfo(self.__sDisplayName, 'Fichier introuvable', 5)
            return False, False

        return False, False
예제 #28
0
    def __getMediaLinkForGuest(self):

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()
        oParser = cParser()

        api_call = ''

        sId = self.__getIdFromhtml(sHtmlContent)
        if sId == '':
            return False, False

        oRequest = cRequestHandler('https://thevideo.cc/vsign/player/' + sId)
        sHtmlContent2 = oRequest.request()
        sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?\)\))"
        aResult = oParser.parse(sHtmlContent2, sPattern)
        if (aResult[0] == True):
            sUnpacked = cPacker().unpack(aResult[1][0])
            sPattern = 'vt=([^"]+)";'
            aResult = oParser.parse(sUnpacked, sPattern)
            if (aResult[0] == True):
                sVt = aResult[1][0]

        sPattern = '"file":"([^"]+)","label":"([^"]+)"'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            #initialisation des tableaux
            url = []
            qua = []

            #Remplissage des tableaux
            for i in aResult[1]:
                url.append(str(i[0]))
                qua.append(str(i[1]))

            #Si une seule url
            if len(url) == 1:
                api_call = url[0]
            #si plus de une
            elif len(url) > 1:
                #Affichage du tableau
                dialog2 = xbmcgui.Dialog()
                ret = dialog2.select('Select Quality', qua)
                if (ret > -1):
                    api_call = url[ret]

        if (api_call):
            return True, api_call + '?direct=false&ua=1&vt=' + sVt

        return False, False
예제 #29
0
    def __getMediaLinkForGuest(self):
        api_call = False

        sUrl = self.__sUrl

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

        oParser = cParser()
        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 = '{file:"(http.+?m3u8)"}'  #sPattern = '{file:"([^"]+)",label:"(\d+)"}'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            m3url = aResult[1][0]
            oRequest = cRequestHandler(m3url)
            oRequest.addHeaderEntry('User-Agent', UA)
            oRequest.addHeaderEntry(
                'Referer', 'http://watchers.to/player7/jwplayer.flash.swf')
            sHtmlContent = oRequest.request()

        #fh = open('c:\\test.txt', "w")
        #fh.write(sHtmlContent)
        #fh.close()

        sPattern = ',RESOLUTION=(.+?),.+?(http.+?m3u8)'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            #initialisation des tableaux
            url = []
            qua = []
            #Replissage des tableaux
            for i in aResult[1]:
                url.append(str(i[1]))
                qua.append(str(i[0]))

            #tableau
            api_call = dialog().VSselectqual(qua, url)

            # ne fonctionne pas a partir des fichiers mp4 (video de 3 minutes) meme sur firefox ???
            api_call = api_call + '|User-Agent=' + UA
            api_call = api_call + '&Referer=http://watchers.to/player7/jwplayer.flash.swf'

        if (api_call):
            return True, api_call

        return False, False
예제 #30
0
    def __getMediaLinkForGuest(self):
   
        api_call = False
        
        #xbmc.log(self.__sUrl)
        
        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()
        
        oParser = cParser()
    
        #Dean Edwards Packer
        sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
        aResult = oParser.parse(sHtmlContent, sPattern)
        
        
        if (aResult[0] == True):
            sUnpacked = cPacker().unpack(aResult[1][0])
            sHtmlContent = sUnpacked
            
        
        sPattern = '{file:"(.+?)",label:"(.+?)"}'
        aResult = oParser.parse(sHtmlContent, sPattern)
        
        #print aResult

        if (aResult[0] == True):
            #initialisation des tableaux
            url=[]
            qua=[]
        
            #Replissage des tableaux
            for i in aResult[1]:
                url.append(str(i[0]))
                qua.append(str(i[1]))
                
            #Si au moins 1 url
            if (url):
            #Afichage du tableau
                dialog2 = xbmcgui.Dialog()
                ret = dialog2.select('Select Quality',qua)
                if (ret > -1):
                    api_call = url[ret]

        #print api_call
        
        if (api_call):
            return True, api_call
            
        return False, False
예제 #31
0
    def __getMediaLinkForGuest(self):

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        sPattern = "type='text\/javascript'>(eval\(function\(p,a,c,k,e,d\){.+?\)\)\))"
        aResult = re.findall(sPattern, sHtmlContent)
        if (aResult):
            sHtmlContent = cPacker().unpack(aResult[0])

        api_call = re.search('file: *"([^"]+(?<!m3u8))"', sHtmlContent)
        if (api_call):
            return True, api_call.group(1)

        return False, False
예제 #32
0
def CheckCpacker(str):

    sPattern = '(\s*eval\s*\(\s*function(?:.|\s)+?{}\)\))'
    aResult = re.findall(sPattern, str)
    if (aResult):
        str2 = aResult[0]
        if not str2.endswith(';'):
            str2 = str2 + ';'
        try:
            str = cPacker().unpack(str2)
            print('Cpacker encryption')
        except:
            pass

    return str
예제 #33
0
    def __getMediaLinkForGuest(self):

        api_call = False

        #xbmc.log(self.__sUrl)

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        oParser = cParser()

        #Dean Edwards Packer
        sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
        aResult = oParser.parse(sHtmlContent, sPattern)

        if (aResult[0] == True):
            sUnpacked = cPacker().unpack(aResult[1][0])
            sHtmlContent = sUnpacked

        sPattern = '{file:"(.+?)",label:"(.+?)"}'
        aResult = oParser.parse(sHtmlContent, sPattern)

        #print aResult

        if (aResult[0] == True):
            #initialisation des tableaux
            url = []
            qua = []

            #Replissage des tableaux
            for i in aResult[1]:
                url.append(str(i[0]))
                qua.append(str(i[1]))

            #Si au moins 1 url
            if (url):
                #Afichage du tableau
                dialog2 = xbmcgui.Dialog()
                ret = dialog2.select('Select Quality', qua)
                if (ret > -1):
                    api_call = url[ret]

        #print api_call

        if (api_call):
            return True, api_call

        return False, False
예제 #34
0
    def __getMediaLinkForGuest(self):

        api_call = ''

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        oParser = cParser()
        sPattern = 'JuicyCodes\.Run\("(.+?)"\);'
        aResult = oParser.parse(sHtmlContent, sPattern)

        if (aResult[0] == True):

            media = aResult[1][0].replace('+', '')
            media = base64.b64decode(media)

            #cPacker decode
            from resources.lib.packer import cPacker
            media = cPacker().unpack(media)

            if (media):

                sPattern = '{"file":"(.+?)","label":"(.+?)"'
                aResult = oParser.parse(media, sPattern)

                if (aResult[0] == True):
                    #initialisation des tableaux
                    url = []
                    qua = []
                    #Remplissage des tableaux
                    for i in aResult[1]:
                        url.append(str(i[0]))
                        qua.append(str(i[1]))
                #Si une seule url
                    if len(url) == 1:
                        api_call = url[0]
                #si plus de une
                    elif len(url) > 1:
                        #Affichage du tableau
                        dialog2 = xbmcgui.Dialog()
                        ret = dialog2.select('Select Quality', qua)
                        if (ret > -1):
                            api_call = url[ret]

        if (api_call):
            return True, api_call

        return False, False
예제 #35
0
    def __getMediaLinkForGuest(self):
        
        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()
        
        #fh = open('c:\\test.txt', "w")
        #fh.write(sHtmlContent)
        #fh.close()
        
        #Debut des tests de decodage
        oParser = cParser()
        string = ''
       
        #"aaencode - Encode any JavaScript program to Japanese style emoticons (^_^)"
        sPattern = "<video(?:.|\s)*?<script\s[^>]*?>((?:.|\s)*?)<\/script"
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            string = AADecoder(aResult[1][0]).decode()
            print string
                
        if not (string): 
            #Dean Edwards Packer
            sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
            aResult = oParser.parse(sHtmlContent, sPattern)
            if (aResult[0] == True):
                sUnpacked = cPacker().unpack(aResult[1][0])
                string = JJDecoder(sUnpacked).decode()

        if (string):
            sContent = string.replace('\\','')
            
            api_call = ''

            sPattern = 'src=\s*?"(.*?)\?'
            aResult = oParser.parse(sContent, sPattern)
            if (aResult[0] == True):
                api_call = aResult[1][0]
                
            if not api_call:
                sPattern = 'window\.vr *=["\'](.+?)["\']'
                aResult = oParser.parse(sContent, sPattern)
                if (aResult[0] == True):
                    api_call = aResult[1][0]

        if (api_call):
            return True, api_call
            
        return False, False
예제 #36
0
    def __getMediaLinkForGuest(self):
        api_call = ''

        oParser = cParser()
        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        sPattern = '<input type="(?:hidden|submit)" name="([^"]+)" value="([^"]+)"'

        aResult = oParser.parse(sHtmlContent, sPattern)

        if (aResult[0] == True):
            time.sleep(3)
            oRequest = cRequestHandler(self.__sUrl)
            oRequest.setRequestType(cRequestHandler.REQUEST_TYPE_POST)
            for aEntry in aResult[1]:
                oRequest.addParameters(aEntry[0], aEntry[1])

            oRequest.addParameters('referer', self.__sUrl)
            oRequest.addHeaderEntry('User-Agent', UA)

            sHtmlContent = oRequest.request()

            sPattern = '{file: *"([^"]+smil)"}'
            aResult = oParser.parse(sHtmlContent, sPattern)
            if (aResult[0] == True):
                api_call = self.extractSmil(aResult[1][0])

            else:
                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 = '{file: *"([^"]+smil)"}'
                    aResult = oParser.parse(sHtmlContent, sPattern)
                    if (aResult[0] == True):
                        api_call = self.extractSmil(aResult[1][0])
                    else:
                        sPattern = '{file: *"([^"]+mp4)"'
                        aResult = oParser.parse(sHtmlContent, sPattern)
                        if (aResult[0] == True):
                            api_call = aResult[1][0]

        if (api_call):
            return True, api_call

        return False, False
예제 #37
0
    def __getMediaLinkForGuest(self):

        sUrl = self.__sUrl

        oRequest = cRequestHandler(sUrl)
        oRequest.addHeaderEntry('User-Agent', UA)
        oRequest.addHeaderEntry('Referer', self.__sUrl)
        sHtmlContent = oRequest.request()

        oParser = cParser()

        sPattern = 'src: "([^<]+)", type'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            api_call = aResult[1][
                0] + '|User-Agent=' + UA + '&Referer=' + self.__sUrl

        if (api_call):
            return True, api_call

        sPattern = "<script type='text/javascript'>var player = new Clappr.Player(.+?)</script>"
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            sHtmlContent2 = aResult[1][0]

        sPattern = '"(.+?)"],'
        aResult = oParser.parse(sHtmlContent2, sPattern)
        if (aResult[0] == True):
            api_call = aResult[1][0] + '&Referer=' + self.__sUrl

        if (api_call):
            return True, api_call

        sPattern = "<script type='text/javascript'>(.+?)</script>"
        aResult = oParser.parse(sHtmlContent, sPattern)

        if (aResult[0] == True):
            sHtmlContent3 = cPacker().unpack(aResult[1][0])

            sPattern2 = '"(.+?)"],poster'
            aResult = oParser.parse(sHtmlContent3, sPattern2)

            if (aResult[0] == True):
                api_call = aResult[1][0] + '&Referer=' + self.__sUrl
        if (api_call):
            return True, api_call

        return False, False
예제 #38
0
    def __getMediaLinkForGuest(self):

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()
        if 'File was deleted' in sHtmlContent:
            return False, False

        api_call = ''

        oParser = cParser()
        sPattern = '{file: *"([^"]+(?<!smil))"'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            api_call = aResult[1][0]

        else:
            from resources.lib.packer import cPacker
            sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
            aResult = re.findall(sPattern, sHtmlContent)
            if (aResult):
                sUnpacked = cPacker().unpack(aResult[0])
                sHtmlContent = sUnpacked

                sPattern = '{file:"(.+?)",label:"(.+?)"}'
                aResult = oParser.parse(sHtmlContent, sPattern)
                if (aResult[0] == True):
                #initialisation des tableaux
                    url=[]
                    qua=[]
                #Remplissage des tableaux
                    for i in aResult[1]:
                        url.append(str(i[0]))
                        qua.append(str(i[1]))
                #Si une seule url
                    if len(url) == 1:
                        api_call = url[0]
                #si plus de une
                    elif len(url) > 1:
                #Affichage du tableau
                        dialog2 = xbmcgui.Dialog()
                        ret = dialog2.select('Select Quality', qua)
                        if (ret > -1):
                            api_call = url[ret]

        if (api_call):
            return True, api_call

        return False, False
예제 #39
0
    def __getMediaLinkForGuest(self):

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()
        if 'File was deleted' in sHtmlContent:
            return False,False  

        api_call = ''
        
        oParser = cParser()
        sPattern = '{file: *"([^"]+(?<!smil))"'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            api_call = aResult[1][0]
            
        else:
            from resources.lib.packer import cPacker
            sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
            aResult = re.findall(sPattern,sHtmlContent)
            if (aResult):
                sUnpacked = cPacker().unpack(aResult[0])
                sHtmlContent = sUnpacked
        
                sPattern = '{file:"(.+?)",label:"(.+?)"}'
                aResult = oParser.parse(sHtmlContent, sPattern)
                if (aResult[0] == True):
                #initialisation des tableaux
                    url=[]
                    qua=[]
                #Replissage des tableaux
                    for i in aResult[1]:
                        url.append(str(i[0]))
                        qua.append(str(i[1]))
                #Si une seule url
                    if len(url) == 1:
                        api_call = url[0]
                #si plus de une
                    elif len(url) > 1:
                #Afichage du tableau
                        dialog2 = xbmcgui.Dialog()
                        ret = dialog2.select('Select Quality',qua)
                        if (ret > -1):
                            api_call = url[ret]

        if (api_call):
            return True, api_call
            
        return False, False
예제 #40
0
    def __getMediaLinkForGuest(self):

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        oParser = cParser()

        if (False):
            #Dean Edwards Packer
            sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
            aResult = re.findall(sPattern, sHtmlContent)
            #aResult = oParser.parse(sHtmlContent, sPattern)
            if (aResult):
                sUnpacked = cPacker().unpack(aResult[0])
                sHtmlContent = sUnpacked

        #sPattern = 'file: *"([^{}<>]+?\.mp4)"}'
        sPattern = '{file:"(.+?)",label:"(.+?)"}'
        aResult = oParser.parse(sHtmlContent, sPattern)

        api_call = ''

        if (aResult[0] == True):
            #initialisation des tableaux
            url = []
            qua = []

            #Replissage des tableaux
            for i in aResult[1]:
                url.append(str(i[0]))
                qua.append(str(i[1]))

            #Si une seule url
            if len(url) == 1:
                api_call = url[0]
            #si plus de une
            elif len(url) > 1:
                #Afichage du tableau
                dialog2 = xbmcgui.Dialog()
                ret = dialog2.select('Select Quality', qua)
                if (ret > -1):
                    api_call = url[ret]

        if (api_call):
            return True, api_call

        return False, False
예제 #41
0
    def __getMediaLinkForGuest(self):
        print self.__sUrl

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        #fh = open('c:\\test.txt', "w")
        #fh.write(sHtmlContent)
        #fh.close()

        oParser = cParser()

        #lien indirect
        sPattern = '<iframe.+?src="([^"]+)"'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            oRequest = cRequestHandler(aResult[1][0])
            sHtmlContent = oRequest.request()

        #test pour voir si code
        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 = 'file:"([^"]+\.mp4)"(?:,label:"([^"]+)")*'
        aResult = oParser.parse(sHtmlContent, sPattern)

        api_call = False

        if (aResult[0] == True):

            #initialisation des tableaux
            url = []
            qua = []

            #Replissage des tableaux
            for i in aResult[1]:
                url.append(str(i[0]))
                qua.append(str(i[1]))

            api_call = dialog().VSselectqual(qua, url)

            if (api_call):
                return True, api_call

        return False, False
예제 #42
0
    def __getMediaLinkForGuest(self):

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        #fh = open('c:\\test.txt', "w")
        #fh.write(sHtmlContent)
        #fh.close()

        #Debut des tests de decodage
        oParser = cParser()
        string = ''

        #"aaencode - Encode any JavaScript program to Japanese style emoticons (^_^)"
        sPattern = "<video(?:.|\s)*?<script\s[^>]*?>((?:.|\s)*?)<\/script"
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            string = AADecoder(aResult[1][0]).decode()

        if not (string):
            #Dean Edwards Packer
            sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
            aResult = oParser.parse(sHtmlContent, sPattern)
            if (aResult[0] == True):
                sUnpacked = cPacker().unpack(aResult[1][0])
                string = JJDecoder(sUnpacked).decode()

        if (string):
            sContent = string.replace('\\', '')

            api_call = ''

            sPattern = 'src=\s*?"(.*?)\?'
            aResult = oParser.parse(sContent, sPattern)
            if (aResult[0] == True):
                api_call = aResult[1][0]

            if not api_call:
                sPattern = 'window\.vr *="(.+?)"'
                aResult = oParser.parse(sContent, sPattern)
                if (aResult[0] == True):
                    api_call = aResult[1][0]

        if (api_call):
            return True, api_call

        return False, False
예제 #43
0
    def __getMediaLinkForGuest(self):

        url_stream = ''

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        oParser = cParser()

        sPattern =  "<script type='text\/javascript'>(eval\(function\(p,a,c,k,e,d.+?)<\/script>"
        aResult = oParser.parse(sHtmlContent, sPattern)

        if (aResult[0] == True):
            for i in aResult[1]:
                sHtmlContent = cPacker().unpack(i)
                #xbmc.log(sHtmlContent)

                #Premiere methode avec <embed>
                if '<embed' in sHtmlContent:
                    pass

                #deuxieme methode, lien code aes
                else:
                    EncodedLink = re.search('file:"([^"]+)"', sHtmlContent, re.DOTALL)

                    if (EncodedLink):

                        Key = "a949376e37b369" + "f17bc7d3c7a04c5721"
                        x = GKDecrypter(128, 128)
                        sUrl = x.decrypt(EncodedLink.group(1), Key.decode("hex"), "ECB").split('\0')[0]

                        #Si utilise pyaes
                        #import resources.lib.pyaes as pyaes
                        #decryptor = pyaes.new(Key.decode("hex"), pyaes.MODE_ECB, IV = '')
                        #sUrl = decryptor.decrypt(lt.decode("hex")).replace('\x00', '')

                        #xbmc.log('>> ' + sUrl)

                        url_stream = sUrl

        if (url_stream):
            return True, url_stream
        else:
            return False, False

        return False, False
예제 #44
0
    def __getUrlFromJavascriptCode(self, sHtmlContent):

        sPattern = "(eval\(function.*?)(.+?)</script>"

        oParser = cParser()
        #aResult = oParser.parse(sHtmlContent, sPattern)
        aResult = re.search('(eval\(function.*?)\s*</script>', sHtmlContent, re.DOTALL)

        if (aResult.group(1)):
            sJavascript = aResult.group(1)

            #sUnpacked = cJsUnpacker().unpackByString(sJavascript)
            sUnpacked = cPacker().unpack(sJavascript)

            return sUnpacked

        return False
예제 #45
0
    def __getMediaLinkForGuest(self):
        #print self.__sUrl
        
        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()
        
        #fh = open('c:\\test.txt', "w")
        #fh.write(sHtmlContent)
        #fh.close()
        
        oParser = cParser()
        
        #test pour voir si code
        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 = 'file:"([^"]+\.mp4)"(?:,label:"([^"]+)")*'
        aResult = oParser.parse(sHtmlContent, sPattern)
        
        api_call = False

        if (aResult[0] == True):
            
            #initialisation des tableaux
            url=[]
            qua=[]
            
            #Replissage des tableaux
            for i in aResult[1]:
                url.append(str(i[0]))
                qua.append(str(i[1]))
                
            #Si au moins 1 url
            if (url):
                #Afichage du tableau
                dialog2 = xbmcgui.Dialog()
                ret = dialog2.select('Select Quality',qua)
                if (ret > -1):
                    api_call = url[ret]
 
        if (api_call):
            return True, api_call
            
        return False, False
예제 #46
0
    def __getUrlFromJavascriptCode(self, sHtmlContent):

        sPattern = "(eval\(function.*?)(.+?)</script>"
        
        oParser = cParser()
        #aResult = oParser.parse(sHtmlContent, sPattern)
        aResult = re.search('(eval\(function.*?)\s*</script>', sHtmlContent, re.DOTALL)

        if (aResult.group(1)):
            sJavascript = aResult.group(1)
            
            #sUnpacked = cJsUnpacker().unpackByString(sJavascript)
            sUnpacked = cPacker().unpack(sJavascript)
            
            return sUnpacked

        return False
예제 #47
0
    def __getMediaLinkForGuest(self):

        sUrl = self.__sUrl

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

        oParser = cParser()
        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 = '{file:"(http.+?m3u8)"}'  #sPattern = '{file:"([^"]+)",label:"(\d+)"}'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            m3url = aResult[1][0]
            oRequest = cRequestHandler(m3url)
            sHtmlContent = oRequest.request()

        sPattern = ',RESOLUTION=(.+?),.+?(http.+?m3u8)'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            #initialisation des tableaux
            url = []
            qua = []
            #Replissage des tableaux
            for i in aResult[1]:
                url.append(str(i[1]))
                qua.append(str(i[0]))
            #Si une seule url
            if len(url) == 1:
                api_call = url[0]
            #si plus de une
            elif len(url) > 1:
                #Afichage du tableau
                dialog2 = xbmcgui.Dialog()
                ret = dialog2.select('Select Quality', qua)
                if (ret > -1):
                    api_call = url[ret]

        #api_call = api_call + '|User-Agent=' + UA ne fonctionne pas a partir des fichiers mp4 (video de 3 minutes) meme sur firefox
        if (api_call):
            return True, api_call

        return False, False
예제 #48
0
    def __getMediaLinkForGuest(self):

        api_call = ''

        oParser = cParser()
        oRequest = cRequestHandler(self.__sUrl)
        oRequest.addHeaderEntry('User-Agent', UA)
        oRequest.addHeaderEntry('Referer',
                                self.__sUrl.replace('iframe.php?u=', ''))
        sHtmlContent = oRequest.request()

        from resources.lib.packer import cPacker
        sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
        aResult = re.findall(sPattern, sHtmlContent)

        if (aResult):
            sUnpacked = cPacker().unpack(aResult[0])
            sHtmlContent = sUnpacked
            if (sHtmlContent):

                #window.location.replace(\'//rutube.ru/play/embed/10622163?p=gaY1LJ7uN2y6xhfO2mUCoA\');

                sPattern = "replace\(.*'(.+?)'"
                aResult = oParser.parse(sHtmlContent, sPattern)

                if (aResult[0] == True):

                    from resources.lib.gui.hoster import cHosterGui

                    sHosterUrl = aResult[1][0]

                    if not sHosterUrl.startswith(
                            'http:') and not sHosterUrl.startswith('https:'):
                        sHosterUrl = 'http:%s' % sHosterUrl

                    sHosterUrl = sHosterUrl.replace('\\', '')

                    oHoster = cHosterGui().checkHoster(sHosterUrl)
                    oHoster.setUrl(sHosterUrl)
                    api_call = oHoster.getMediaLink()

                    if (api_call[0] == True):
                        return True, api_call[1]

        return False, False
예제 #49
0
    def __getMediaLinkForGuest(self):

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        sPattern = '<input type="hidden" name="([^"]+)" value="([^"]+)"'
        oParser = cParser()
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            time.sleep(7)
            oRequest = cRequestHandler(self.__sUrl)
            oRequest.setRequestType(cRequestHandler.REQUEST_TYPE_POST)
            for aEntry in aResult[1]:
                oRequest.addParameters(aEntry[0], aEntry[1])

            oRequest.addParameters('referer', self.__sUrl)
            sHtmlContent = oRequest.request()
            sHtmlContent = sHtmlContent.replace('file:""', '')

            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 = ',file:"([^"]+)"}'
                aResult = oParser.parse(sHtmlContent, sPattern)
                if (aResult[0] == True):
                    return True, aResult[1][0]
            else:
                sPattern = '{file:"([^"]+)",label:"(\d+p)"}'
                aResult = oParser.parse(sHtmlContent, sPattern)
                if (aResult[0] == True):
                    url = []
                    qua = []
                for i in aResult[1]:
                    url.append(str(i[0]))
                    qua.append(str(i[1]))

                if len(url) == 1:
                    return True, url[0]

                elif len(url) > 1:
                    return True, url[
                        0]  #240p de nos jours serieux dialog choix inutile max vue 360p pour le moment

        return False, False
예제 #50
0
    def __getMediaLinkForGuest(self):

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        sPattern =  '<input type="hidden" name="([^"]+)" value="([^"]+)"'
        oParser = cParser()
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            time.sleep(7)
            oRequest = cRequestHandler(self.__sUrl)
            oRequest.setRequestType(cRequestHandler.REQUEST_TYPE_POST)
            for aEntry in aResult[1]:
                oRequest.addParameters(aEntry[0], aEntry[1])

            oRequest.addParameters('referer', self.__sUrl)
            sHtmlContent = oRequest.request()
            sHtmlContent = sHtmlContent.replace('file:""', '')

            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 =  ',file:"([^"]+)"}'
                aResult = oParser.parse(sHtmlContent, sPattern)
                if (aResult[0] == True):
                    return True, aResult[1][0]
            else:
                sPattern = '{file:"([^"]+)",label:"(\d+p)"}'
                aResult = oParser.parse(sHtmlContent, sPattern)
                if (aResult[0] == True):
                    url=[]
                    qua=[]
                for i in aResult[1]:
                    url.append(str(i[0]))
                    qua.append(str(i[1]))

                if len(url) == 1:
                    return True, url[0]

                elif len(url) > 1:
                    return True, url[0] #240p de nos jours serieux dialog choix inutile max vue 360p pour le moment

        return False, False
예제 #51
0
    def __getMediaLinkForGuest(self):

        api_call = ''

        oParser = cParser()
        oRequest = cRequestHandler(self.__sUrl)
        oRequest.addHeaderEntry('User-Agent', UA)
        oRequest.addHeaderEntry('Referer', self.__sUrl.replace('iframe.php?u=', ''))
        sHtmlContent = oRequest.request()

        from resources.lib.packer import cPacker
        sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
        aResult = re.findall(sPattern,sHtmlContent)

        if (aResult):
            sUnpacked = cPacker().unpack(aResult[0])
            sHtmlContent = sUnpacked
            if (sHtmlContent):

                #window.location.replace(\'//rutube.ru/play/embed/10622163?p=gaY1LJ7uN2y6xhfO2mUCoA\');

                sPattern = "replace\(.*'(.+?)'"
                aResult = oParser.parse(sHtmlContent, sPattern)

                if (aResult[0] == True):

                    from resources.lib.gui.hoster import cHosterGui

                    sHosterUrl = aResult[1][0]

                    if not sHosterUrl.startswith('http'):
                        sHosterUrl = 'http:%s' % sHosterUrl

                    sHosterUrl = sHosterUrl.replace('\\', '')

                    oHoster = cHosterGui().checkHoster(sHosterUrl)
                    oHoster.setUrl(sHosterUrl)
                    api_call = oHoster.getMediaLink()

                    if (api_call[0] == True):
                        return True, api_call[1]


        return False, False
예제 #52
0
    def __getMediaLinkForGuest(self):
        #print self.__sUrl
        api_call = False
        
        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()
        
        oParser = cParser()
        
        #lien indirect
        sPattern = '<iframe.+?src="([^"]+)"'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            oRequest = cRequestHandler(aResult[1][0])
            sHtmlContent = oRequest.request()
        
        #test pour voir si code
        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 = 'file:"([^"]+\.mp4)"(?:,label:"([^"]+)")*'
        aResult = oParser.parse(sHtmlContent, sPattern)
        

        if (aResult[0] == True):
            
            #initialisation des tableaux
            url=[]
            qua=[]
            
            #Replissage des tableaux
            for i in aResult[1]:
                url.append(str(i[0]))
                qua.append(str(i[1]))
                
            #Afichage du tableau
            api_call = dialog().VSselectqual(qua, url)
 
        if (api_call):
            return True, api_call
            
        return False, False
예제 #53
0
    def __getMediaLinkForGuest(self):

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        api_call = ''
        #type1
        oParser = cParser()
        sPattern = '<source *src="([^"]+)" *type=\'video/.+?\''
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            api_call = aResult[1][0]

        #type2?
        sPattern = '<script type=\'text/javascript\'>(.+?)</script>'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            stri = cPacker().unpack(aResult[1][0])
            sPattern = 'file:"([^"]+)",label:"([0-9]+)"}'
            aResult = oParser.parse(stri, sPattern)
            if (aResult[0] == True):
                url = []
                qua = []

                for aEntry in aResult[1]:
                    url.append(aEntry[0])
                    qua.append(aEntry[1][:3] + '*' + aEntry[1][3:])

                #Si une seule url
                if len(url) == 1:
                    api_call = url[0]
                #si plus de une
                elif len(url) > 1:
                    #Afichage du tableau
                    dialog2 = xbmcgui.Dialog()
                    ret = dialog2.select('Select Quality', qua)
                    if (ret > -1):
                        api_call = url[ret]

        if (api_call):
            return True, api_call

        return False, False
예제 #54
0
    def __getMediaLinkForGuest(self):

        api_call = ''

        oParser = cParser()

        oRequest = cRequestHandler(self.__sUrl)
        oRequest.addHeaderEntry('Cookie', 'hds2=1')
        sHtmlContent = oRequest.request()
        if '<p>Video will be converted and ready to play soon</p>' in sHtmlContent:
            dialog().VSok("Video will be ready to play soon")

        sPattern = '(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>'
        aResult = oParser.parse(sHtmlContent, sPattern)

        if (aResult[0] == True):
            sHtmlContent = cPacker().unpack(aResult[1][0])

            sPattern = 'wurl="([^"]+)"'
            aResult = oParser.parse(sHtmlContent, sPattern)
            if (aResult[0] == True):
                api_call = aResult[1][0]

            #else:
            #sPattern = 'vsrc\d+="([^"]+)"'
            #aResult = oParser.parse(sHtmlContent, sPattern)
            #if (aResult[0] == True):
            #    api_call = aResult[1][0]

            #else:
            #    sPattern = 'furl="([^"]+)"'
            #    aResult = oParser.parse(sHtmlContent, sPattern)
            #    if (aResult[0] == True):
            #        api_call = aResult[1][0]

            if api_call.startswith('//'):
                api_call = 'https:' + aResult[1][0]

            if (api_call):
                return True, api_call

        return False, False
예제 #55
0
    def __getMediaLinkForGuest(self):

        api_call = ''

        oRequest = cRequestHandler(self.__sUrl)
        sHtmlContent = oRequest.request()

        from resources.lib.packer import cPacker
        sPattern = "(\s*eval\s*\(\s*function(?:.|\s)+?)<\/script>"
        aResult = re.findall(sPattern, sHtmlContent)

        if (aResult):
            sUnpacked = cPacker().unpack(aResult[0])
            sHtmlContent = sUnpacked

            if (sHtmlContent):

                oParser = cParser()
                sPattern = "replace\(.*'(.+?)'"
                aResult = oParser.parse(sHtmlContent, sPattern)

                if (aResult[0] == True):

                    from resources.lib.gui.hoster import cHosterGui

                    sHosterUrl = aResult[1][0]

                    if not sHosterUrl.startswith('http'):
                        sHosterUrl = 'http:%s' % sHosterUrl

                    sHosterUrl = sHosterUrl.replace('\\', '')


                    oHoster = cHosterGui().checkHoster(sHosterUrl)
                    oHoster.setUrl(sHosterUrl)
                    api_call = oHoster.getMediaLink()

                    if (api_call[0] == True):
                        return True, api_call[1]


        return False, False
예제 #56
0
    def __getMediaLinkForGuest(self):

        sUrl = self.__sUrl

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

        if 'File was deleted' in sHtmlContent:
            return False, False

        oParser = cParser()
        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 = '{file:"([^"]+)",label:"([^"]+)"}'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            #initialisation des tableaux
            url = []
            qua = []

            #Remplissage des tableaux
            for i in aResult[1]:
                url.append(str(i[0]))
                qua.append(str(i[1]))

            #Si  1 url
            if len(url) == 1:
                api_call = url[0]
            #Affichage du tableau
            elif len(url) > 1:
                ret = VScreateDialogSelect(qua)
                if (ret > -1):
                    api_call = url[ret]

        if (api_call):
            return True, api_call

        return False, False
예제 #57
0
    def __getMediaLinkForGuest(self):
        api_call = ''

        #VSlog(self.__sUrl)
        
        oParser = cParser()
        oRequest = cRequestHandler(self.__sUrl)
        oRequest.addHeaderEntry('Referer', self.__sUrl)
        oRequest.addParameters('User-Agent', UA)
        sHtmlContent = oRequest.request()
        
        #fh = open('c:\\test.txt', "w")
        #fh.write(sHtmlContent)
        #fh.close()

        sPattern = 'sources:* \[(?:{file:)*"([^"]+)"'
        aResult = oParser.parse(sHtmlContent, sPattern)
        if (aResult[0] == True):
            api_call = aResult[1][0]

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

                sPattern = '{file: *"([^"]+smil)"}'
                aResult = oParser.parse(sHtmlContent, sPattern)
                if (aResult[0] == True):
                    api_call = self.extractSmil(aResult[1][0])
                else:
                    sPattern = '{file: *xpro\("(.+?)"'
                    aResult = oParser.parse(sHtmlContent, sPattern)
                    if (aResult[0] == True):
                        api_call = aResult[1][0].decode('rot13')

        if (api_call):
            return True, api_call

        return False, False
예제 #58
0
    def __getMediaLinkForGuest(self):
        api_call = ''

        oRequest = cRequestHandler(self.__sUrl)
        oRequest.addHeaderEntry('Referer',self.__sUrl)
        sHtmlContent = oRequest.request()
        #VSlog(sHtmlContent)
        oParser = cParser()
        sPattern = 'JuicyCodes\.Run\("(.+?)"\);'
        aResult = oParser.parse(sHtmlContent, sPattern)
        #VSlog(aResult)
        if (aResult[0] == True):

            media =  aResult[1][0].replace('+', '')
            media = base64.b64decode(media)

            #cPacker decode
            from resources.lib.packer import cPacker
            media = cPacker().unpack(media)
            #VSlog(media)
            if (media):

                sPattern = '{"file":"(.+?)","label":"(.+?)"'
                aResult = oParser.parse(media, sPattern)
                #VSlog(aResult)
                if (aResult[0] == True):
                #initialisation des tableaux
                    url=[]
                    qua=[]
                #Remplissage des tableaux
                    for i in aResult[1]:
                        url.append(str(i[0]+ '|Referer=' + self.__sUrl))
                        qua.append(str(i[1]))
                #Si une seule url
                    api_call = dialog().VSselectqual(qua, url)

        if (api_call):
            return True, api_call

        return False, False
예제 #59
0
    def __getMediaLinkForGuest(self):
        api_call = False

        if not self.__sUrl.endswith('.mp4'):
            oParser = cParser()
            oRequest = cRequestHandler(self.__sUrl)
            sHtmlContent = oRequest.request()

            sPattern = '(\s*eval\s*\(\s*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 (aResult[0] == True):
                    api_call = aResult[1][0]
        else:
            api_call = self.__sUrl

        if (api_call):
            return True, api_call + '|User-Agent=' + UA

        return False, False