# -*- 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 = 'streaming_planet' SITE_NAME = 'Streaming-planet' SITE_DESC = 'Film streaming vf - streaming complet' URL_MAIN = 'https://streaming-planet.ws/' MOVIE_MOVIE = ('http://', 'load') MOVIE_NEWS = (URL_MAIN + 'index.php?do=lastnews', 'showMovies') MOVIE_GENRES = (True, 'showGenres') MOVIE_ANNEES = (True, 'showYears') URL_SEARCH = (URL_MAIN + 'index.php?do=search&subaction=search&titleonly=3&story=', 'showSearch') URL_SEARCH_MOVIES = (URL_SEARCH[0], 'showMovies') FUNCTION_SEARCH = 'showMovies' def load(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_SEARCH[0]) oGui.addDir(SITE_IDENTIFIER, URL_SEARCH[1], 'Recherche', '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 showSearch(): oGui = cGui() sSearchText = oGui.showKeyBoard() if (sSearchText != False): sSearch = URL_SEARCH[0] + sSearchText.replace(' ', '+') showMovies(sSearch) oGui.setEndOfDirectory() return def showGenres(): oGui = cGui() liste = [] liste.append(['Action', URL_MAIN + 'action/']) liste.append(['Animation', URL_MAIN + 'animation/']) liste.append(['Aventure', URL_MAIN + 'aventure/']) liste.append(['Biographie', URL_MAIN + 'biographie/']) liste.append(['Comédie', URL_MAIN + 'comedie/']) liste.append(['Comédie Dramatique', URL_MAIN + 'comedie-dramatique/']) liste.append(['Crime', URL_MAIN + 'crime/']) liste.append(['Drame', URL_MAIN + 'drame/']) liste.append(['Documentaire', URL_MAIN + 'documentaire/']) liste.append(['Familial', URL_MAIN + 'familial/']) liste.append(['Fantasy', URL_MAIN + 'fantasy/']) liste.append(['Fantastique', URL_MAIN + 'fantastique/']) liste.append(['Guerre', URL_MAIN + 'guerre/']) liste.append(['Histoire', URL_MAIN + 'histoire/']) liste.append(['Horreur', URL_MAIN + 'horreur/']) liste.append(['Mélodrame', URL_MAIN + 'melodrame/']) liste.append(['Musique', URL_MAIN + 'musique/']) liste.append(['Mystère', URL_MAIN + 'mystery/']) liste.append(['Romance', URL_MAIN + 'romance/']) liste.append(['Science-fiction', URL_MAIN + 'science-fiction/']) liste.append(['Sports', URL_MAIN + 'sports/']) liste.append(['Thriller', URL_MAIN + 'thriller/']) liste.append(['Western', URL_MAIN + '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(2017, 2021)): Year = str(i) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_MAIN + 'nouveau-' + Year + '/') oGui.addDir(SITE_IDENTIFIER, 'showMovies', Year, 'annees.png', 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 = 'movie-item">\s*\s*

([^<]*)

.+?
  • ([^<]*)<.+?">([^<]*)<.+?">([^<]*)<.+?src="([^"]+)"' 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 sUrl = aEntry[0] sTitle = aEntry[1] sQual = aEntry[2] sYear = aEntry[3] sLang = aEntry[4] sThumb = aEntry[5] if sThumb.startswith('/'): sThumb = URL_MAIN + sThumb sDisplayTitle = ('%s [%s] (%s) (%s)') % (sTitle, sQual, sLang, sYear) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oGui.addMovie(SITE_IDENTIFIER, 'showHosters', sDisplayTitle, '', 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 __checkForNextPage(sHtmlContent): sPattern = '' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): return aResult[1][0] return False def showHosters(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '