# -*- coding: utf-8 -*- # vStream https://github.com/Kodi-vStream/venom-xbmc-addons from resources.lib.gui.hoster import cHosterGui from resources.lib.gui.gui import cGui from resources.lib.handler.inputParameterHandler import cInputParameterHandler from resources.lib.handler.outputParameterHandler import cOutputParameterHandler from resources.lib.handler.requestHandler import cRequestHandler from resources.lib.comaddon import progress from resources.lib.parser import cParser from resources.lib.packer import cPacker from resources.lib.util import cUtil import re SITE_IDENTIFIER = 'zustream' SITE_NAME = 'ZuStream' SITE_DESC = 'Retrouvez un énorme répertoire de films, de séries et de mangas en streaming VF et VOSTFR complets' URL_MAIN = 'https://www.zustream.eu/' MOVIE_MOVIE = (True, 'showMenuFilms') MOVIE_NEWS = (URL_MAIN + 'film/', 'showMovies') MOVIE_GENRES = ('?post_types=movies', 'showGenres') MOVIE_ANNEES = (True, 'showYears') SERIE_SERIES = (True, 'showMenuSeries') SERIE_NEWS = (URL_MAIN + 'serie/', 'showMovies') SERIE_GENRES = ('?post_types=tvshows', 'showGenres') SERIE_MANGAS = (URL_MAIN + 'genre/mangas/', 'showMovies') SERIE_NETFLIX = (URL_MAIN + 'network/netflix/', 'showMovies') SERIE_CANAL = (URL_MAIN + 'network/canal/', 'showMovies') SERIE_AMAZON = (URL_MAIN + 'network/amazon/', 'showMovies') SERIE_DISNEY = (URL_MAIN + 'network/disney/', 'showMovies') SERIE_APPLE = (URL_MAIN + 'network/apple-tv/', 'showMovies') SERIE_YOUTUBE = (URL_MAIN + 'network/youtube-premium/', 'showMovies') SERIE_ANNEES = (True, 'showYearsSeries') URL_SEARCH = (URL_MAIN + '?s=', 'showMovies') URL_SEARCH_MOVIES = (URL_MAIN + '?post_types=movies&s=', 'showMovies') URL_SEARCH_SERIES = (URL_MAIN + '?post_types=tvshows&s=', 'showMovies') FUNCTION_SEARCH = 'showMovies' def load(): oGui = cGui() 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) oGui.setEndOfDirectory() def showMenuFilms(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_SEARCH_MOVIES[0]) oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche films', 'search.png', oOutputParameterHandler) 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_GENRES[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_GENRES[1], 'Films (Genres)', 'genres.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_ANNEES[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_ANNEES[1], 'Films (Par années)', 'annees.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showMenuSeries(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_SEARCH_SERIES[0]) oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche séries', 'search.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_NEWS[1], 'Séries (Derniers ajouts)', 'news.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_GENRES[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_GENRES[1], 'Séries (Genres)', 'genres.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_MAIN) oGui.addDir(SITE_IDENTIFIER, 'showNetwork', 'Séries (Par diffuseurs)', 'host.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_ANNEES[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_ANNEES[1], 'Séries (Par années)', 'annees.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_MANGAS[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_MANGAS[1], 'Séries (Mangas)', 'animes.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showGenres(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') liste = [] liste.append(['Action', URL_MAIN + 'genre/action/' + sUrl]) liste.append(['Animation', URL_MAIN + 'genre/animation/' + sUrl]) liste.append(['Aventure', URL_MAIN + 'genre/aventure/' + sUrl]) liste.append(['Biopic', URL_MAIN + 'genre/biographie/' + sUrl]) liste.append(['Comédie', URL_MAIN + 'genre/comedie/' + sUrl]) liste.append(['Comédie musicale', URL_MAIN + 'genre/musique/' + sUrl]) liste.append(['Comédie romantique', URL_MAIN + 'genre/romance/' + sUrl]) liste.append(['Documentaire', URL_MAIN + 'genre/documentaire/' + sUrl]) liste.append(['Drame', URL_MAIN + 'genre/drame/' + sUrl]) liste.append(['Guerre', URL_MAIN + 'genre/guerre/' + sUrl]) liste.append(['Famille', URL_MAIN + 'genre/familial/' + sUrl]) liste.append(['Fantastique', URL_MAIN + 'genre/fantastique/' + sUrl]) liste.append(['Horreur', URL_MAIN + 'genre/horreur/' + sUrl]) liste.append(['Historique', URL_MAIN + 'genre/histoire/' + sUrl]) liste.append(['Mystere', URL_MAIN + 'genre/mystere/' + sUrl]) liste.append(['Noël', URL_MAIN + 'genre/noel/' + sUrl]) liste.append(['Science Fiction', URL_MAIN + 'genre/science-fiction/' + sUrl]) liste.append(['Thriller', URL_MAIN + 'genre/thriller/' + sUrl]) liste.append(['Western', URL_MAIN + 'genre/western/' + sUrl]) for sTitle, sUrl in liste: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle, 'genres.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showNetwork(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_NETFLIX[0]) oOutputParameterHandler.addParameter('sTmdbId', 213) # Utilisé par TMDB oGui.addNetwork(SITE_IDENTIFIER, SERIE_NETFLIX[1], 'Séries (Netflix)', 'host.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_CANAL[0]) oOutputParameterHandler.addParameter('sTmdbId', 285) # Utilisé par TMDB oGui.addNetwork(SITE_IDENTIFIER, SERIE_CANAL[1], 'Séries (Canal+)', 'host.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_AMAZON[0]) oOutputParameterHandler.addParameter('sTmdbId', 1024) # Utilisé par TMDB oGui.addNetwork(SITE_IDENTIFIER, SERIE_AMAZON[1], 'Séries (Amazon Prime)', 'host.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_DISNEY[0]) oOutputParameterHandler.addParameter('sTmdbId', 2739) # Utilisé par TMDB oGui.addNetwork(SITE_IDENTIFIER, SERIE_DISNEY[1], 'Séries (Disney+)', 'host.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_APPLE[0]) oOutputParameterHandler.addParameter('sTmdbId', 2552) # Utilisé par TMDB oGui.addNetwork(SITE_IDENTIFIER, SERIE_APPLE[1], 'Séries (Apple TV+)', 'host.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_YOUTUBE[0]) oOutputParameterHandler.addParameter('sTmdbId', 1436) # Utilisé par TMDB oGui.addNetwork(SITE_IDENTIFIER, SERIE_YOUTUBE[1], 'Séries (YouTube Originals)', 'host.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showYears(): oGui = cGui() for i in reversed(range(1995, 2021)): Year = str(i) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_MAIN + 'sortie/' + Year + '/?post_types=movies') oGui.addDir(SITE_IDENTIFIER, 'showMovies', Year, 'annees.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showYearsSeries(): oGui = cGui() for i in reversed(range(1997, 2021)): Year = str(i) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_MAIN + 'sortie/' + Year + '/?post_types=tvshows') oGui.addDir(SITE_IDENTIFIER, 'showMovies', Year, 'annees.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showSearch(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sSearchText = oGui.showKeyBoard() if (sSearchText != False): sUrl = sUrl + sSearchText showMovies(sUrl) oGui.setEndOfDirectory() return def showMovies(sSearch=''): oGui = cGui() if sSearch: sUrl = sSearch.replace(' ', '+') sPattern = '