forked from axiom-team/astrXbian
443 lines
19 KiB
Python
443 lines
19 KiB
Python
# -*- 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 = '<div class="image">.+?<a href="([^"]+)".+?<img src="([^"]+)" alt="([^"]+)".+?<p>(.+?)</p>'
|
|
else:
|
|
oInputParameterHandler = cInputParameterHandler()
|
|
sUrl = oInputParameterHandler.getValue('siteUrl')
|
|
sPattern = '<article id="post-\d+".+?img src="([^"]+)" alt="([^"]+)".+?(?:|class="quality">([^<]+)<.+?)(?:|class="dtyearfr">([^<]+)<.+?)<a href="([^"]+)">.+?<div class="texto">(.*?)</div>'
|
|
|
|
oRequestHandler = cRequestHandler(sUrl)
|
|
sHtmlContent = oRequestHandler.request()
|
|
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)
|
|
utils = cUtil()
|
|
|
|
for aEntry in aResult[1]:
|
|
progress_.VSupdate(progress_, total)
|
|
if progress_.iscanceled():
|
|
break
|
|
|
|
sLang = ''
|
|
sYear = ''
|
|
sDesc = ''
|
|
if sSearch:
|
|
sUrl = aEntry[0]
|
|
sThumb = aEntry[1]
|
|
sTitle = aEntry[2]
|
|
sDesc = aEntry[3]
|
|
else:
|
|
sThumb = aEntry[0]
|
|
sTitle = aEntry[1]
|
|
if aEntry[2]:
|
|
sLang = aEntry[2]
|
|
if aEntry[3]:
|
|
sYear = aEntry[3]
|
|
sUrl = aEntry[4]
|
|
if aEntry[5]:
|
|
sDesc = aEntry[5]
|
|
|
|
try:
|
|
sDesc = unicode(sDesc, 'utf-8') # converti en unicode
|
|
sDesc = utils.unescape(sDesc).encode('utf-8') # retire les balises HTML
|
|
except:
|
|
pass
|
|
|
|
sDisplayTitle = ('%s (%s) (%s)') % (sTitle, sLang, sYear)
|
|
|
|
oOutputParameterHandler = cOutputParameterHandler()
|
|
oOutputParameterHandler.addParameter('siteUrl', sUrl)
|
|
oOutputParameterHandler.addParameter('sMovieTitle', sTitle)
|
|
oOutputParameterHandler.addParameter('sThumb', sThumb)
|
|
oOutputParameterHandler.addParameter('sDesc', sDesc)
|
|
|
|
if '/serie' in sUrl:
|
|
oGui.addTV(SITE_IDENTIFIER, 'showSxE', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler)
|
|
else:
|
|
oGui.addMovie(SITE_IDENTIFIER, 'showLink', sDisplayTitle, '', sThumb, sDesc, oOutputParameterHandler)
|
|
|
|
progress_.VSclose(progress_)
|
|
|
|
if not sSearch:
|
|
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)
|
|
|
|
oGui.setEndOfDirectory()
|
|
|
|
|
|
def __checkForNextPage(sHtmlContent):
|
|
oParser = cParser()
|
|
sPattern = '<link rel="next" href="([^"]+)"'
|
|
aResult = oParser.parse(sHtmlContent, sPattern)
|
|
if (aResult[0] == True):
|
|
return aResult[1][0]
|
|
|
|
return False
|
|
|
|
|
|
def showSxE():
|
|
oGui = cGui()
|
|
oInputParameterHandler = cInputParameterHandler()
|
|
sUrl = oInputParameterHandler.getValue('siteUrl')
|
|
sThumb = oInputParameterHandler.getValue('sThumb')
|
|
sMovieTitle = oInputParameterHandler.getValue('sMovieTitle')
|
|
sDesc = oInputParameterHandler.getValue('sDesc')
|
|
|
|
oRequestHandler = cRequestHandler(sUrl)
|
|
sHtmlContent = oRequestHandler.request()
|
|
sPattern = "<span class='title'>(.+?)<i>|class='numerando'>(.+?)</div><div class='episodiotitle'><a href='([^']+)'"
|
|
oParser = cParser()
|
|
aResult = oParser.parse(sHtmlContent, sPattern)
|
|
|
|
if (aResult[0] == True):
|
|
|
|
for aEntry in aResult[1]:
|
|
if aEntry[0]:
|
|
oGui.addText(SITE_IDENTIFIER, '[COLOR crimson]' + aEntry[0] + '[/COLOR]')
|
|
|
|
else:
|
|
sUrl = aEntry[2]
|
|
SxE = re.sub('(\d+) - (\d+)', 'saison \g<1> Episode \g<2>', aEntry[1])
|
|
sTitle = sMovieTitle + ' ' + SxE
|
|
|
|
sDisplaytitle = sMovieTitle + ' ' + re.sub('saison \d+ ', '', SxE)
|
|
|
|
oOutputParameterHandler = cOutputParameterHandler()
|
|
oOutputParameterHandler.addParameter('siteUrl', sUrl)
|
|
oOutputParameterHandler.addParameter('sMovieTitle', sTitle)
|
|
oOutputParameterHandler.addParameter('sThumb', sThumb)
|
|
oOutputParameterHandler.addParameter('sDesc', sDesc)
|
|
oGui.addEpisode(SITE_IDENTIFIER, 'showLink', sDisplaytitle, '', sThumb, sDesc, oOutputParameterHandler)
|
|
|
|
oGui.setEndOfDirectory()
|
|
|
|
|
|
def showLink():
|
|
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()
|
|
sPattern = "dooplay_player_option.+?data-post='(\d+)'.+?data-nume='(.+?)'>.+?'title'>(.+?)<"
|
|
oParser = cParser()
|
|
aResult = oParser.parse(sHtmlContent, sPattern)
|
|
|
|
if (aResult[0] == True):
|
|
|
|
# trie par numéro de serveur
|
|
sortedList = sorted(aResult[1], key=lambda item: item[2])
|
|
for aEntry in sortedList:
|
|
|
|
sUrl2 = URL_MAIN + 'wp-admin/admin-ajax.php'
|
|
dtype = 'movie' # fonctionne pour Film ou Série (pour info : série -> dtype = 'tv')
|
|
dpost = aEntry[0]
|
|
dnum = aEntry[1]
|
|
pdata = 'action=doo_player_ajax&post=' + dpost + '&nume=' + dnum + '&type=' + dtype
|
|
sTitle = aEntry[2].replace('Serveur', '').replace('Télécharger', '').replace('(', '').replace(')', '')
|
|
|
|
if ('VIP - ' in sTitle): # Les liens VIP ne fonctionnent pas
|
|
continue
|
|
|
|
sTitle = ('%s [%s]') % (sMovieTitle, sTitle)
|
|
|
|
oOutputParameterHandler = cOutputParameterHandler()
|
|
oOutputParameterHandler.addParameter('siteUrl', sUrl2)
|
|
oOutputParameterHandler.addParameter('referer', sUrl)
|
|
oOutputParameterHandler.addParameter('sMovieTitle', sMovieTitle)
|
|
oOutputParameterHandler.addParameter('sThumb', sThumb)
|
|
oOutputParameterHandler.addParameter('pdata', pdata)
|
|
oGui.addLink(SITE_IDENTIFIER, 'showHosters', sTitle, sThumb, sDesc, oOutputParameterHandler)
|
|
|
|
oGui.setEndOfDirectory()
|
|
|
|
|
|
def showHosters():
|
|
oGui = cGui()
|
|
oInputParameterHandler = cInputParameterHandler()
|
|
sUrl = oInputParameterHandler.getValue('siteUrl')
|
|
sMovieTitle = oInputParameterHandler.getValue('sMovieTitle')
|
|
sThumb = oInputParameterHandler.getValue('sThumb')
|
|
referer = oInputParameterHandler.getValue('referer')
|
|
pdata = oInputParameterHandler.getValue('pdata')
|
|
|
|
oRequest = cRequestHandler(sUrl)
|
|
oRequest.setRequestType(1)
|
|
oRequest.addHeaderEntry('User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:70.0) Gecko/20100101 Firefox/70.0')
|
|
oRequest.addHeaderEntry('Referer', referer)
|
|
oRequest.addHeaderEntry('Accept', '*/*')
|
|
oRequest.addHeaderEntry('Accept-Language', 'fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3')
|
|
oRequest.addHeaderEntry('Content-Type', 'application/x-www-form-urlencoded')
|
|
oRequest.addParametersLine(pdata)
|
|
|
|
sHtmlContent = oRequest.request()
|
|
oParser = cParser()
|
|
|
|
# 1
|
|
sPattern = '(?:<iframe|<IFRAME).+?(?:src|SRC)=(?:\'|")(.+?)(?:\'|")'
|
|
aResult1 = re.findall(sPattern, sHtmlContent)
|
|
# VSlog(aResult1)
|
|
|
|
# 2
|
|
sPattern = '<a href="([^"]+)">'
|
|
aResult2 = re.findall(sPattern, sHtmlContent)
|
|
# VSlog(aResult2)
|
|
|
|
# fusion
|
|
aResult = aResult1 + aResult2
|
|
|
|
if (aResult):
|
|
for aEntry in aResult:
|
|
|
|
sHosterUrl = aEntry
|
|
if 'zustreamv2/viplayer' in sHosterUrl:
|
|
return
|
|
|
|
if 're.zu-lien.com' in sHosterUrl:
|
|
UA = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:56.0) Gecko/20100101 Firefox/56.0'
|
|
oRequestHandler = cRequestHandler(sHosterUrl)
|
|
oRequestHandler.addHeaderEntry('User-Agent', UA)
|
|
oRequestHandler.addHeaderEntry('Referer', 'https://re.zu-lien.com')
|
|
sHtmlContent2 = oRequestHandler.request()
|
|
sHosterUrl = oRequestHandler.getRealUrl()
|
|
|
|
oHoster = cHosterGui().checkHoster(sHosterUrl)
|
|
if (oHoster != False):
|
|
oHoster.setDisplayName(sMovieTitle)
|
|
oHoster.setFileName(sMovieTitle)
|
|
cHosterGui().showHoster(oGui, oHoster, sHosterUrl, sThumb)
|
|
|
|
oGui.setEndOfDirectory()
|