# -*- 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 = 'streamay_series' SITE_NAME = 'StreamAy Séries' SITE_DESC = 'Séries en Streaming' URL_MAIN = 'https://fr.streamay.site/' SERIE_SERIES = (URL_MAIN + 'series.html', 'showMovies') SERIE_NEWS = (URL_MAIN, 'showSeriesNews') SERIE_LIST = (True, 'AlphaList') SERIE_GENRES = (True, 'showGenres') SERIE_ANNEES = (True, 'showSerieYears') URL_SEARCH = (URL_MAIN + 'recherche?q=', 'showMovies') URL_SEARCH_SERIES = (URL_SEARCH[0], 'showMovies') FUNCTION_SEARCH = 'showMovies' 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', 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) 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', SERIE_LIST[0]) oGui.addDir(SITE_IDENTIFIER, SERIE_LIST[1], 'Series (Liste)', 'listes.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) oGui.setEndOfDirectory() def showSearch(): oGui = cGui() sSearchText = oGui.showKeyBoard() if (sSearchText != False): showMovies(URL_SEARCH[0] + sSearchText) oGui.setEndOfDirectory() return def showGenres(): oGui = cGui() liste = [] liste.append(['Action', URL_MAIN + 'series/action/']) liste.append(['Animation', URL_MAIN + 'series/animation/']) liste.append(['Aventure', URL_MAIN + 'series/aventure/']) liste.append(['Biopic', URL_MAIN + 'series/biopic/']) liste.append(['Comédie', URL_MAIN + 'series/comedie/']) liste.append(['Divers', URL_MAIN + 'series/divers/']) liste.append(['Documentaire', URL_MAIN + 'series/documentaire/']) liste.append(['Drame', URL_MAIN + 'series/drame/']) liste.append(['Epouvante-Horreur', URL_MAIN + 'series/epouvante-horreur/']) liste.append(['Famille', URL_MAIN + 'series/famille/']) liste.append(['Fantastique', URL_MAIN + 'series/fantastique/']) liste.append(['Guerre', URL_MAIN + 'series/guerre/']) liste.append(['Policier', URL_MAIN + 'series/policier/']) liste.append(['Romance', URL_MAIN + 'series/romance/']) liste.append(['Science-fiction', URL_MAIN + 'series/science-fiction/']) liste.append(['Thriller', URL_MAIN + 'series/thriller/']) for sTitle, sUrl in liste: oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oGui.addDir(SITE_IDENTIFIER, 'showMovies', sTitle, 'genres.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showSerieYears(): # for i in itertools.chain(range(5, 7), [8, 9]): afficher dans l'ordre (pense bete ne pas effacer) oGui = cGui() from itertools import chain generator = chain([1983, 1990, 1994], range(1997, 2021)) # desordre for i in reversed(list(generator)): Year = str(i) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_MAIN + 'series/annee/' + Year + '.html') oGui.addDir(SITE_IDENTIFIER, 'showMovies', Year, 'annees.png', oOutputParameterHandler) oGui.setEndOfDirectory() def AlphaList(): oGui = cGui() for i in range(0, 36): if (i < 10): sTitle = chr(48 + i) else: sTitle = chr(65 + i - 10) oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', URL_MAIN + 'series/alphabet/' + sTitle.lower()) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oGui.addDir(SITE_IDENTIFIER, 'showMovies', '[COLOR teal] Lettre [COLOR red]' + sTitle + '[/COLOR][/COLOR]', 'listes.png', oOutputParameterHandler) oGui.setEndOfDirectory() def showSeriesNews(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() sPattern = '>>[/COLOR]', oOutputParameterHandler) if not sSearch: oGui.setEndOfDirectory() def __checkForNextPage(sHtmlContent): sPattern = 'href="([^"]+)">' oParser = cParser() aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): if aResult[1][0].startswith('/'): return URL_MAIN[:-1] + aResult[1][0] else: return aResult[1][0] return False def ShowSaisons(): oGui = cGui() oParser = cParser() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() # récupération du Synopsis sDesc = '' try: sPattern = 'class="fsynopsis">

(.+?)

' aResult = oParser.parse(sHtmlContent, sPattern) if aResult[0]: sDesc = aResult[1][0] except: pass sPattern = 'class="short-images radius-3".+?href="([^"]+)".+?([^<]+)<' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == True): for aEntry in aResult[1]: sUrl = aEntry[0] sThumb = aEntry[1] if sThumb.startswith('/'): sThumb = URL_MAIN[:-1] + sThumb sTitle = sMovieTitle + ' ' + aEntry[2] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) 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 = '
\s*\s*([^<]+)<' aResult = oParser.parse(sHtmlContent, sPattern) if (aResult[0] == False): oGui.addText(SITE_IDENTIFIER) if (aResult[0] == True): for aEntry in aResult[1]: sUrl = aEntry[0] sTitle = sMovieTitle + ' ' + aEntry[1] oOutputParameterHandler = cOutputParameterHandler() oOutputParameterHandler.addParameter('siteUrl', sUrl) oOutputParameterHandler.addParameter('sMovieTitle', sTitle) oOutputParameterHandler.addParameter('sThumb', sThumb) oOutputParameterHandler.addParameter('sDesc', sDesc) oGui.addEpisode(SITE_IDENTIFIER, 'showLinks', sTitle, '', sThumb, sDesc, oOutputParameterHandler) oGui.setEndOfDirectory() def showLinks(): oGui = cGui() oInputParameterHandler = cInputParameterHandler() sUrl = oInputParameterHandler.getValue('siteUrl') sMovieTitle = oInputParameterHandler.getValue('sMovieTitle') sThumb = oInputParameterHandler.getValue('sThumb') sDesc = oInputParameterHandler.getValue('sDesc') oRequest = cRequestHandler(sUrl) sHtmlContent = oRequest.request() sHtmlContent = sHtmlContent.replace(' class="download-server"', '') sPattern = '
([^<]+)<.+?