def showSaisons(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oParser = cParser() oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<div class="movie-poster".+?src="([^"]+)".+?href="([^<]+)" title="(.+?)"' 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 sThumb = aEntry[0] sUrl = aEntry[1] sTitle = aEntry[2] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addTV(SITE_IDENTIFIER, 'showEpisodes', sTitle, '', sThumb, '', oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showMovies(sSearch = ''): oGui = cGui() oParser = cParser() if sSearch: if URL_SEARCH[0] in sSearch: sUrl = sSearch else: sUrl = URL_SEARCH[0] + sSearch sUrl = sUrl.replace(' ', '+') else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = 'class="poster.+?img src="([^"]+)".+?class="quality">([^<]+)<\/div>.+?class="title"><a href="([^"]+)".+?title="([^"]+)".+?class="label">Ann.+?<li>([^<]+)</li>.+?class="shortStory">([^<]+)</div>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sUrl2 = aEntry[2] sThumb = aEntry[0] if sThumb.startswith('//'): sThumb = 'http:' + sThumb sTitle = aEntry[3] sQual = aEntry[1] sYear = aEntry[4] sDesc = aEntry[5] sDisplayTitle = ('%s [%s] (%s)') % (sTitle, sQual, sYear) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, 'films.png', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def AlphaSearch(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') progress_ = progress().VScreate(SITE_NAME) for i in range(0, 36) : progress_.VSupdate(progress_, 36) if progress_.iscanceled(): break if (i < 10): sTitle = chr(48 + i) else: sTitle = chr(65 + i -10) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl + sTitle.lower() + '.html') oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oGui.addDir(SITE_IDENTIFIER, 'AlphaDisplay', '[COLOR teal] Lettre [COLOR red]' + sTitle + '[/COLOR][/COLOR]', 'listes.png', oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showGenre(): oGui = cGui() oParser = cParser() oRequestHandler = cRequestHandler(URL_MAIN) sHtmlContent = oRequestHandler.request() sPattern = '<\/span>.+?par genre<\/h3>(.+?)<li class="active">' aResult = re.search(sPattern, sHtmlContent, re.DOTALL) if (aResult): sHtmlContent = aResult.group(1) sPattern = '<li><a href="([^"]+)">([^<]+)<\/a><\/li>' 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 sTitle = aEntry[1] if 'Film' in sTitle: continue sUrl = URL_MAIN + aEntry[0] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle , 'replay.png', oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showSeriesList(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<li class="alpha-title"><h3>([^<]+)</h3>|</li><li class="item-title">.+?href="([^"]+)">([^<]+)</a>' oParser = cParser() 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 if aEntry[0]: oGui.addText(SITE_IDENTIFIER, '[COLOR red]' + aEntry[0] + '[/COLOR]') else: sUrl = aEntry[1] sTitle = aEntry[2] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oGui.addTV(SITE_IDENTIFIER, 'showSeries', sTitle, '', '', '', oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showGenres():#recup les genres et la quantites sur le site oGui = cGui() oParser = cParser() oRequestHandler = cRequestHandler(URL_MAIN) sHtmlContent = oRequestHandler.request() sPattern = '<li class="cat-item cat-item.+?"><a href="([^<]+)" >([^<]+)</a>.+?<span>([^<]+)</span>' 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 sTitle = aEntry[1] + ' (' + aEntry[2] + ')' sUrl = aEntry[0] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle, 'genres.png', oOutputParameterHandler) oGui.setEndOfDirectory()
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 = '<iframe.+?src="(.+?)"' 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 sHosterUrl = aEntry oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sMovieTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb) oGui.setEndOfDirectory()
def showMovieList(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<a title=".+?" href="([^"]+)">(.+?)</a>' 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 sUrl = aEntry[0] sTitle = aEntry[1] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oGui.addTV(SITE_IDENTIFIER, 'showHosters', sTitle, '', '', '', oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showYears():#recuperer automatiquement oGui = cGui() oParser = cParser() oRequestHandler = cRequestHandler(URL_MAIN) sHtmlContent = oRequestHandler.request() sStart = '<h3>Année de sortie <span class="icon-sort">' sEnd = '<h3>Qualité <span class="icon-sort">' sHtmlContent = oParser.abParse(sHtmlContent, sStart, sEnd) sPattern = '<li><a href="([^"]+)">(.+?)</a>' 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 sUrl = aEntry[0] sTitle = aEntry[1] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle, 'annees.png', oOutputParameterHandler) oGui.setEndOfDirectory()
def showListe(): oGui = cGui() oRequestHandler = cRequestHandler(URL_MAIN + '/listing-emissions.html') sHtmlContent = oRequestHandler.request() oParser = cParser() sHtmlContent = oParser.abParse(sHtmlContent, '<div class="other-title">', 'class="clearfix">') sPattern = '<li><a href="(.+?)">(.+?)<\/a><\/li>' 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 sUrl = URL_MAIN + aEntry[0] sTitle = aEntry[1] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle , 'replay.png', oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def AlphaDisplay(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sLetter = oInputParameterHandler.getValue('sLetter') oRequestHandler = cRequestHandler(URL_MAIN + 'serie-vf.html') sHtmlContent = oRequestHandler.request() sHtmlContent = oParser.abParse(sHtmlContent, '<h1>Listes des séries:</h1>', '<div class="container"><br>') sPattern = '<a title="(' + sLetter + '.+?)" href="([^"]+)"' 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 sUrl = aEntry[1] sTitle = aEntry[0] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oGui.addDir(SITE_IDENTIFIER, 'showS_E', sTitle, 'series.png', oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showAlpha(): oGui = cGui() oParser = cParser() oRequestHandler = cRequestHandler(SERIE_LIST[0]) sHtmlContent = oRequestHandler.request() sPattern = '<span style="color: red;">(.+?)<\/span>' 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 sLetter = aEntry.replace('=', '') dAZ = aEntry oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('dAZ', dAZ) oGui.addDir(SITE_IDENTIFIER, 'showList', 'Lettre [COLOR coral]' + sLetter + '[/COLOR]', 'az.png', oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def AlphaDisplay(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sLetter = oInputParameterHandler.getValue('sLetter') oRequestHandler = cRequestHandler(URL_MAIN) sHtmlContent = oRequestHandler.request() sPattern = '<a href="([^"]+?)" >(' + sLetter + '[^<]+?)<' 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 sUrl = aEntry[0] sTitle = aEntry[1] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showSaisons', sTitle, 'series.png', oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showSearchResult(sSearch): oGui = cGui() oRequestHandler = cRequestHandler(URL_SEARCH[0]) sSearch = sSearch.lower() data = json.loads(oRequestHandler.request()) Title, Url, Thumb = parseJson(data, sSearch) total = len(zip(Title, Url, Thumb)) progress_ = progress().VScreate(SITE_NAME) for title, url, thumb in zip(Title, Url, Thumb): progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sTitle = title sUrl2 = URL_MAIN + url sThumb = thumb sDesc = '' oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addTV(SITE_IDENTIFIER, 'ShowSerieSaisonEpisodes', sTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) if not sSearch: oGui.setEndOfDirectory()
def showMovies(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<h2 style="text-align: center;"><a href="([^"]+)">(.+?)</a>' 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 sTitle = aEntry[1] sUrl = aEntry[0] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) if sTitle.lower().find('les films') != -1: oGui.addDir(SITE_IDENTIFIER, 'showMovieList', sTitle, 'sites/gum_gum_streaming_com.png', oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sTitle, 'sites/gum_gum_streaming_com.png', '', '', oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showSeriesNews(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<div class="titleE".+?<a href="([^"]+)">([^<]+)</a>' oParser = cParser() 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 sUrl = aEntry[0] sTitle = re.sub('(\d+)×(\d+)', "S\g<1>E\g<2>", aEntry[1]) sTitle = sTitle.replace(':', '') cCleantitle = re.sub('S\d+E\d+', '', sTitle) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', cCleantitle) oGui.addTV(SITE_IDENTIFIER, 'showSeries', sTitle, '', '', '', oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showMovies(sSearch = ''): oGui = cGui() if sSearch: sUrl = sSearch.replace(' ','+') else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() sPattern = '<div class="(?:poster|result-item)".+?img src="(http[^"]+)" alt="([^"]+)".+?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) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sThumb = aEntry[0] sTitle = aEntry[1].replace(':', '') sUrl2 = aEntry[2] sDesc = '' #tris search if sSearch and total > 3: if cUtil().CheckOccurence(sSearch.replace(URL_SEARCH[0], ''), sTitle) == 0: continue oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb ) if '/episodes/' in sUrl2: oGui.addTV(SITE_IDENTIFIER, 'showLinks', sTitle, '', sThumb, sDesc, oOutputParameterHandler) elif '/movies/' in sUrl2: oGui.addMovie(SITE_IDENTIFIER, 'showLinks', sTitle, '', sThumb, sDesc, oOutputParameterHandler) else: oGui.addTV(SITE_IDENTIFIER, 'showSerieSaisons', sTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMovies(sSearch = ''): oGui = cGui() if sSearch: sUrl = sSearch.replace(' ', '+') else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() sPattern = '<a title=".+?href="(.+?)">.+?<div class=".+?">.+?<img src="(.+?)" alt="(.+?)" />.+?</ul>.+?<div class="ExcerptContent">(.+?)</div>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sUrl2 = aEntry[0] sThumb = aEntry[1] sTitle = aEntry[2].decode("unicode_escape").encode("latin-1") sDesc = aEntry[3] #tris search if sSearch and total > 3: if cUtil().CheckOccurence(sSearch.replace(URL_SEARCH[0], ''), sTitle) == 0: continue oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb ) if '/serie' in sUrl or '/mangas' in sUrl or '/serie' in sUrl2 or '/mangas' in sUrl2: oGui.addTV(SITE_IDENTIFIER, 'ShowSaisons', sTitle, '', sThumb, sDesc, oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showLinks', sTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) if not sSearch: sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMovies(sSearch = ''): oGui = cGui() oParser = cParser() if sSearch: sUrl = URL_SEARCH[0] + sSearch.replace(' ','+') oRequestHandler = cRequestHandler(sUrl) oRequestHandler.setRequestType(cRequestHandler.REQUEST_TYPE_POST) sHtmlContent = oRequestHandler.request() sPattern = '<div class="item-box"><a class="item-link" href="([^"]+)"><div class="item-img"><img src="(.+?)".+?<div class="item-title">(.+?)<\/div>(.+?)div>' else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<div class="item-box"><a class="item-link" href="([^"]+)">.+?<img src="(.+?)".+?<div class="item-title">(.+?)<\/div><div class="item-info clearfix">(.+?)<\/div>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sUrl = aEntry[0] sTitle = aEntry[2] sThumb = aEntry[1] sDesc = aEntry[3] if not sThumb.startswith('http'): sThumb = URL_MAIN + sThumb oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addMisc(SITE_IDENTIFIER, 'showHosters', sTitle, 'doc.png', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showLinks(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sThumb = oInputParameterHandler.getValue('sThumb') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') oParser = cParser() oRequest = cRequestHandler(sUrl) oRequest.addHeaderEntry('referer', URL_MAIN) sHtmlContent = oRequest.request() cook = oRequest.GetCookies() #récupération du Synopsis sDesc = '' try: sPattern = '<p>(.+?)<\/p>' aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0]: sDesc = aResult[1][0] sDesc = sDesc.replace('…', '...') except: pass sPattern = '<a href="#playex".+?<img src=".+?.googleusercontent.com.+?alt="([^"]+)">.+?document.getElementsByName.+?\(\'src\', \'(.+?)\'\);.+?<td>([^<]+)<\/td><td>' 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 sHost = re.sub('\.\w+', '', aEntry[0]) if 'nowvideo' in sHost or 'youvid' in sHost: continue sHost = sHost.capitalize() sUrl2 = aEntry[1] sLang = aEntry[2] sTitle = ('%s (%s) [COLOR coral]%s[/COLOR]') % (sMovieTitle, sLang, sHost) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb ) oOutputParameterHandler.addParameter('sCook', cook) oOutputParameterHandler.addParameter('ref',sUrl) oGui.addLink(SITE_IDENTIFIER, 'showHosters', sTitle, sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showLink(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sThumb = '' try: sPattern = '<img class=".+?" src="(.+?)"' aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0]: sThumb = aResult[1][0] except: pass linkid = '' sPattern = "link_id.+?'([^']+)';" aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): linkid = aResult[1][0] sPattern = '<\/i> *Lien.+?</td>.+?alt="([^"]+)".+?(?:|center">([^<]+)</td>.+?)(?:|data-uid="([^"]+)") data-id="([^"]+)">' 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 sHost = re.sub('\..+', '', aEntry[0]).capitalize() if aEntry[2] == '': sUrl = URL_MAIN + 'link/' + aEntry[3] + '/' + linkid else: sUrl = URL_MAIN + 'links/' + aEntry[3] #ancienne methode du site tjr ok sLang = aEntry[1] sTitle = ('%s (%s) [COLOR %s]%s[/COLOR]') % (sMovieTitle, sLang, sColor, sHost) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addTV(SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumb, '', oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showMovies(sSearch = ''): oGui = cGui() if sSearch: sUrl = sSearch.replace(' ', '+') else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') #sHtmlContent = SucurieBypass().GetHtml(sUrl) oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() sPattern = '<article id=".+?<a href="([^"]+)" title="([^"]+?)".+?<img.+?rc="([^"]+?)"' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sUrl2 = aEntry[0] sTitle = aEntry[1] sThumb = aEntry[2] if sThumb.startswith('//'): sThumb = 'http:' + sThumb #Si recherche et trop de resultat, on nettoye if sSearch and total > 3: if cUtil().CheckOccurence(sSearch.replace(URL_SEARCH_MOVIES[0], ''), sTitle) == 0: continue oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumb, '', oOutputParameterHandler) progress_.VSclose(progress_) if not sSearch: sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMenu(sSearch = ''):#affiche le menu du club oGui = cGui() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<a href="([^"]+)" *class="white">(.+?)</a></td>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) #VSlog(str(aResult)) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sTitle = aEntry[1] sUrl2 = aEntry[0] sThumb = '' #sLang = aEntry[3] #sQual = aEntry[4] #sHoster = aEntry[2] sDesc = '' sTitle = sTitle.decode("iso-8859-1", 'ignore') sTitle = sTitle.encode("utf-8", 'ignore') sTitle = ('%s') % (sTitle) sUrl2 = URL_MAIN + sUrl2 oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) if '/series' in sUrl: oGui.addTV(SITE_IDENTIFIER, 'ShowSerieSaisonEpisodes', sTitle, '', sThumb, sDesc, oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showResult', sTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) if not sSearch: oGui.setEndOfDirectory()
def showLink(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() #fh = open('c:\\test.txt', "w") #fh.write(sHtmlContent) #fh.close() cookie = oRequest.GetCookies().split(';') cooka = '' for i in cookie: if not 'wordpress' in i: cooka = cooka + i + '; ' if '/film/' in sUrl: sPattern = '<a id="player-.+?" class="server.+?" data-post="([^"]+)" data-nume="([^"]+)">([^<]+)<.+?<img src=\'http.+?img/flags/(.+?).png\'>' else: sPattern = 'id="player-[^<>]+data-post="([^"]+)" data-nume="([^"]+)".*?"title">([^<]+)<\/*span.+?<img src=\'http.+?img\/flags\/(.+?).png\'>' aResult = oParser.parse(sHtmlContent, sPattern) VSlog(aResult) 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 sUrl2 = URL_MAIN + 'wp-admin/admin-ajax.php' sLang = aEntry[3].upper() sHost = aEntry[2].capitalize() data = 'action=doo_player_ajax&post=' + aEntry[0] + '&nume=' + aEntry[1] sTitle = ('%s (%s) [COLOR coral]%s[/COLOR]') % (sMovieTitle, sLang, sHost) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sdata', data) oOutputParameterHandler.addParameter('sRef', sUrl) oOutputParameterHandler.addParameter('sCook', cooka) oGui.addTV(SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumb, '', oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showMovies(sSearch = ''): oGui = cGui() if sSearch: sUrl = sSearch.replace(' ', '+') else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oParser = cParser() oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sHtmlContent = oParser.abParse(sHtmlContent, 'MovieList Rows', '</body></html>') sPattern = '<div class=Image>.+?src=([^ ]+) .+?<span class=Qlty>.+?<a href=([^>]+)><div class=Title>([^<]+)</div></a>.+?<div class=Description><p>(.+?)</p>' 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 sUrl = aEntry[1] sTitle = aEntry[2] sThumb = aEntry[0].replace('w154', 'w342') if not sThumb.startswith('http'): sThumb = 'http:' + sThumb sDesc = aEntry[3] #tris search if sSearch and total > 3: if cUtil().CheckOccurence(sSearch.replace(URL_SEARCH[0], ''), sTitle) == 0: continue oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) if not sSearch: sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showDailyList(): #On recupere les dernier playlist ajouter au site oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sHtmlContent = getHtml(sUrl)#On recupere le contenue de la page #VSlog(sHtmlContent) #VSlog(sUrl) if 'iptvsource.com' in sUrl: sPattern = '<h3 class="entry-title td-module-title"><a href="(.+?)" rel="bookmark" title="(.+?)"' elif 'iptvgratuit.com' in sUrl: sPattern = '<a href="([^"]+)" rel="bookmark".+?title="([^"]+)".+?</a></h3>' elif 'dailyiptvlist.com' in sUrl: sPattern = '</a><h2 class="post-title"><a href="(.+?)">(.+?)</a></h2><div class="excerpt"><p>.+?</p>' elif 'extinf' in sUrl: sPattern = '<div class="news-thumb col-md-6">\s*<a href=([^"]+) title="([^"]+)".+?\s*<img src=.+?uploads/.+?/.+?/([^"]+)\..+?' oParser = cParser() 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 sTitle = aEntry[1] sUrl2 = aEntry[0] if 'extinf' in sUrl: flag = aEntry[2] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) if not 'extinf' in sUrl: oGui.addDir(SITE_IDENTIFIER, 'showAllPlaylist', sTitle, 'tv.png', oOutputParameterHandler) else: if str(flag) == 'm3u-playlist-720x405': oGui.addDir(SITE_IDENTIFIER, 'showDailyIptvList', sTitle, '', oOutputParameterHandler) else: oGui.addDir(SITE_IDENTIFIER, 'showWeb', sTitle, 'tv.png', oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showDailyList', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oParser = cParser() if sSearch: sUrl = sSearch.replace(' ','+') else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<div class="(?:fixwidth|video)".+?a href="([^"]+)">.+?<img class="izimg" src="([^"]+)".+?title="([^"]+)"' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sUrl = aEntry[0] sTitle = aEntry[2].replace(' Streaming', '') sThumb = aEntry[1] if not sThumb.startswith('http'): sThumb = URL_MAIN + sThumb #tris search if sSearch and total > 3: if cUtil().CheckOccurence(sSearch.replace(URL_SEARCH[0], ''), sTitle) == 0: continue oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addTV(SITE_IDENTIFIER, 'ShowEpisode', sTitle, '', sThumb, '', oOutputParameterHandler) progress_.VSclose(progress_) if not sSearch: sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMovies(sSearch = ''): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() if sSearch: sUrl = sSearch.replace(' ', '+') else: sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<div class="movie-poster">.+?<img src="([^"]+)".+?<a href="([^"]+)" title="([^"]+)"' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break #Si recherche et trop de resultat, on nettoye if sSearch and total > 2: if cUtil().CheckOccurence(sSearch.replace(URL_SEARCH[0], ''), aEntry[2]) == 0: continue sThumb = aEntry[0] sUrl = aEntry[1] sTitle = aEntry[2] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) if '/series/' in sUrl or '/serie/' in sUrl or '/manga/' in sUrl: oGui.addTV(SITE_IDENTIFIER, 'showEpisode', sTitle, '', sThumb, '', oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showLinks', sTitle, '', sThumb, '', oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showEpisode(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') oRequestHandler = cRequestHandler(sUrl) oRequestHandler.addHeaderEntry('User-Agent', UA) sHtmlContent = oRequestHandler.request() if 'HTML/JavaScript Encoder' in sHtmlContent: sHtmlContent = ICDecode(sHtmlContent) #On fait 2 passage pr accelerer le parsing regex # sPattern = '<div class="inner">(.+?)<footer id="footer">' # aResult = oParser.parse(sHtmlContent, sPattern) # sPattern = '<img src="(.+?).+? alt="episodes".+?<a href="(.+?)" title="(.+?)"' # aResult = oParser.parse(aResult[1][0], sPattern) sPattern = '<headline11>(.+?)<\/headline11><\/a>|<a href="*([^"]+)"* title="([^"]+)"[^>]+style="*text-decoration:none;"*>' 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 sTitle = unicode(aEntry[2], 'iso-8859-1') sTitle = unicodedata.normalize('NFD', sTitle).encode('ascii', 'ignore') sTitle = sTitle.encode('ascii', 'ignore').decode('ascii').replace(' VF', '').replace(' VOSTFR', '') sTitle = cUtil().unescape(sTitle) sUrl2 = cUtil().unescape(aEntry[1]) if not sUrl2.startswith('http'): sUrl2 = URL_MAIN + sUrl2 if aEntry[0]: oGui.addText(SITE_IDENTIFIER, '[COLOR red]' + aEntry[0] + '[/COLOR]') else: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addTV(SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumb, '', oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showEvents(sSearch = ''): oGui = cGui() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<i class=".+?"></i>\s* <a href="([^"]+)">\s*([^"]+)\s*</a>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) #VSlog(str(aResult)) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sTitle = aEntry[1] sUrl2 = aEntry[0] sThumb = '' sDesc = '' sUrl2 = URL_MAIN + sUrl2 oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle, 'annees.png', oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): sNextPage = URL_MAIN + sNextPage oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showEvents', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showFile(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') # VSlog('input ' + str(sUrl)) oParser = cParser() sOffset = 0 if (oInputParameterHandler.exist('sOffset')): sOffset = int(oInputParameterHandler.getValue('sOffset')) sNext = 0 if (oInputParameterHandler.exist('sNext')): sNext = int(oInputParameterHandler.getValue('sNext')) sToken = '' if (oInputParameterHandler.exist('sToken')): sToken = oInputParameterHandler.getValue('sToken') sFoldername = '' if (oInputParameterHandler.exist('sFoldername')): sFoldername = oInputParameterHandler.getValue('sFoldername') sUrl = sUrl + Quote(sFoldername).replace('//', '%2F%2F') # VSlog('folder ' + str(sUrl)) sPath = '' if (oInputParameterHandler.exist('sPath')): sPath = oInputParameterHandler.getValue('sPath') sUrl = sUrl + Quote(sPath).replace('//', '%2F%2F') # VSlog('sPath ' + str(sUrl)) oPremiumHandler = cPremiumHandler('uptobox') if 'uptobox.com' in sUrl: sHtmlContent = oPremiumHandler.GetHtml(sUrl) else: if sToken == '': sHtmlContent = oPremiumHandler.GetHtml(BURL) sPattern = 'token":"(.+?)",' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): sToken = aResult[1][0] sHtmlContent = oPremiumHandler.GetHtml( API_URL.replace('none', sToken) + '%2F%2F') content = json.loads(sHtmlContent) content = content['data'] if content: total = len(content) progress_ = progress().VScreate(SITE_NAME) sPath = getpath(content) for x in content: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break if x == 'files': for y in content[x]: if xbmc.getInfoLabel('system.buildversion')[0:2] >= '19': sTitle = y['file_name'] else: sTitle = y['file_name'].encode('utf-8') sHosterUrl = URL_MAIN + y['file_code'] oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sTitle) oHoster.setFileName(sTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, '') sNext += 1 if x == 'folders': for z in content[x]: if xbmc.getInfoLabel('system.buildversion')[0:2] >= '19': sTitle = z['name'] sFoldername = z['fld_name'] else: sTitle = z['name'].encode('utf-8') sFoldername = z['fld_name'].encode('utf-8') sUrl = API_URL.replace('none', sToken) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter( 'sFoldername', sFoldername) oOutputParameterHandler.addParameter('sToken', sToken) oGui.addDir(SITE_IDENTIFIER, 'showFile', sTitle, 'genres.png', oOutputParameterHandler) if x == 'currentFolder': if content[x]['fileCount'] != int(sNext): oOutputParameterHandler = cOutputParameterHandler() sOffset = int(sOffset) + 100 oOutputParameterHandler.addParameter( 'siteUrl', API_URL.replace('none', sToken).replace( 'offset=0', 'offset=' + str(sOffset))) oOutputParameterHandler.addParameter('sToken', sToken) oOutputParameterHandler.addParameter('sNext', sNext) oOutputParameterHandler.addParameter('sOffset', sOffset) oOutputParameterHandler.addParameter('sPath', sPath) oGui.addNext(SITE_IDENTIFIER, 'showFile', '[COLOR teal]Suite >>>[/COLOR]', oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showServer(): oGui = cGui() import requests oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') sDesc = oInputParameterHandler.getValue('sDesc') #print sHtmlContent oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() #Recuperation infos sId = '' sPattern = 'postid-(.+?)">' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0]): sId = aResult[1][0] #print sId # ([^<]+) .+? headers = { 'Host': 'in.arbcinema.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0', 'Accept': '*/*', 'Accept-Language': 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'X-Requested-With': 'XMLHttpRequest', 'Referer': sUrl, 'Connection': 'keep-alive' } data = sId data = {'id': data, 'key': '0', 'type': 'normal'} s = requests.Session() r = s.post( 'https://in.arbcinema.com/wp-content/themes/takweed/functions/inc/single/server/download.php', headers=headers, data=data) sHtmlContent += r.content # (.+?) .+? ([^<]+) sPattern = '<a href="([^<]+)" rel' oParser = cParser() 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) sTitle = sMovieTitle if 'thevideo.me' in url: sTitle = " (thevideo.me)" if 'flashx' in url: sTitle = " (flashx)" if 'streamcherry' in url: sTitle = " (streamcherry)" if 'cloudvideo' in url: sTitle = " (cloudvideo)" if 'streamcloud' in url: sTitle = " (streamcloud)" if 'userscloud' in url: sTitle = " (userscloud)" if 'clicknupload' in url: sTitle = " (clicknupload)" if url.startswith('//'): url = 'http:' + url sHosterUrl = url oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sMovieTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oParser = cParser() if sSearch: #limite de caractere sinon bug de la recherche sSearch = sSearch[:20] sUrl = URL_MAIN + 'index.php?ordering=&searchphrase=all&option=com_search&searchword=' + sSearch.replace( ' ', '+') sPattern = '<div style="font-size:20px">.+?href="\/[0-9a-zA-Z]+\/(.+?)".+?>(.+?)</a>' else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sPattern = '<span style="list-style-type:none;" >.+? href="\/[0-9a-zA-Z]+\/(.+?)">(.+?)<\/a>' #L'url change tres souvent donc faut la retrouver req = urllib2.Request(URL_HOST) response = urllib2.urlopen(req) data = response.read() response.close() sMainUrl = '' aResult = oParser.parse(data, 'window\.location\.href="([0-9a-zA-Z]+)";') if aResult[0]: #memorisation pour la suite sMainUrl = URL_HOST + aResult[1][0] + '/' #correction de l'url sUrl = sUrl.replace('URL_MAIN', sMainUrl) else: #Si ca marche pas, pas la peine de continuer return oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sUrl2 = aEntry[0] sTitle = aEntry[1] sTitle = re.sub('<font color="#[0-9a-f]{6}" *><i>HD<\/i><\/font>', '[HD]', sTitle) #not found better way #sTitle = unicode(sTitle, errors='replace') #sTitle = sTitle.encode('ascii', 'ignore').decode('ascii') oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sMainUrl + sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sMainUrl', sMainUrl) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sTitle, 'films.png', '', '', oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sMainUrl + sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMovies(sSearch = ''): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') if sSearch: sUrl = sSearch if sSearch or "index" in sUrl: # en mode recherche sPattern = '<a class="mov-t nowrap" href="([^"]+)" title="[^"]+"> *<div data-toggle=.+?data-content="([^"]+)".+?<img src="([^"]+)".+?alt="([^"]+)".+?<a href="([^"]+)">(.+?)<' else: sPattern = '<a class="mov-t nowrap" href="([^"]+)"> *<div data-toggle=.+?data-content="([^"]+)".+?<img src="([^"]+)".+?title="([^"]+)".+?(> *<\/a>|annee-de-sortie\/(.+?)\/)' oRequestHandler = cRequestHandler(sUrl) oRequestHandler.addHeaderEntry('User-Agent', UA) oRequestHandler.addHeaderEntry('Accept-Encoding', 'gzip, deflate') sHtmlContent = oRequestHandler.request() aResult = oParser.parse(sHtmlContent, sPattern) titles = set() 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 sUrl2 = aEntry[0] sDesc = aEntry[1] sThumb = aEntry[2] sTitle = aEntry[3] sYear = aEntry[5] # Enlever les films en doublons (même titre et même année) # il s'agit du même film dans une autre qualité qu'on retrouvera au moment du choix de la qualité key = sTitle + "-" + sYear if key in titles : continue; titles.add(key) sDesc = re.sub('<[^<]+?>', '', sDesc) sDisplayTitle = sTitle if not sThumb.startswith('http'): sThumb = URL_MAIN[:-1] + sThumb if not sUrl2.startswith('http'): sUrl2 = URL_MAIN[:-1] + sUrl2 oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oOutputParameterHandler.addParameter('sYear', sYear) if 'series' in sUrl2 or 'animes' in sUrl2: oGui.addTV(SITE_IDENTIFIER, 'showSeriesLinks', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) elif 'collection' in sUrl2 or 'integrale' in sUrl2: oGui.addMoviePack(SITE_IDENTIFIER, 'showMoviesLinks', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showMoviesLinks', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) if 'index' in sUrl: sPattern = '<a name="nextlink".+?javascript:list_submit\((.+?)\)' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', re.sub('search_start=(\d+)', 'search_start=' + str(aResult[1][0]), sUrl)) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Suivant >>>[/COLOR]', oOutputParameterHandler) else: sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Suivant >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showSeriesLinks(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sUrl = oInputParameterHandler.getValue('siteUrl') sThumb = oInputParameterHandler.getValue('sThumb') sDesc = oInputParameterHandler.getValue('sDesc') sYear = oInputParameterHandler.getValue('sYear') oRequestHandler = cRequestHandler(sUrl.replace(' ', '%20')) oRequestHandler.addHeaderEntry('User-Agent', UA) oRequestHandler.addHeaderEntry('Accept-Encoding', 'gzip, deflate') sHtmlContent = oRequestHandler.request() #Affichage du texte oGui.addText(SITE_IDENTIFIER, '[COLOR olive]Qualités disponibles pour cette saison :[/COLOR]') #récupération du Synopsis try: sPattern = '<span data-slice="200" itemprop="description">(.+?)</span>' aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0]: sDesc = aResult[1][0] sDesc = sDesc.replace('<span>', '').replace('</span>', '') sDesc = sDesc.replace('<b>', '').replace('</b>', '') sDesc = sDesc.replace('<i>', '').replace('</i>', '') sDesc = sDesc.replace('<br>', '').replace('<br />', '') except: pass #Mise à jour du titre sPattern = '<h2>Télécharger <b itemprop="name">(.+?)</b>.+?>(.+?)</span>' aResult = oParser.parse(sHtmlContent, sPattern) sTitle = sMovieTitle if (aResult[0]): sTitle = aResult[1][0][0] + " " + aResult[1][0][1] numSaison = str(aResult[1][0][1]).lower().replace("saison", "").strip() saisons = [] saisons.append(numSaison) #on recherche d'abord la qualité courante sPattern = 'couleur-qualitesz">Qualité (.+?) <.+?couleur-languesz">(.+?)</span><br>.+?"couleur-seriesz">(.+?)\[' aResult = oParser.parse(sHtmlContent, sPattern) sDisplayTitle = sTitle sQual = '' if (aResult[0]): sQual = aResult[1][0][0] sLang = aResult[1][0][1] sDisplayTitle = ('%s [%s] (%s)') % (sTitle, sQual, sLang) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oOutputParameterHandler.addParameter('sYear', sYear) oGui.addTV(SITE_IDENTIFIER, 'showSeriesHosters', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) #on regarde si dispo dans d'autres qualités sHtmlContent1 = CutQual(sHtmlContent) sPattern1 = '<a href="([^"]+)"><span class="otherquality">.+?<b>([^"]+)<\/b>.+?<b>([^"]+)<\/b>.+?<b> (.+?)<' aResult1 = oParser.parse(sHtmlContent1, sPattern1) otherSaison = False if (aResult1[0] == True): total = len(aResult1[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult1[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break # Si saison différente sSaison = aEntry[1].strip() if numSaison != sSaison: otherSaison = True continue sQual = aEntry[2] sLang = aEntry[3] sDisplayTitle = ('%s [%s] %s') % (sTitle, sQual, sLang) sUrl = aEntry[0] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oOutputParameterHandler.addParameter('sYear', sYear) oGui.addTV(SITE_IDENTIFIER, 'showSeriesHosters', sDisplayTitle, 'series.png', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) #on regarde si dispo d'autres saisons if (otherSaison): #Affichage du titre oGui.addText(SITE_IDENTIFIER, '[COLOR olive]Autres saisons disponibles pour cette série :[/COLOR]') # Une ligne par saison, pas besoin d'afficher les qualités ici for aEntry in aResult1[1]: sSaison = aEntry[1].strip() if sSaison in saisons: continue saisons.append(sSaison) sSaison = 'Saison ' + sSaison sDisplayTitle = ('%s %s') % (sMovieTitle, sSaison) sUrl = aEntry[0] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oOutputParameterHandler.addParameter('sYear', sYear) oGui.addTV(SITE_IDENTIFIER, 'showSeriesLinks', sDisplayTitle, 'series.png', sThumb, sDesc, oOutputParameterHandler) oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() # .+? ([^<]+) sPattern = '<div class="latest-movie-img-container lazy" data-src="([^<]+)" style=.+?<span class="label label-primary">([^<]+)</span>.+?<div class="movie-title">.+?<a href="([^<]+)">([^<]+)</a>' oParser = cParser() 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 sTitle = aEntry[3].decode("utf8") sTitle = cUtil().unescape(sTitle).encode("utf8") sThumbnail = aEntry[0] siteUrl = aEntry[2] sInfo = '[COLOR yellow]' + aEntry[1] + '[/COLOR]' oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', siteUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumbnail', sThumbnail) oGui.addMovie(SITE_IDENTIFIER, 'showLinks', sTitle, '', sThumbnail, sInfo, oOutputParameterHandler) progress_.VSclose(progress_) # ([^<]+) .+? sPattern = '<a href="([^<]+)" data-ci-pagination-page="(.+?)">' oParser = cParser() 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 sTitle = aEntry[1].decode("utf8") sTitle = cUtil().unescape(sTitle).encode("utf8") sTitle = "PAGE " + sTitle sTitle = '[COLOR red]' + sTitle + '[/COLOR]' siteUrl = str(aEntry[0]) sThumbnail = "" sInfo = "" oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', siteUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumbnail', sThumbnail) oGui.addMovie(SITE_IDENTIFIER, 'showMovies', sTitle, '', sThumbnail, sInfo, oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addDir(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', 'next.png', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showServer2(): oGui = cGui() import requests oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') sDesc = oInputParameterHandler.getValue('sDesc') #print sHtmlContent oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() #Recuperation infos sId = '' # (.+?) ([^<]+) .+? sPattern = 'postid-(.+?)">' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0]): sId = aResult[1][0] #print sId headers = { 'Host': 'in.arbcinema.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0', 'Accept': '*/*', 'Accept-Language': 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'X-Requested-With': 'XMLHttpRequest', 'Referer': sUrl, 'Connection': 'keep-alive' } data = {'watch': '1'} s = requests.Session() r = s.post(sUrl, headers=headers, data=data) sHtmlContent += r.content sPattern2 = '<li data-name="([^<]+)" data-type="free"' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern2) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: nume = aEntry progress_.VSupdate(progress_, total) if progress_.iscanceled(): break headers = { 'Host': 'in.arbcinema.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0', 'Accept': '*/*', 'Accept-Language': 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'X-Requested-With': 'XMLHttpRequest', 'Referer': sUrl, 'Connection': 'keep-alive' } data = {'id': sId, 'name': nume, 'type': 'free'} s = requests.Session() r = s.post( 'https://in.arbcinema.com/wp-content/themes/takweed/functions/inc/single/server.php', headers=headers, data=data) sHtmlContent += r.content sPattern3 = '<IFRAME SRC="([^<]+)" FRAMEBORDER=' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern3) 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) sTitle = sMovieTitle 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, sThumb) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def serieHosters(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') oParser = cParser() sPattern = 'href="([^<]+)" target="_blank".+?</a>' aResult = oParser.parse(sUrl, 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 sHosterUrl = aEntry #pour récuperer tous les liens if '&url=' in sHosterUrl: sHosterUrl = sHosterUrl.split('&url=')[1] #pour récuperer les liens jwplayer if 'filmhdstream' in sHosterUrl: sTitle = sMovieTitle + '[COLOR coral]GoogleDrive[/COLOR]' oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sHosterUrl) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addLink(SITE_IDENTIFIER, 'showHostersFhds', sTitle, sThumb, '', oOutputParameterHandler) #pour récuperer les liens jheberg elif 'jheberg' in sHosterUrl: aResult = cJheberg().GetUrls(sHosterUrl) if aResult: for aEntry in aResult: sHosterUrl = aEntry oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sMovieTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb) else: oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sMovieTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb) progress_.VSclose(progress_) 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() # # .+? ([^<]+) (.+?) sPattern = 'src="([^<]+)" frameborder' oParser = cParser() 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) if url.startswith('//'): url = 'http:' + url sHosterUrl = url oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sMovieTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail) progress_.VSclose(progress_) # # .+? ([^<]+) (.+?) sPattern = "src: '([^<]+)', type: 'application/x-mpegURL'" oParser = cParser() 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) if url.startswith('//'): url = 'http:' + url sHosterUrl = url oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sMovieTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumbnail) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() if sSearch: sUrl = URL_SEARCH[0] else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) if sSearch: oRequestHandler.addHeaderEntry('Referer', URL_MAIN) oRequestHandler.addHeaderEntry('User-Agent', UA) # oRequestHandler.addHeaderEntry('Host', 'wwv.papstream.cc') # oRequestHandler.addHeaderEntry('Origin', URL_MAIN) oRequestHandler.addHeaderEntry('Content-Type', 'application/x-www-form-urlencoded') oRequestHandler.setRequestType(cRequestHandler.REQUEST_TYPE_POST) # oRequestHandler.addParametersLine('do=search') # oRequestHandler.addParametersLine('subaction=search') oRequestHandler.addParametersLine('story=' + sSearch) sHtmlContent = oRequestHandler.request() sPattern = 'class="short-images-link".+?img src="([^"]+)".+?short-link"><a href="([^"]+)".+?>([^<]+)</a>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sThumb = URL_MAIN[:-1] + aEntry[0] sUrl = URL_MAIN[:-1] + aEntry[1].replace( '/animes/films/', '/films/').replace('/animes/series/', '/series/') sTitle = aEntry[2] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) if '/series/' in sUrl or '/animes/' in sUrl: oGui.addTV(SITE_IDENTIFIER, 'showSaisons', sTitle, 'series.png', sThumb, '', oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showLink', sTitle, 'films.png', sThumb, '', oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Suivant >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def parseUrl(self): #import sys #xbmc.log('arg :' + str(sys.argv), xbmc.LOGNOTICE) #xbmc.log('Debug 1 >>' + str(xbmc.getInfoLabel('Container().CurrentPage')), xbmc.LOGNOTICE) #xbmc.log('Debug 2 >>' + str(xbmc.getInfoLabel('Container.FolderPath')), xbmc.LOGNOTICE) oInputParameterHandler = cInputParameterHandler() if (oInputParameterHandler.exist('function')): sFunction = oInputParameterHandler.getValue('function') else: VSlog('call load methode') sFunction = "load" if (sFunction == 'setSetting'): if (oInputParameterHandler.exist('id')): plugin_id = oInputParameterHandler.getValue('id') else: return if (oInputParameterHandler.exist('value')): value = oInputParameterHandler.getValue('value') else: return setSetting(plugin_id, value) return if (sFunction == 'DoNothing'): return if (not oInputParameterHandler.exist('site')): #mise a jour try: #from resources.lib.about import cAbout #cAbout().getUpdate() plugins = __import__('resources.lib.about', fromlist=['about']).cAbout() function = getattr(plugins, 'getUpdate') function() except: pass #charge home plugins = __import__('resources.lib.home', fromlist=['home']).cHome() function = getattr(plugins, 'load') function() return if (oInputParameterHandler.exist('site')): sSiteName = oInputParameterHandler.getValue('site') # if (oInputParameterHandler.exist('title')): # sTitle = oInputParameterHandler.getValue('title') # else: sTitle = "none" VSlog('load site ' + sSiteName + ' and call function ' + sFunction) #cStatistic().callStartPlugin(sSiteName, sTitle) if (isHosterGui(sSiteName, sFunction) == True): return if (isGui(sSiteName, sFunction) == True): return if (isFav(sSiteName, sFunction) == True): return if (isLibrary(sSiteName, sFunction) == True): return if (isDl(sSiteName, sFunction) == True): return if (isHome(sSiteName, sFunction) == True): return if (isTrakt(sSiteName, sFunction) == True): return if sSiteName == 'globalSearch': searchGlobal() return if sSiteName == 'globalRun': __import__('resources.lib.runscript', fromlist=['runscript']) #function = getattr(plugins, sFunction) #function() return if sSiteName == 'globalSources': oGui = cGui() oPluginHandler = cPluginHandler() aPlugins = oPluginHandler.getAvailablePlugins(True) if (len(aPlugins) == 0): addons = addon() addons.openSettings() xbmc.executebuiltin("Container.Refresh") else: for aPlugin in aPlugins: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter( 'siteUrl', 'http://venom') icon = 'sites/%s.png' % (aPlugin[1]) #icon = 'https://imgplaceholder.com/512x512/transparent/fff?text=%s&font-family=Roboto_Bold' % aPlugin[1] oGui.addDir(aPlugin[1], 'load', aPlugin[0], icon, oOutputParameterHandler) oGui.setEndOfDirectory() return if sSiteName == 'globalParametre': addons = addon() addons.openSettings() return #if (isAboutGui(sSiteName, sFunction) == True): #return #charge sites try: #exec "from resources.sites import " + sSiteName + " as plugin" #exec "plugin." + sFunction +"()" plugins = __import__('resources.sites.%s' % sSiteName, fromlist=[sSiteName]) function = getattr(plugins, sFunction) function() except Exception as e: progress().VSclose( ) # Refermer la dialogue en cas d'exception, sinon blocage de Kodi VSlog('could not load site: ' + sSiteName + ' error: ' + str(e)) import traceback traceback.print_exc() return
def searchGlobal(): oGui = cGui() addons = addon() oInputParameterHandler = cInputParameterHandler() sSearchText = oInputParameterHandler.getValue('searchtext') sCat = oInputParameterHandler.getValue('sCat') oHandler = cRechercheHandler() oHandler.setText(sSearchText) oHandler.setCat(sCat) aPlugins = oHandler.getAvailablePlugins() if not aPlugins: return True total = len(aPlugins) #VSlog(str(aPlugins), xbmc.LOGNOTICE) progress_ = progress().VScreate() #kodi 17 vire la fenetre busy qui ce pose au dessus de la barre de Progress try: xbmc.executebuiltin("Dialog.Close(busydialog)") except: pass window(10101).setProperty('search', 'true') oGui.addText('globalSearch', addons.VSlang(30081) % (sSearchText), 'none.png') sSearchText = Quote(sSearchText) for count, plugin in enumerate(aPlugins): #text = '%s/%s - %s' % ((count+1), total, plugin['name']) progress_.VSupdatesearch(progress_, total, plugin['name']) if progress_.iscanceled(): progress_.close() break #nom du site oGui.addText( plugin['identifier'], '%s. [COLOR olive]%s[/COLOR]' % ((count + 1), plugin['name']), 'sites/%s.png' % (plugin['identifier'])) #recherche import _pluginSearch(plugin, sSearchText) window(10101).setProperty('search', 'false') #progress_.VSclose(progress_) #affichage total = len(oGui.searchResults) #progress_ = progress().VScreate() for count, result in enumerate(oGui.searchResults): #text = '%s/%s - %s' % ((count+1/total), total, result['guiElement'].getTitle()) #if(count == 0): # cConfig().updateDialogSearch(dialog, total, text,True) #else: # cConfig().updateDialogSearch(dialog, total, text) progress_.VSupdatesearch(progress_, total, "Patience...") #result['params'].addParameter('VSTRMSEARCH', 'True') oGui.addFolder(result['guiElement'], result['params']) #VSlog('%s - %s' % (middle, old_label), xbmc.LOGNOTICE) progress_.VSclose(progress_) oGui.setEndOfDirectory() return True
def showSeries(sSearch=''): oGui = cGui() oParser = cParser() if sSearch: sUrl = sSearch.replace(' ', '+') pdata = 'do=search&subaction=search&story=' + sUrl + '&titleonly=3&all_word_seach=1&catlist[]=31' oRequest = cRequestHandler(URL_SEARCH[0]) # oRequest.setRequestType(1) oRequest.addHeaderEntry('User-Agent', UA) oRequest.addHeaderEntry('Referer', URL_MAIN) oRequest.addHeaderEntry( 'Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8') oRequest.addHeaderEntry('Accept-Language', 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3') oRequest.addHeaderEntry('Content-Type', 'application/x-www-form-urlencoded') oRequest.addParametersLine(pdata) sHtmlContent = oRequest.request() else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = 'mov clearfix.+?src="([^"]+)" *alt="([^"]+).+?data-link="([^"]+).+?block-sai">([^<]+).+?ml-desc">(.+?)</div>' aResult = oParser.parse(sHtmlContent, sPattern) 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 sThumb = aEntry[0] if sThumb.startswith('/'): sThumb = URL_MAIN[:-1] + aEntry[0] sTitle = aEntry[1].replace('- Saison', 'Saison').replace(' wiflix', '') sLang = re.sub('Saison \d+', '', aEntry[3]).replace(' ', '') sDisplaytitle = ('%s (%s)') % (sTitle, sLang) sUrl = aEntry[2] sDesc = aEntry[4] oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sLang', sLang) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addSeason(SITE_IDENTIFIER, 'showEpisodes', sDisplaytitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) sNextPage, sPaging = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showSeries', 'Page ' + sPaging, oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showEpisodes(): oGui = cGui() import requests oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() # (.+?) ([^<]+) .+? sPattern = '<a href="([^<]+)">([^<]+)<em>([^<]+)</em>' oParser = cParser() 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 sTitle = sMovieTitle + " " + aEntry[1] + aEntry[2] siteUrl = str(aEntry[0]) sThumb = sThumb sDesc = "" oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', siteUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addTV(SITE_IDENTIFIER, 'showEpisodes', sTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) oParser = cParser() #Recuperation infos sId = '' sPattern = 'data-id="(.+?)">' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0]): sId = aResult[1][0] #print sId # ([^<]+) .+? headers = { 'Host': 'to.cima4up.co', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:65.0) Gecko/20100101 Firefox/65.0', 'Accept': '*/*', 'Accept-Language': 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3', 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8', 'X-Requested-With': 'XMLHttpRequest', 'Referer': sUrl, 'Connection': 'keep-alive' } data = {'id': sId} s = requests.Session() r = s.post( 'https://to.cima4up.co/wp-content/themes/Cima4up2019/Ajax/Single.php', headers=headers, data=data) sHtmlContent += r.content # (.+?) .+? ([^<]+) sPattern = '<IFRAME SRC="([^<]+)" FRAMEBORDER' oParser = cParser() 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) sTitle = sMovieTitle if 'thevideo.me' in url: sTitle = " (thevideo.me)" if 'flashx' in url: sTitle = " (flashx)" if 'streamcherry' in url: sTitle = " (streamcherry)" if 'cloudvideo' in url: sTitle = " (cloudvideo)" if 'streamcloud' in url: sTitle = " (streamcloud)" if 'userscloud' in url: sTitle = " (userscloud)" if 'clicknupload' in url: sTitle = " (clicknupload)" if url.startswith('//'): url = 'http:' + url sHosterUrl = url oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sMovieTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb) progress_.VSclose(progress_) # (.+?) .+? ([^<]+) sPattern = '<a target="_blank" rel="nofollow" href="([^<]+)"><i class="fa fa-download"></i>' oParser = cParser() 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) sTitle = sMovieTitle if 'thevideo.me' in url: sTitle = " (thevideo.me)" if 'flashx' in url: sTitle = " (flashx)" if 'streamcherry' in url: sTitle = " (streamcherry)" if 'cloudvideo' in url: sTitle = " (cloudvideo)" if 'streamcloud' in url: sTitle = " (streamcloud)" if 'userscloud' in url: sTitle = " (userscloud)" if 'clicknupload' in url: sTitle = " (clicknupload)" if url.startswith('//'): url = 'http:' + url sHosterUrl = url oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sMovieTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() # ([^<]+) .+? sPattern = '<li class="col-md-3"><a href="([^<]+)">.+?<img src="([^<]+)" itemprop="image"> <div class="mov-details-overlay">.+?<h4 class="move-title">([^<]+)</h4>.+?<div class="card-text">.+?<p>([^<]+)</p>.+?</div>.+?<div class="mov-typ">([^<]+)</div>' oParser = cParser() 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 sTitle = aEntry[2].decode("utf8") sTitle = cUtil().unescape(sTitle).encode("utf8") sTitle = sTitle.replace("مشاهدة", "").replace("مترجم", "").replace( "فيلم", "").replace("اون لاين", "").replace("WEB-DL", "").replace( "BRRip", "").replace("720p", "").replace("HD-TC", "").replace( "HDRip", "").replace("HD-CAM", "").replace( "DVDRip", "").replace("BluRay", "").replace( "1080p", "").replace("WEBRip", "").replace( "WEB-dl", "").replace("4K", "").replace( "All", "").replace("BDRip", "").replace( "HDCAM", "").replace("HDTC", "").replace( "HDTV", "").replace("HD", "").replace( "720", "" ).replace("HDCam", "").replace( "Full HD", "").replace( "1080", "").replace( "HC", "").replace( "Web-dl", "") siteUrl = str(aEntry[0]) sThumb = str(aEntry[1]) sDesc = aEntry[4] annee = '' m = re.search('([0-9]{4})', sTitle) if m: annee = str(m.group(0)) sTitle = sTitle.replace(annee, '') if annee: sTitle = sTitle + '(' + annee + ')' oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', siteUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oGui.addMovie(SITE_IDENTIFIER, 'showLink', sTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addDir(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', 'next.png', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showSeries(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() #Nettoyage du code, a simplifier, mais je trouve pas ce qui ne va pas sHtmlContent = sHtmlContent.decode('utf-8', "replace") sHtmlContent = unicodedata.normalize('NFD', sHtmlContent).encode( 'ascii', 'ignore').decode("unicode_escape") #vire accent et '\' sHtmlContent = sHtmlContent.encode('utf-8') #On remet en utf-8 sHtmlContent = sHtmlContent.replace( '<strong>Telechargement VOSTFR', '').replace('<strong>Telechargement VF', '').replace('<strong>Telechargement', '') sHtmlContent = sHtmlContent.replace('<a href="http://www.multiup.org', '') #supprimme pour récuperer les new regex different sHtmlContent = sHtmlContent.replace( '<span style="color: #ff9900;">New</span>', '') #récupération des Synopsis sDesc = '' try: sPattern = '(?:<p style="text-align: center;"|<p align="center")>([^<]+)<\/p>' aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0]: sDesc = aResult[1][0] sDesc = sDesc.replace('’', '\'').replace('…', '...') except: pass sPattern = '<span style="color: #33cccc; font-size: large;"><b>([^<]+)|>(Episode[^<]{2,12})<(?!\/a>)(.{0,10}a href="http.+?)(?:<.p|<br|<.div)' aResult = oParser.parse(sHtmlContent, sPattern) #astuce en cas d'episode unique if (aResult[0] == False): #oGui.setEndOfDirectory() showHosters() return 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 if aEntry[0]: oGui.addText(SITE_IDENTIFIER, '[COLOR red]' + aEntry[0] + '[/COLOR]') else: #on vire le tiret laisser les tiret ils sont different sMovieTitle = sMovieTitle.replace(' – Saison', ' Saison').replace( ' - Saison', ' Saison') sMovieTitle = sMovieTitle.replace('[Complete]', '') sTitle = sMovieTitle + ' ' + aEntry[1] sUrl = aEntry[2] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addLink(SITE_IDENTIFIER, 'serieHosters', sTitle, sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oParser = cParser() if sSearch: if URL_SEARCH[0] in sSearch: sUrl = sSearch else: sUrl = URL_SEARCH[0] + sSearch sUrl = sUrl.replace(' ', '+') else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = 'class="poster.+?img src="([^"]+)".+?class="quality">([^<]+)</div>.+?class="title"><a href="([^"]+)".+?title="([^"]+)".+?class="label">Ann.+?<a href.+?>([^<]+)</a>.+?class="shortStory">([^<]+)</div>' 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 sUrl2 = aEntry[2] sThumb = aEntry[0] if sThumb.startswith('//'): sThumb = 'http:' + sThumb sTitle = aEntry[3] sQual = aEntry[1] sYear = aEntry[4] sDesc = aEntry[5] sDisplayTitle = ('%s [%s]') % (sTitle, sQual) oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oOutputParameterHandler.addParameter('sYear', sYear) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, 'films.png', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) sNumPage = re.search('page/([0-9]+)', sNextPage).group(1) oGui.addNext(SITE_IDENTIFIER, 'showMovies', 'Page ' + sNumPage, oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showHosters(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') sYear = oInputParameterHandler.getValue('sYear') sDesc = oInputParameterHandler.getValue('sDesc') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() # Vire les bandes annonces sHtmlContent = sHtmlContent.replace('src="https://www.youtube.com/', '') sPattern = '<div class="tabs_header">.+?<a.+?>([^<]+)</b><tr>|(?:<a class="" rel="noreferrer" href="([^"]+)".+?<img src="/templates/Flymix/images/(.+?).png" /> *</a>|<a href="([^"]+)" >([^"]+)</a>)' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) oGui.addText(SITE_IDENTIFIER, sMovieTitle) oOutputParameterHandler = cOutputParameterHandler() for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break if aEntry[0]: oGui.addText( SITE_IDENTIFIER, '[COLOR red]' + aEntry[0].replace(" ", "") + '[/COLOR]') else: if aEntry[3]: try: sHost, sTitle = aEntry[4].split('-', 1) sHost = '[COLOR coral]' + sHost + '[/COLOR]' sUrl = aEntry[3] except ValueError: sHost = '[COLOR coral]' + aEntry[4].capitalize( ) + '[/COLOR]' sHost = re.sub('\.\w+', '', sHost) sUrl = aEntry[3] else: sHost = '[COLOR coral]' + aEntry[2].capitalize( ) + '[/COLOR]' sHost = re.sub('\.\w+', '', sHost) sUrl = aEntry[1] oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oOutputParameterHandler.addParameter('sYear', sYear) oGui.addLink(SITE_IDENTIFIER, 'Display_protected_link', sHost, sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showHosters(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<span style="color: #ff990.+?>([^<]+)<|large button.+?href="(.+?)"' 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 if aEntry[0]: oGui.addText(SITE_IDENTIFIER, '[COLOR red]' + aEntry[0] + '[/COLOR]') else: #nettoyage du titre sMovieTitle = re.sub('\[\w+ \w+]', '', sMovieTitle) sMovieTitle = re.sub('\[\w+]', '', sMovieTitle) sHosterUrl = aEntry[1] #pour récuperer tous les liens if '&url=' in sHosterUrl: sHosterUrl = sHosterUrl.split('&url=')[1] #pour récuperer les liens jwplayer if 'filmhdstream' in sHosterUrl: sTitle = sMovieTitle + '[COLOR coral]GoogleDrive[/COLOR]' oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sHosterUrl) oOutputParameterHandler.addParameter( 'sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addLink(SITE_IDENTIFIER, 'showHostersFhds', sTitle, sThumb, '', oOutputParameterHandler) #pour récuperer les liens jheberg elif 'jheberg' in sHosterUrl: aResult = cJheberg().GetUrls(sHosterUrl) if aResult: for aEntry in aResult: sHosterUrl = aEntry oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sMovieTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster( oGui, oHoster, sHosterUrl, sThumb) else: oHoster = cHosterGui().checkHoster(sHosterUrl) if (oHoster != False): oHoster.setDisplayName(sMovieTitle) oHoster.setFileName(sMovieTitle) cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') if sSearch: sUrl = sSearch sPattern = '<a href="([^"]+)"><img src="([^"]+)" alt=.+?href=.+?>([^<]+)<' elif '/les-plus-populaires/' in sUrl or '/tendance/' in sUrl: sPattern = '<img src="([^"]+)" alt="(?:film|serie) ([^"]+)streaming".+?(?:|quality">([^<]+)<.+?)href="([^"]+)"' else: sPattern = '<img src="([^"]+)" alt="(?:film|serie) ([^"]+)streaming".+?(?:|quality">([^<]+)<.+?)href="([^"]+)".+?div class="texto">([^<]+)</div>' oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break if sSearch: sUrl2 = aEntry[0] sThumb = aEntry[1].replace('w92', 'w342').replace('w185', 'w342') sTitle = aEntry[2] sQual = '' setDisplayName = ('%s [%s]') % (sTitle, sQual) else: sThumb = aEntry[0].replace('w185', 'w342') sTitle = aEntry[1] sQual = aEntry[2].replace('Haute-qualité', 'HD') sUrl2 = aEntry[3] setDisplayName = ('%s [%s]') % (sTitle, sQual) sDesc = '' if len(aEntry) > 4: sDesc = aEntry[4].replace('’', '\'').replace( '…', '...').replace('>', '') #Si recherche et trop de resultat, on nettoye if sSearch and total > 3: if cUtil().CheckOccurence(sSearch.replace(URL_SEARCH[0], ''), sTitle) == 0: continue oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) if '/series/' in sUrl2: oGui.addTV(SITE_IDENTIFIER, 'ShowSerieSaisonEpisodes', setDisplayName, '', sThumb, sDesc, oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showHosters', setDisplayName, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sHtmlContent = sHtmlContent.replace(' [Streaming]', '').replace( ' [Streaming', '').replace(' [Telecharger]', '').replace(' [Téléchargement]', '').replace(' [Telechargement]', '') sPattern = '<div class="post-thumb is-image"><a href="([^"]+)".+?title="([^"]+)".+?src="(.+?)".+?<p>(.+?)<\/p>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addNone(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sUrl2 = aEntry[0] sTitle = aEntry[1].replace('′', '\'') #on vire le tiret laisser les deux ils sont different sTitle = sTitle.replace(' – Saison', ' Saison').replace(' - Saison', ' Saison') sThumb = aEntry[2] sDesc = aEntry[3] #Filtre recherche if sSearch and total > 3: if cUtil().CheckOccurence(sSearch.replace(URL_SEARCH[0], ''), sTitle) == 0: continue oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) #Mangas et Series fonctionnent pareil if '/series-tv/' in sUrl or '-saison-' in sUrl2: oGui.addTV(SITE_IDENTIFIER, 'showSeries', sTitle, 'series.png', sThumb, sDesc, oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sTitle, 'films.png', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) if not sSearch: sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<div class="unfilm".+?href="(.+?)".+?<img src="(.+?)".+?<span class="xquality">(.+?)</span>.+?<span class="xlangue">(.+?)</span>.+?<span class="linkfilm">(.+?)</span>' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sUrl2 = str(aEntry[0]) sThumb = str(aEntry[1]) if 'films' in sUrl: sQual = str(aEntry[2]) sLang = str(aEntry[3]) else: sQual = '' sLang = '' sTitle = str(aEntry[4]) sDesc = '' sDisplayTitle = ('%s (%s) (%s)') % (sTitle, sQual, sLang.upper()) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) if '/serie' in sUrl: oGui.addTV(SITE_IDENTIFIER, 'showSaisons', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) elif '/anime' in sUrl: oGui.addTV(SITE_IDENTIFIER, 'showEpisodes', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showLinks', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() Nextpagesearch = oInputParameterHandler.getValue('Nextpagesearch') sUrl = oInputParameterHandler.getValue('siteUrl') if Nextpagesearch: sSearch = sUrl if sSearch: if URL_SEARCH[0] in sSearch: sSearch = sSearch.replace(URL_SEARCH[0], '') if Nextpagesearch: query_args = (('do', 'search'), ('subaction', 'search'), ('search_start', Nextpagesearch), ('story', sSearch)) else: query_args = (('do', 'search'), ('subaction', 'search'), ('story', sSearch)) data = urlEncode(query_args) oRequestHandler = cRequestHandler(URL_SEARCH[0]) oRequestHandler.setRequestType(cRequestHandler.REQUEST_TYPE_POST) oRequestHandler.addParametersLine(data) oRequestHandler.addParameters('User-Agent', UA) sHtmlContent = oRequestHandler.request() sHtmlContent = oRequestHandler.request() else: sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() if sSearch: sPattern = '<div class="fullstream fullstreaming">.+?<img src="([^"]+)".+?<h3 class="mov-title"><a href="([^"]+)" >([^<]+)</a>.+?<strong>(?:Qualit|Version).+?">(.+?)</a>.+?<\/*strong>' else: sPattern = '<div class="fullstream fullstreaming">\s*<img src="([^"]+)".+?alt="([^"]+).+?<strong>(?:Qualit|Version).+?">(.+?)</a>.+?<\/*strong>.+?xfsearch.+?">([^<]+).+?<div itemprop="description".+?;">([^<]+).+?<a 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) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break if sSearch: sThumb = aEntry[0] if sThumb.startswith('/'): sThumb = URL_MAIN[:-1] + sThumb siteUrl = re.sub('www\.', '', aEntry[1]) sTitle = aEntry[2] sQual = aEntry[3] sQual = sQual.replace(':', '').replace(' ', '').replace(',', '/') sYear = '' sDesc = '' else: sThumb = aEntry[0] if sThumb.startswith('/'): sThumb = "https:" + sThumb sTitle = aEntry[1] sQual = aEntry[2] sQual = sQual.replace(':', '').replace(' ', '').replace(',', '/') #Certain film n'ont pas de date. try: sYear = re.search('(\d{4})', aEntry[3]).group(1) except: pass sDesc = aEntry[4] siteUrl = re.sub('www\.', '', aEntry[5]) sDisplayTitle = '%s [%s]' % (sTitle, sQual) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', siteUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sYear', sYear) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, 'films.png', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) if sSearch: sPattern = '<a name="nextlink" id="nextlink" onclick="javascript:list_submit\(([0-9]+)\); return\(false\)" href="#">Suivant' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sSearch) oOutputParameterHandler.addParameter('Nextpagesearch', aResult[1][0]) number = re.search('([0-9]+)', aResult[1][0]).group(1) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Page ' + number + ' >>>[/COLOR]', oOutputParameterHandler) else: sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) number = re.search('/page/([0-9]+)', sNextPage).group(1) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Page ' + number + ' >>>[/COLOR]', oOutputParameterHandler) if Nextpagesearch: oGui.setEndOfDirectory() if not sSearch: oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oParser = cParser() if sSearch: sUrl = sSearch else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<div class="libre-movie.+?data-src="(.+?)".+?title="(.+?)".+?onclick="window.location.href=\'(.+?)\'">.+?class="maskhr">Synopsis.+?</span>(.+?)</div>' if '/films' in sUrl: sPattern = sPattern + '.+?<div class="maskquality (.+?)">' if '/series' in sUrl: sPattern = sPattern + '.+?>Séries</a>.+?<a href=".+?">(.+?)</a>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break #Si recherche et trop de resultat, on nettoye if sSearch and total > 2: if cUtil().CheckOccurence(sSearch.replace(URL_SEARCH[0], ''), aEntry[1]) == 0: continue sTitle = aEntry[1].replace(' - Saison', ' Saison') sUrl2 = aEntry[2] sDesc = aEntry[3] sThumb = aEntry[0] if sThumb.startswith('/'): sThumb = URL_MAIN[:-1] + sThumb if not '/series/' in sUrl and not '/films/' in sUrl: sDisplayTitle = sTitle if '/films/' in sUrl: sQual = aEntry[4] #on supprime [VOSTFR], [HD 720p] et DVDRIP du titre car affiche en tant que qualite sinon doublons sMovieTitle = sTitle.replace('[VOSTFR]', '').replace( '[HD 720p]', '').replace('DVDRIP ', '') sDisplayTitle = sMovieTitle + ' [' + sQual + ']' if '/series/' in sUrl: if not '/vostfr/' in sUrl and not '/version-francaise/' in sUrl: sLang = aEntry[4] sLang = sLang.replace('Version Française', 'VF') sDisplayTitle = sTitle + ' (' + sLang + ')' else: sDisplayTitle = sTitle oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) if '/series/' in sUrl or '-saison-' in sUrl2: oGui.addTV(SITE_IDENTIFIER, 'seriesHosters', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Next >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMoviesLinks(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sUrl = oInputParameterHandler.getValue('siteUrl') sThumb = oInputParameterHandler.getValue('sThumb') sDesc = oInputParameterHandler.getValue('sDesc') sYear = oInputParameterHandler.getValue('sYear') oRequestHandler = cRequestHandler(sUrl.replace(' ', '%20')) oRequestHandler.addHeaderEntry('User-Agent', UA) oRequestHandler.addHeaderEntry('Accept-Encoding', 'gzip, deflate') sHtmlContent = oRequestHandler.request() #Affichage du texte oGui.addText(SITE_IDENTIFIER, '[COLOR olive]Qualités disponibles pour ce film:[/COLOR]') #récupération du Synopsis sPattern = '<span data-slice="200" itemprop="description">(.+?)</span>' aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0]: sDesc = aResult[1][0] sDesc = sDesc.replace('<span>', '').replace('</span>', '') sDesc = sDesc.replace('<b>', '').replace('</b>', '') sDesc = sDesc.replace('<i>', '').replace('</i>', '') sDesc = sDesc.replace('<br>', '').replace('<br />', '') #on recherche d'abord la qualité courante sPattern = 'couleur-qualitesz"> *Qualité (.+?) <.+?"couleur-languesz">(.+?)</span>' aResult = oParser.parse(sHtmlContent, sPattern) sTitle = sMovieTitle sQual = '' if (aResult[0]): sQual = aResult[1][0][0] sLang = aResult[1][0][1] sTitle = ('%s [%s] (%s)') % (sMovieTitle, sQual, sLang) # On ajoute le lien même si on n'a pas réussi à déterminer la qualité oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oOutputParameterHandler.addParameter('sYear', sYear) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumb, sDesc, oOutputParameterHandler) #on regarde si dispo dans d'autres qualités sPattern = '<a href="([^"]+)"><span class="otherquality">.+?<b>([^"]+)<\/b>.+?<b>([^"]+)<\/b>' 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 sUrl = aEntry[0] sQual = aEntry[1] sLang = aEntry[2] sTitle = ('%s [%s] %s') % (sMovieTitle, sQual, sLang) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oOutputParameterHandler.addParameter('sYear', sYear) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) # Qualité STREAMING sPattern = '<th .+?<img src=.+?>([^>]+?)<\/th>.+?class=\'streaming\' href=\'#\' data-text=.+? data-lien=\'([^>]+?)\' data-id=\'([^>]+?)\'' 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 data_lien = aEntry[1] data_id = aEntry[2] sUrl2 = URL_MAIN + "?do=streaming&id_lien="+data_id+"&lien="+data_lien sTitle = ('%s [STREAMING]') % (sMovieTitle) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oOutputParameterHandler.addParameter('sYear', sYear) oGui.addMovie(SITE_IDENTIFIER, 'showHostersLink', sTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() Nextpagesearch = oInputParameterHandler.getValue('Nextpagesearch') sUrl = oInputParameterHandler.getValue('siteUrl') bGlobal_Search = False if Nextpagesearch: sSearch = sUrl if sSearch: if URL_SEARCH[0] in sSearch: bGlobal_Search = True sSearch = sSearch.replace(URL_SEARCH[0], '') #sType = oInputParameterHandler.getValue('type') if Nextpagesearch: query_args = (('do', 'search'), ('subaction', 'search'), ('search_start', Nextpagesearch), ('story', sSearch)) else: query_args = (('do', 'search'), ('subaction', 'search'), ('story', sSearch)) data = urllib.urlencode(query_args) oRequestHandler = cRequestHandler(URL_SEARCH[0]) oRequestHandler.setRequestType(cRequestHandler.REQUEST_TYPE_POST) oRequestHandler.addParametersLine(data) oRequestHandler.addParameters('User-Agent', UA) sHtmlContent = oRequestHandler.request() #if (sType): # if sType == 'serie': # oRequestHandler.addParameters('catlist[]', '30') # elif sType == 'film': # oRequestHandler.addParameters('catlist[]', '3') sHtmlContent = oRequestHandler.request() else: sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '<div class="fullstream fullstreaming">\s*<img src="([^"]+)"[^<>]+alt="([^"]+)".+?<h3 class="mov-title"><a href="([^"]+)".+?<strong>(?:Qualité|Version)(.+?)<\/*strong>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break sThumb = aEntry[0] if sThumb.startswith('/'): sThumb = URL_MAIN[:-1] + sThumb siteUrl = aEntry[2] sTitle = aEntry[1] sQual = cUtil().removeHtmlTags(aEntry[3]) sQual = sQual.replace(':', '').replace(' ', '').replace(',', '/') sDisplayTitle = sTitle + ' [' + sQual + ']' oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', siteUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, 'films.png', sThumb, '', oOutputParameterHandler) progress_.VSclose(progress_) if sSearch: sPattern = '<a name="nextlink" id="nextlink" onclick="javascript:list_submit\(([0-9]+)\); return\(false\)" href="#">Suivant' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sSearch) oOutputParameterHandler.addParameter('Nextpagesearch', aResult[1][0]) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Suivant >>>[/COLOR]', oOutputParameterHandler) else: sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Suivant >>>[/COLOR]', oOutputParameterHandler) if Nextpagesearch: oGui.setEndOfDirectory() if not sSearch: oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oParser = cParser() bSearchMovie = False bSearchSerie = False if sSearch: sSearch = sSearch.replace('%20', ' ') if key_search_movies in sSearch: sSearch = sSearch.replace(key_search_movies, '') bSearchMovie = True if key_search_series in sSearch: sSearch = sSearch.replace(key_search_series, '') bSearchSerie = True sSearch2 = sSearch.replace('-', '').strip().lower() sUrl = URL_SEARCH[0] + sSearch2 oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sSearch2 = sSearch.replace('-', '').strip().lower() # ref thumb title sPattern = 'class="TPostMv">.+?href="([^"]*).+?src="([^"]*).+?class="Qlty".+?class="Qlty.+?>([^<]*).+?center">([^<]*)' aResult = oParser.parse(sHtmlContent, sPattern) itemss = 0 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 itemss += 1 sUrl2 = aEntry[0] sThumb = aEntry[1] sLang = aEntry[2] sTitle = aEntry[3] if bSearchMovie: if ' saison ' in sTitle.lower(): continue if bSearchSerie: if ' saison ' not in sTitle.lower(): continue if sSearch and itemss > 4: # 5 premiers résultats non filtrés en cas d'erreur du filtre s1 = sTitle.lower() if '-' in s1: s1 = s1.split('-')[0] if '(' in s1: s1 = s1.split('(')[0] s1 = s1.strip() if sSearch2 not in s1: continue sDisplayTitle = ('%s (%s)') % (sTitle.replace( '- Saison', ' Saison'), sLang) if sSearch and not bSearchMovie and not bSearchSerie: if '/serie' in sUrl or '- saison ' in sTitle.lower(): sDisplayTitle = sDisplayTitle + ' [Série]' else: sDisplayTitle = sDisplayTitle + ' [Film]' if 'http' not in sUrl2: sUrl2 = URL_MAIN[:-1] + sUrl2 if 'http' not in sThumb: sThumb = URL_MAIN[:-1] + sThumb # pour le debugage source avec bcpdechance d'etre hs # films didfficile a obtenir apres id= 18729 # if not ('/serie' in sUrl or ' saison ' in sTitle.lower()): # idmovie = get_id_int_Movie(sUrl2) # if idmovie <= 18729: # sDisplayTitle = sDisplayTitle + ' *' oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) if '/serie' in sUrl or '- saison ' in sTitle.lower(): oGui.addTV(SITE_IDENTIFIER, 'ShowEpisodes', sDisplayTitle, '', sThumb, '', oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, '', sThumb, '', oOutputParameterHandler) progress_.VSclose(progress_) if not sSearch: bNextPage, sNextPage, sNumPage = __checkForNextPage(sHtmlContent) if (bNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) oGui.addNext(SITE_IDENTIFIER, 'showMovies', 'Page ' + sNumPage, oOutputParameterHandler) oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() if sSearch: sUrl = sSearch.replace(' ', '+') else: sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() # derniers épisodes if 'derniere-et-meilleures-serie-en-streaming' in sUrl: sPattern = '<a href="([^"]+)" class="list-group-item.+?>(.+?)<b>(.+?)</b>' sHtmlContent = oParser.abParse(sHtmlContent, "<h4>Les derniers episodes", "les plus vues") #reste else: sPattern = '<a class="image" title="(.+?)" href="([^"]+)".+?src="([^"]+)">' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): total = len(aResult[1]) progress_ = progress().VScreate(SITE_NAME) for aEntry in aResult[1]: progress_.VSupdate(progress_, total) if progress_.iscanceled(): break # Derniers épisodes if 'derniere-et-meilleures-serie-en-streaming' in sUrl: sUrl2 = aEntry[0] sTitle = aEntry[1].replace(' - ', ' ') + aEntry[2].replace(' ','') sThumb = 'news.png' else: sTitle = aEntry[0].replace('Streaming', '') sUrl2 = aEntry[1] sThumb = aEntry[2] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) if 'derniere-et-meilleures-serie-en-streaming' in sUrl: oGui.addDir(SITE_IDENTIFIER, 'showLink', sTitle, sThumb, oOutputParameterHandler) else: oGui.addTV(SITE_IDENTIFIER, 'showS_E', sTitle, '', sThumb, '', oOutputParameterHandler) progress_.VSclose(progress_) sNextPage = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) number = re.search('page=([0-9]+)', sNextPage).group(1) oGui.addNext(SITE_IDENTIFIER, 'showMovies', '[COLOR teal]Page ' + number + ' >>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showMovies(sSearch=''): oGui = cGui() oParser = cParser() if sSearch: sUrl = sSearch.replace(' ', '+') pdata = 'do=search&subaction=search&story=' + sUrl + '&titleonly=3&all_word_seach=1&catlist[]=1' oRequest = cRequestHandler(URL_SEARCH[0]) # oRequest.setRequestType(1) oRequest.addHeaderEntry('User-Agent', UA) oRequest.addHeaderEntry('Referer', URL_MAIN) oRequest.addHeaderEntry('Origin', URL_MAIN) oRequest.addHeaderEntry( 'Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8') oRequest.addHeaderEntry('Accept-Language', 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3') oRequest.addHeaderEntry('Content-Type', 'application/x-www-form-urlencoded') oRequest.addParametersLine(pdata) sHtmlContent = oRequest.request() else: oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = 'mov clearfix.+?src="([^"]*)" *alt="([^"]*).+?link="([^"]+).+?(?:|bloc1">([^<]+).+?)(?:|bloc2">([^<]*).+?)' sPattern += 'ml-desc"> (?:([0-9]+)| )</div.+?Synopsis:.+?ml-desc">(.+?)</div' 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 sThumb = aEntry[0] sTitle = aEntry[1].replace(' wiflix', '') sUrl = aEntry[2] sLang = aEntry[3] Squal = aEntry[4] sYear = aEntry[5] if sThumb.startswith('/'): sThumb = URL_MAIN[:-1] + aEntry[0] # Nettoyage du titre sDesc = str(aEntry[6]) sDesc = sDesc.replace('en streaming ', '') sDesc = sDesc.replace('Regarder film ' + sTitle + ';', '') sDesc = sDesc.replace('Regarder film ' + sTitle + ':', '') sDesc = sDesc.replace('Voir film ' + sTitle + ';', '') sDesc = sDesc.replace('Voir film ' + sTitle + ':', '') sDesc = sDesc.replace('Voir Film ' + sTitle + ':', '') sDesc = sDesc.replace('Voir film ' + sTitle + ' :', '') sDesc = sDesc.replace('Regarder ' + sTitle + ';', '') sDesc = sDesc.replace('Regarder ' + sTitle + ' :', '') sDesc = sDesc.replace('Regarder ' + sTitle + ':', '') sDesc = sDesc.replace('voir ' + sTitle + ';', '') sDesc = sDesc.replace('voir ' + sTitle + ':', '') sDesc = sDesc.replace('Voir ' + sTitle + ':', '') sDesc = sDesc.replace('Regarder film ', '') sDesc = sDesc.strip() sDisplaytitle = '%s [%s] (%s)' % (sTitle, Squal, sLang) oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sYear', sYear) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplaytitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) sNextPage, sPaging = __checkForNextPage(sHtmlContent) if (sNextPage != False): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sNextPage) # number = re.search('/page/([0-9]+)', sNextPage).group(1) oGui.addNext(SITE_IDENTIFIER, 'showMovies', 'Page ' + sPaging, oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory()
def showLink(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() oParser = cParser() #Recuperation infos sNote = '' sPattern = 'قصة الفيلم:([^<]+)<br>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0]): sNote = aResult[1][0] # (.+?) .+? ([^<]+) sPattern = '<input type="hidden" name="([^<]+)" value="1">' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) #fh = open('c:\\test.txt', "w") #fh.write(sHtmlContent.replace('\n','')) #fh.close() #print aResult 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 sTitle = aEntry siteUrl = sUrl sThumb = sThumb sDesc = sNote #print sUrl oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', siteUrl) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) if 'download' in sTitle: oGui.addTV(SITE_IDENTIFIER, 'showServer', sTitle, '', sThumb, sDesc, oOutputParameterHandler) else: oGui.addTV(SITE_IDENTIFIER, 'showServer2', sTitle, '', sThumb, sDesc, oOutputParameterHandler) progress_.VSclose(progress_) oGui.setEndOfDirectory()