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
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()
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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()
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
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()
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
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
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
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()
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()
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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