# -*- 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 = 'o1streaming' SITE_NAME = '01 Streaming' SITE_DESC = 'Films & Séries' URL_MAIN = 'https://www.01streaming.net/' FUNCTION_SEARCH = 'showMovies' URL_SEARCH = (URL_MAIN + '?s=', 'showMovies') URL_SEARCH_MOVIES = (URL_SEARCH[0], 'showMovies') URL_SEARCH_SERIES = (URL_SEARCH[0], 'showMovies') MOVIE_NEWS = (URL_MAIN + 'films-en-streaming/', 'showMovies') SERIE_NEWS = (URL_MAIN + 'series-streaming/', 'showMovies') MOVIE_GENRES = (True, 'showMoviesGenres') SERIE_GENRES = (True, 'showSeriesGenres') MOVIE_ANNEES = (True, 'showMovieYears') def load(): oGui = cGui() oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', 'http://venom/') oGui.addDir(SITE_IDENTIFIER, 'showSearch', 'Recherche', 'search.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_NEWS[1], 'Films', 'films.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', SERIE_NEWS[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_NEWS[1], 'Séries', 'series.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', SERIE_GENRES[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_GENRES[1], 'Séries (Genres)', 'genres.png', oOutputParameterHandler) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', MOVIE_ANNEES[0]) oGui.addDir(SITE_IDENTIFIER, MOVIE_ANNEES[1], 'Films & Séries (Par années)', 'annees.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showMovieYears(): oGui = cGui() for i in reversed(range(2000, 2021)): # a revérifier pas grand chose (4-5 films par pages)32 - 90 Year = str(i) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_MAIN + 'release/' + Year) oGui.addDir(SITE_IDENTIFIER, 'showMovies', Year, 'annees.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showMoviesGenres(): showGenres('?type=movies') def showSeriesGenres(): showGenres('?type=series') def showGenres(sType): oGui = cGui() liste = [] listegenre = ['action', 'action-adventure', 'afro', 'animation', 'aventure' , 'comedie', 'crime', 'documentaire', 'drame', 'familial' , 'fantastique', 'guerre', 'histoire' , 'horreur' , 'kids', 'musique', 'mystere', 'reality', 'romance' , 'science-fiction', 'science-fiction-fantastique' , 'telefilm', 'thriller', 'vieux', 'war-politics', 'western'] url1g = URL_MAIN + 'genre/' for igenre in listegenre: liste.append([igenre.capitalize(), url1g + igenre + '/' + sType]) for sTitle, sUrl in liste: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle, 'genres.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showSearch(): oGui = cGui() sSearchText = oGui.showKeyBoard() if (sSearchText != False): sUrl = URL_SEARCH[0] + sSearchText.replace(' ', '%20') showMovies(sUrl) oGui.setEndOfDirectory() return 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 = '
(.+?)<.p><.div>' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): sDesc = aResult[1][0] sDesc = ('[I][COLOR grey]%s[/COLOR][/I] %s') % ('Synopsis : ', sDesc) sPattern = 'choose-season.+?ref="([^"]+).+?inline">([^<]+)' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): for aEntry in reversed(aResult[1]): sUrl2 = aEntry[0] saison = aEntry[1] sTitle = ("%s %s") % (sMovieTitle, ' Saison ' + saison) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl2) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle) oGui.addEpisode(SITE_IDENTIFIER, 'ShowEpisodes', sTitle, '', sThumb, sDesc, oOutputParameterHandler) oGui.setEndOfDirectory() def ShowEpisodes(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') sDesc = oInputParameterHandler.getValue('sDesc') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '