# -*- coding: utf-8 -*- # vStream https://github.com/Kodi-vStream/venom-xbmc-addons import random import re import string import unicodedata from resources.lib.comaddon import progress, dialog, VSlog, addon from resources.lib.gui.gui import cGui from resources.lib.gui.hoster import cHosterGui from resources.lib.handler.inputParameterHandler import cInputParameterHandler from resources.lib.handler.outputParameterHandler import cOutputParameterHandler from resources.lib.handler.requestHandler import cRequestHandler from resources.lib.parser import cParser from resources.lib.stormwall import Stormwall from resources.lib.config import GestionCookie # Fonction de vStream qui remplace urllib.quote, pour simplifier le passage en python 3 from resources.lib.util import Quote, cUtil UA = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0' headers = {'User-Agent': UA} SITE_IDENTIFIER = 'zone_telechargement_ws' SITE_NAME = '[COLOR violet]Zone-Telechargement[/COLOR]' SITE_DESC = 'Fichier en DDL, HD' URL_HOST = 'https://www.zt-za.com/' def GetURL_MAIN(): ADDON = addon() MemorisedHost = '' oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') Sources = oInputParameterHandler.getValue('function') # z = oInputParameterHandler.getAllParameter() # VSlog(z) # quand vstream load tous les sites on passe >> globalSources # quand vstream load a partir du menu home on passe >> callplugin # quand vstream fabrique une liste de plugin pour menu(load site globalRun and call function search) >> search # quand l'url ne contient pas celle déjà enregistrer dans settings et que c'est pas dlprotect on active. if not (Sources == 'callpluging' or Sources == 'globalSources' or Sources == 'search') and not ADDON.getSetting('ZT')[6:] in sUrl and not 'dl-protect1.' in sUrl and not 'zt-protect.' in sUrl: oRequestHandler = cRequestHandler(URL_HOST) oRequestHandler.request() MemorisedHost = oRequestHandler.getRealUrl() if MemorisedHost is not None and MemorisedHost != '': if not 'cf_chl_jschl_tk' in MemorisedHost: ADDON.setSetting('ZT', MemorisedHost) VSlog("ZT url >> " + str(MemorisedHost) + ' sauvegarder >> ' + ADDON.getSetting('ZT')) else: ADDON.setSetting('ZT', URL_HOST) VSlog("Url non changer car egal a None le site peux etre surchager utilisation de >> ADDON.getSetting('ZT')") return ADDON.getSetting('ZT') else: # si pas de zt dans settings on récup l'url une fois dans le site if not ADDON.getSetting('ZT') and not (Sources == 'callpluging' or Sources == 'globalSources' or Sources == 'search'): oRequestHandler = cRequestHandler(URL_HOST) oRequestHandler.request() MemorisedHost = oRequestHandler.getRealUrl() if MemorisedHost is not None and MemorisedHost != '': if not 'cf_chl_jschl_tk' in MemorisedHost: ADDON.setSetting('ZT', MemorisedHost) VSlog("ZT url vide >> " + str(MemorisedHost) + ' sauvegarder >> ' + ADDON.getSetting('ZT')) else: ADDON.setSetting('ZT', URL_HOST) VSlog("Url non changer car egal a None le site peux etre surcharger utilisation de >> ADDON.getSetting('ZT')") return ADDON.getSetting('ZT') else: VSlog("ZT pas besoin d'url") return ADDON.getSetting('ZT') URL_MAIN = GetURL_MAIN() URL_SEARCH = (URL_MAIN + 'engine/ajax/controller.php?mod=filter&q=', 'showMovies') URL_SEARCH_MOVIES = (URL_MAIN + 'engine/ajax/controller.php?mod=filter&q=', 'showMovies') URL_SEARCH_SERIES = (URL_MAIN + 'engine/ajax/controller.php?mod=filter&q=', 'showMovies') FUNCTION_SEARCH = 'showMovies' MOVIE_NEWS = (URL_MAIN + 'top-films/', 'showMovies') # films (derniers ajouts) MOVIE_EXCLUS = (URL_MAIN + 'nouveaux-films/', 'showMovies') # exclus (films populaires) MOVIE_3D = (URL_MAIN + 'film-bluray-3d/', 'showMovies') # films en 3D MOVIE_HD = (URL_MAIN + 'film-bluray-hd/', 'showMovies') # films en HD MOVIE_HDLIGHT = (URL_MAIN + 'film-x265-x264-hdlight/', 'showMovies') # films en x265 et x264 MOVIE_VOSTFR = (URL_MAIN + 'filmsenvostfr/', 'showMovies') # films VOSTFR MOVIE_4K = (URL_MAIN + 'films-ultra-hd-4k/', 'showMovies') # films "4k" MOVIE_GENRES = (URL_MAIN + 'engine/ajax/controller.php?mod=filter&catid=0&q=&genre%5B%5D={}¬e=0&art=0&AiffchageMode=0&inputTirePar=0&cstart=1', 'showGenre') MOVIE_ANIME = (URL_MAIN + 'dessins-animes/', 'showMovies') # dessins animes MOVIE_BDRIP = (URL_MAIN + 'film-dvdrip-bdrip/', 'showMovies') MOVIE_TS_CAM = (URL_MAIN + 'tscam-films-2020/', 'showMovies') MOVIE_VFSTFR = (URL_MAIN + 'film-vfstfr/', 'showMovies') MOVIE_MKV = (URL_MAIN + 'film-mkv/', 'showMovies') MOVIE_VO = (URL_MAIN + 'films-vo/', 'showMovies') MOVIE_INTEGRAL = (URL_MAIN + 'collections-films-integrale/', 'showMovies') SERIE_SERIES = ('http://', 'showMenuSeries') SERIE_VFS = (URL_MAIN + 'serie-vf/', 'showMovies') SERIE_VF_720 = (URL_MAIN + 'serie-vf-en-hd/', 'showMovies') SERIE_VF_1080 = (URL_MAIN + 'serie-vf-1080p/', 'showMovies') SERIE_VOSTFRS = (URL_MAIN + 'serie-vostfr/', 'showMovies') SERIE_VOSTFRS_720 = (URL_MAIN + 'serie-vostfr-hd/', 'showMovies') SERIE_VOSTFRS_1080 = (URL_MAIN + 'serie-vostfr-1080p/', 'showMovies') SERIE_VO = (URL_MAIN + 'serie-vo/', 'showMovies') ANCIENNE_SERIE = (URL_MAIN + 'telecharger-serie/ancienne-serie/', 'showMovies') ANIM_ANIMS = ('http://', 'showMenuMangas') ANIM_VFS = (URL_MAIN + 'animes-vf/', 'showMovies') ANIM_VF_720 = (URL_MAIN + 'animes-vf-720p/', 'showMovies') ANIM_VF_1080 = (URL_MAIN + 'animes-vf-1080p/', 'showMovies') ANIM_VOSTFRS = (URL_MAIN + 'animes-vostfr/', 'showMovies') ANIM_VOSTFRS_720 = (URL_MAIN + 'animes-vostfr-720p/', 'showMovies') ANIM_VOSTFRS_1080 = (URL_MAIN + 'animes-vostfr-1080p/', 'showMovies') ANIM_VOSTEN = (URL_MAIN + 'animes-vosten/', 'showMovies') FILM_ANIM = (URL_MAIN + 'films-mangas/', 'showMovies') OAV = (URL_MAIN + 'oav/', 'showMovies') DOC_NEWS = (URL_MAIN + 'documentaire-gratuit/', 'showMovies') # docs DOC_DOCS = ('http://', 'load') SPORT_SPORTS = (URL_MAIN + 'sport/', 'showMovies') # sports TV_NEWS = (URL_MAIN + 'emissions-tv/', 'showMovies') # dernieres emissions tv SPECT_NEWS = (URL_MAIN + 'spectacles/', 'showMovies') # derniers spectacles CONCERT_NEWS = (URL_MAIN + 'concert/', 'showMovies') # derniers concerts AUTOFORM_VID = (URL_MAIN + 'autoformations-videos/', 'showMovies') def load(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom/') oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom/') oGui.addDir(SITE_IDENTIFIER, 'showMenuFilms', 'Films', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom/') oGui.addDir(SITE_IDENTIFIER, 'showMenuSeries', 'Séries', 'series.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom/') oGui.addDir(SITE_IDENTIFIER, 'showMenuMangas', 'Animés', 'animes.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom/') oGui.addDir(SITE_IDENTIFIER, 'showMenuAutres', 'Autres', 'tv.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showMenuFilms(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_NEWS[1], 'Films (Derniers ajouts)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_EXCLUS[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_EXCLUS[1], 'Exclus (Films populaires)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_HD[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_HD[1], 'Blu-rays (720p & 1080p)', 'hd.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_3D[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_3D[1], 'Films (3D)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_HDLIGHT[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_HDLIGHT[1], 'Films (x265 & x264)', 'hd.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_4K[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_4K[1], 'Films (4k)', 'hd.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_GENRES[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_GENRES[1], 'Films (Genres)', 'genres.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_ANIME[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_ANIME[1], 'Dessins Animés (Derniers ajouts)', 'animes.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_BDRIP[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_BDRIP[1], 'Films (BDRIP)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_TS_CAM[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_TS_CAM[1], 'Films (TS , CAM, R5 ,DVDSCR)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_VFSTFR[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_VFSTFR[1], 'Films en francais sous titre francais (Derniers ajouts)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_MKV[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_MKV[1], 'Films (dvdrip mkv)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_VO[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_VO[1], 'Films en Version original (Derniers ajouts)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_INTEGRAL[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_INTEGRAL[1], 'Integral de films (Derniers ajouts)', 'news.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showMenuSeries(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_VFS[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_VFS[1], 'Séries (VF)', 'vf.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_VF_720[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_VFS[1], 'Séries 720p (VF)', 'vf.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_VF_1080[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_VFS[1], 'Séries 1080p (VF)', 'vf.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_VOSTFRS[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_VOSTFRS[1], 'Séries (VOSTFR)', 'vostfr.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_VOSTFRS_720[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_VOSTFRS_720[1], 'Séries 720p (VOSTFR)', 'vostfr.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_VOSTFRS_1080[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_VOSTFRS_1080[1], 'Séries 1080p (VOSTFR)', 'vostfr.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_VO[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_VO[1], 'Séries (VO)', 'vostfr.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', ANCIENNE_SERIE[0]) oGui.addDir(SITE_IDENTIFIER, ANCIENNE_SERIE[1], 'Ancienne series (Derniers)', 'series.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showMenuMangas(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', ANIM_VFS[0]) oGui.addDir(SITE_IDENTIFIER, ANIM_VFS[1], 'Animes (VF)', 'vf.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', ANIM_VF_720[0]) oGui.addDir(SITE_IDENTIFIER, ANIM_VF_720[1], 'Animes 720p (VF)', 'vf.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', ANIM_VF_1080[0]) oGui.addDir(SITE_IDENTIFIER, ANIM_VF_1080[1], 'Animes 1080p (VF)', 'vf.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', ANIM_VOSTFRS[0]) oGui.addDir(SITE_IDENTIFIER, ANIM_VOSTFRS[1], 'Animes (VOSTFR)', 'vostfr.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', ANIM_VOSTFRS_720[0]) oGui.addDir(SITE_IDENTIFIER, ANIM_VOSTFRS_720[1], 'Animes 720p (VOSTFR)', 'vostfr.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', ANIM_VOSTFRS_1080[0]) oGui.addDir(SITE_IDENTIFIER, ANIM_VOSTFRS_1080[1], 'Animes 1080p (VOSTFR)', 'vostfr.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', FILM_ANIM[0]) oGui.addDir(SITE_IDENTIFIER, FILM_ANIM[1], 'Films d\'animes ', 'animes.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', ANIM_VOSTEN[0]) oGui.addDir(SITE_IDENTIFIER, ANIM_VOSTEN[1], 'Animes (VOSTEN)', 'series.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showMenuAutres(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', DOC_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, DOC_NEWS[1], 'Documentaires', 'doc.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', TV_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, TV_NEWS[1], 'Emissions TV', 'tv.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SPECT_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, SPECT_NEWS[1], 'Spectacles', 'star.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showSearch(): oGui = cGui() sSearchText = oGui.showKeyBoard() if (sSearchText != False): sSearchText = Quote(sSearchText) sUrl = URL_SEARCH[0] + sSearchText + '¬e=0&art=0&AiffchageMode=0&inputTirePar=0&cstart=0' showMovies(sUrl) oGui.setEndOfDirectory() return def showGenre(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() UrlGenre = oInputParameterHandler.getValue('siteUrl') liste = [] liste.append(['Action', 'Action']) liste.append(['Animation', 'Animation']) liste.append(['Arts Martiaux', 'martiaux']) liste.append(['Aventure', 'Aventure']) liste.append(['Biopic', 'Biopic']) liste.append(['Comédie Dramatique', 'Dramatique']) liste.append(['Comédie Musicale', 'Musical']) liste.append(['Comédie', 'Comedie']) liste.append(['Divers', 'Divers']) liste.append(['Documentaires', 'Documentaire']) liste.append(['Drame', 'Drame']) liste.append(['Epouvante Horreur', 'Epouvante']) liste.append(['Espionnage', 'Espionnage']) liste.append(['Famille', 'Famille']) liste.append(['Fantastique', 'Fantastique']) liste.append(['Guerre', 'Guerre']) liste.append(['Historique', 'Historique']) liste.append(['Musical', 'musicale']) liste.append(['Péplum', 'Peplum']) liste.append(['Policier', 'Policier']) liste.append(['Romance', 'Romance']) liste.append(['Science Fiction', 'Science']) liste.append(['Thriller', 'Thriller']) liste.append(['Western', 'Western']) for sTitle, sUrl in liste: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', UrlGenre.format(sUrl)) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle, 'genres.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showMovies(sSearch=''): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') if sSearch: sUrl = sSearch sHtmlContent = Stormwall().GetHtml(sUrl) sPattern = '([^"]+).+?.+?">([^<]+)' 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 sThumb = aEntry[0] sUrl2 = aEntry[1] sTitle = aEntry[2] sQual = aEntry[3] sLang = aEntry[4] # on vire le tiret des series sTitle = sTitle.replace(' - Saison', ' Saison').replace('COMPLETE', 'Complete') if not '[Complete]' in sTitle: sTitle = sTitle.replace('COMPLETE', '[Complete]') # nettoyage du titre sTitle = sTitle.replace('Complete', 'Complète') sTitle = re.sub('\[\w+]', '', sTitle) try: sTitle = str(sTitle.encode('latin-1'), encoding="utf-8") except: pass # Enlever les films en doublons (même titre et même pochette) # il s'agit du même film dans une autre qualité qu'on retrouvera au moment du choix de la qualité key = sTitle + "-" + sThumb if key in titles: continue titles.add(key) sDisplayTitle = ('%s [%s] %s') % (sTitle, sQual, sLang) if not sThumb.startswith('https'): sThumb = URL_MAIN + sThumb if not sUrl2.startswith('https'): sUrl2 = URL_MAIN + sUrl2 oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sDisplayTitle', sDisplayTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) if 'anime' in sUrl or 'anime' in sUrl2: oGui.addAnime(SITE_IDENTIFIER, 'showSeriesLinks', sTitle, '', sThumb, '', oOutputParameterHandler) elif 'serie' in sUrl or 'serie' in sUrl2: oGui.addTV(SITE_IDENTIFIER, 'showSeriesLinks', sTitle, '', sThumb, '', oOutputParameterHandler) elif DOC_NEWS[0] in sUrl or TV_NEWS[0] in sUrl or SPECT_NEWS[0] in sUrl or CONCERT_NEWS[0] in sUrl : oGui.addMisc(SITE_IDENTIFIER, 'showSeriesLinks', sTitle, '', sThumb, '', oOutputParameterHandler) elif 'collection' in sUrl or 'integrale' in sUrl: oGui.addMoviePack(SITE_IDENTIFIER, 'showMoviesLinks', sDisplayTitle, '', sThumb, '', oOutputParameterHandler) elif ' Saison ' in sTitle: oGui.addTV(SITE_IDENTIFIER, 'showSeriesLinks', sTitle, '', sThumb, '', oOutputParameterHandler) else: oGui.addMovie(SITE_IDENTIFIER, 'showMoviesLinks', sTitle, '', sThumb, '', oOutputParameterHandler) progress_.VSclose(progress_) if 'controller.php' in sUrl: sPattern = 'Suivant' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', re.sub('cstart=(\d+)', 'cstart=' + str(aResult[1][0]), sUrl)) 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 not sSearch: oGui.setEndOfDirectory() def __checkForNextPage(sHtmlContent): oParser = cParser() sPattern = 'href="([^"]+)">Suivant' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): nextPage = aResult[1][0] if not nextPage.startswith('https'): nextPage = URL_MAIN + nextPage return nextPage return False def showMoviesLinks(): # VSlog('mode film') oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sDisplayTitle = oInputParameterHandler.getValue('sDisplayTitle') if not sDisplayTitle: # Si on arrive par un marque-page sDisplayTitle = sMovieTitle sThumb = oInputParameterHandler.getValue('sThumb') sUrl = oInputParameterHandler.getValue('siteUrl') sHtmlContent = Stormwall().GetHtml(sUrl) if "zt-protect" in sUrl: #Dl Protect present aussi a cette étape. oParser = cParser() sPattern = '