# -*- coding: utf-8 -*- # vStream https://github.com/Kodi-vStream/venom-xbmc-addons import re 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.parser import cParser from resources.lib.comaddon import progress SITE_IDENTIFIER = 'vf_space' SITE_NAME = 'VF.Space' SITE_DESC = 'Films, Séries et Mangas Gratuit en streaming' URL_MAIN = 'https://vww.vfspace.me/' FUNCTION_SEARCH = 'showMovies' URL_SEARCH = (URL_MAIN + 'index.php?do=search', FUNCTION_SEARCH) URL_SEARCH_MOVIES = (URL_SEARCH[0] + '&subaction=search&titleonly=3&catlist%5B%5D=9&story=', FUNCTION_SEARCH) URL_SEARCH_SERIES = (URL_SEARCH[0] + '&subaction=search&catlist%5B%5D=10&catlist%5B%5D=12&catlist%5B%5D=13&story=', FUNCTION_SEARCH) MOVIE_NEWS = (URL_MAIN + 'films/', 'showMovies') MOVIE_MOVIE = (URL_MAIN + 'films/', 'showMovies') MOVIE_GENRES = (True, 'showGenres') MOVIE_ANNEES = (True, 'showYears') SERIE_NEWS = (URL_MAIN + 'series/', 'showMovies') SERIE_SERIES = (URL_MAIN + 'series/', 'showMovies') def load(): 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', URL_SEARCH_SERIES[0]) oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche séries', '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) 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_SERIES[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_SERIES[1], 'Séries', 'series.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 showGenres(): oGui = cGui() liste = [] liste.append(['Action', URL_MAIN + 'xfsearch/genre/Action/']) liste.append(['Animation', URL_MAIN + 'xfsearch/genre/Animation/']) liste.append(['Aventure', URL_MAIN + 'xfsearch/genre/Aventure/']) liste.append(['Biopic', URL_MAIN + 'xfsearch/genre/Biopic/']) liste.append(['Comédie', URL_MAIN + 'xfsearch/genre/Comedie/']) liste.append(['Comédie musicale', URL_MAIN + 'xfsearch/genre/Comedie%20musicale/']) liste.append(['Comédie dramatique', URL_MAIN + 'xfsearch/genre/Comedie%20dramatique/']) liste.append(['Documentaire', URL_MAIN + 'xfsearch/genre/Documentaire/']) liste.append(['Drame', URL_MAIN + 'xfsearch/genre/Drame/']) liste.append(['Divers', URL_MAIN + 'xfsearch/genre/Divers/']) liste.append(['Horreur', URL_MAIN + 'xfsearch/genre/Epouvante-horreur/']) liste.append(['Famille', URL_MAIN + 'xfsearch/genre/Famille/']) liste.append(['Fantastique', URL_MAIN + 'xfsearch/genre/Fantastique/']) liste.append(['Guerre', URL_MAIN + 'xfsearch/genre/Guerre/']) liste.append(['Policier', URL_MAIN + 'xfsearch/genre/Policier/']) liste.append(['Romance', URL_MAIN + 'xfsearch/genre/Romance/']) liste.append(['Science Fiction', URL_MAIN + 'xfsearch/genre/Science%20fiction/']) liste.append(['Thriller', URL_MAIN + 'xfsearch/genre/Thriller/']) liste.append(['Western', URL_MAIN + 'xfsearch/genre/Western/']) for sTitle, sUrl in liste: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle, 'genres.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showYears(): oGui = cGui() for i in reversed(range(2015, 2021)): # avant 2015 hosts HS Year = str(i) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_MAIN + 'xfsearch/year/' + Year + '/') oGui.addDir(SITE_IDENTIFIER, 'showMovies', Year, 'annees.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showMovies(sSearch=''): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') nextPageSearch = oInputParameterHandler.getValue('nextPageSearch') if nextPageSearch: sSearch = sUrl if sSearch or 'do=search' in sUrl: if sSearch: sUrl = sSearch oRequest = cRequestHandler(sUrl + '&search_start=' + str(nextPageSearch)) sHtmlContent = oRequest.request() else: oRequestHandler = cRequestHandler(sUrl.replace('https', 'http')) sHtmlContent = oRequestHandler.request() # reprise du fichier html pour récupérer les films et les séries en cas d'absence d'argument sHtmlContent = re.sub('