def protectStreamByPass(url): # lien commencant par VID_ Codedurl = url oRequestHandler = cRequestHandler(Codedurl) sHtmlContent = oRequestHandler.request() oParser = cParser() sPattern = 'var k=\"([^<>\"]*?)\";' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): postdata = 'k=' + aResult[1][0] dialog().VSinfo('Décodage en cours', "Patientez", 5) xbmc.sleep(5000) UA = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0' oRequest = cRequestHandler(URL_MAIN + 'embed_secur.php') oRequest.setRequestType(1) oRequest.addHeaderEntry('User-Agent', UA) # oRequest.addHeaderEntry('Host', 'www.protect-stream.com') oRequest.addHeaderEntry('Referer', Codedurl) oRequest.addHeaderEntry( 'Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8') oRequest.addHeaderEntry('Content-Type', 'application/x-www-form-urlencoded') oRequest.addParametersLine(postdata) sHtmlContent = oRequest.request() # Test de fonctionnement aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0]: dialog().VSinfo('Lien encore protégé', "Erreur", 5) return '' # recherche du lien embed sPattern = '<iframe src=["\']([^<>"\']+?)["\']' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): return aResult[1][0] # recherche d'un lien redirigé sPattern = '<a class=.button. href=["\']([^<>"\']+?)["\'] target=._blank.>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): return aResult[1][0] return ''
def updateDirectory(self): # refresh the content xbmc.executebuiltin('Container.Refresh') xbmc.sleep(600) # Nécessaire pour laisser le temps du refresh
def showMovies(sSearch=''): oGui = cGui() oParser = cParser() if sSearch: bvalid, stoken, scookie = GetTokens() if bvalid: pdata = '_token=' + stoken + '&search=' + sSearch sUrl = URL_MAIN + 'search' UA = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:70.0) Gecko/20100101 Firefox/70.0' oRequestHandler = cRequestHandler(sUrl) oRequestHandler.setRequestType(1) oRequestHandler.addHeaderEntry('User-Agent', UA) oRequestHandler.addHeaderEntry('Referer', URL_MAIN) oRequestHandler.addHeaderEntry( 'Content-Type', 'application/x-www-form-urlencoded') oRequestHandler.addHeaderEntry('Cookie', scookie) oRequestHandler.addParametersLine(pdata) oRequestHandler.request() # constatation : on est oblige de faire 2 requetes # dans le cas ou le mot recherché est composé ? xbmc.sleep(500) oRequestHandler.setRequestType(1) oRequestHandler.addHeaderEntry('User-Agent', UA) oRequestHandler.addHeaderEntry('Referer', URL_MAIN) oRequestHandler.addHeaderEntry('Cookie', scookie) oRequestHandler.addParametersLine(pdata) sHtmlContent = oRequestHandler.request() else: oGui.addText(SITE_IDENTIFIER) return else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() # title img year surl sPattern = '<article class.+?data-url.+?title="([^"]*).+?img src=([^\s]*).+?year">([^<]+).+?href="([^"]+)' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) oOutputParameterHandler = cOutputParameterHandler() for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sDesc = '' sTitle = aEntry[0] sThumb = aEntry[1] sYear = aEntry[2] sUrl2 = aEntry[3] sDisplayTitle = sTitle + '(' + sYear + ')' oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oOutputParameterHandler.addParameter('sYear', sYear) if sSearch: oGui.addLink(SITE_IDENTIFIER, 'showSelectType', sDisplayTitle, sThumb, sDesc, oOutputParameterHandler) elif SERIE_NEWS[0] in sUrl: sDisplayTitle = sTitle oGui.addTV(SITE_IDENTIFIER, 'showSXE', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showLink', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) if not sSearch: sNextPage, sPaging = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', 'Page ' + sPaging, oOutputParameterHandler) oGui.setEndOfDirectory()
def __getMediaLinkForGuest(self): # http:///dl/12345XXYEEEEREERERE UA = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0' headers = { 'User-Agent': UA, 'Host': 'uplea.com', # 'Referer': self.__sUrl , 'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8', 'Accept-Language': 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3' # 'Content-Type': 'application/x-www-form-urlencoded' } req = urllib2.Request(self.__sUrl, None, headers) response = urllib2.urlopen(req) sHtmlContent = response.read() head = response.headers response.close() oParser = cParser() # get step urlstep = '' sPattern = '<a href="(\/step\/[^<>"]+)">' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): urlstep = aResult[1][0] # get cookie cookies = '' if 'Set-Cookie' in head: cookies = head['Set-Cookie'] sPattern = '(__cfduid=[0-9a-z]+;).+?(PHPSESSID=[0-9a-z]+)' aResult = oParser.parse(str(cookies), sPattern) if (aResult[0] == True): cookies = str(aResult[1][0][0]) + str(aResult[1][0][1]) url = 'http://uplea.com' + urlstep headers['Cookie'] = cookies headers['Referer'] = self.__sUrl req = urllib2.Request(url, None, headers) response = urllib2.urlopen(req) sHtmlContent = response.read() head = response.headers response.close() # fh = open('c:\\test.txt', "w") # fh.write(sHtmlContent) # fh.close() # waiting time waitingtime = 20 sPattern = "ulCounter\({'timer':([0-9]+)}\);" aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): waitingtime = int(aResult[1][0]) + 2 sPattern = '<a class="button-download" href="([^<>"]+?)">' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): dialog.VSinfo('Waiting time', self.__sDisplayName, waitingtime) xbmc.sleep(waitingtime * 1000) # print(aResult[1][0]) return True, aResult[1][ 0] + '|User-Agent=' + UA # + '&Referer=' + self.__sUrl return False, False
def showHosters(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') if 'forum-tv' in sUrl: dialog().VSinfo('Décodage en cours', "Patientez", 5) s = requests.Session() response = s.get(sUrl, headers={'User-Agent': UA}) sHtmlContent = str(response.content) cookie_string = "; ".join( [str(x) + "=" + str(y) for x, y in s.cookies.items()]) oParser = cParser() sPattern = '<input type="hidden".+?value="([^"]+)"' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): data = "_method=" + aResult[1][0] + "&_csrfToken=" + aResult[1][ 1] + "&ad_form_data=" + Quote( aResult[1][2]) + "&_Token%5Bfields%5D=" + Quote( aResult[1][3]) + "&_Token%5Bunlocked%5D=" + Quote( aResult[1][4]) # Obligatoire pour validé les cookies. xbmc.sleep(6000) oRequestHandler = cRequestHandler( 'https://forum-tv.org/adslinkme/links/go') oRequestHandler.setRequestType(1) oRequestHandler.addHeaderEntry('Referer', sUrl) oRequestHandler.addHeaderEntry( 'Accept', 'application/json, text/javascript, */*; q=0.01') oRequestHandler.addHeaderEntry('User-Agent', UA) oRequestHandler.addHeaderEntry('Content-Length', len(data)) oRequestHandler.addHeaderEntry( 'Content-Type', "application/x-www-form-urlencoded; charset=UTF-8") oRequestHandler.addHeaderEntry('X-Requested-With', 'XMLHttpRequest') oRequestHandler.addHeaderEntry('Cookie', cookie_string) oRequestHandler.addParametersLine(data) sHtmlContent = oRequestHandler.request() sPattern = 'url":"([^"]+)"' 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 = sUrl oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sMovieTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb) oGui.setEndOfDirectory()