From b37a7f4cca40de211515985414f70eb6921cc8cd Mon Sep 17 00:00:00 2001 From: Alhaziel Date: Tue, 21 Jan 2020 11:28:06 +0100 Subject: [PATCH] Fix SerieHD --- channels/seriehd.py | 103 ++++++++++++++++++++++++++------------------ 1 file changed, 62 insertions(+), 41 deletions(-) diff --git a/channels/seriehd.py b/channels/seriehd.py index 95536858..d51a4312 100644 --- a/channels/seriehd.py +++ b/channels/seriehd.py @@ -17,43 +17,14 @@ list_quality = ['1080p', '720p', '480p', '360'] @support.menu def mainlist(item): - tvshow = [('Genere', ['', 'genre']), - ('Americane', ['/serie-tv-streaming/serie-tv-americane', 'peliculas']), - ('Italiane', ['/serie-tv-streaming/serie-tv-italiane', 'peliculas']),] - return locals() - - -@support.scrape -def peliculas(item): - patron = r'

(?P.*?)</h2>\s*<img src="(?P<thumb>[^"]+)" alt="[^"]*" />\s*<A HREF="(?P<url>[^"]+)">.*?<span class="year">(?:(?P<year>[0-9]{4}))?.*?<span class="calidad">(?:(?P<quality>[A-Z]+))?.*?</span>' - patronNext=r'<span class="current">\d+</span><a rel="nofollow" class="page larger" href="([^"]+)">\d+</a>' - action='episodios' - return locals() - - -@support.scrape -def episodios(item): - data ='' - url = support.match(item, patron=r'<iframe width=".+?" height=".+?" src="([^"]+)" allowfullscreen frameborder="0">').match - seasons = support.match(url, patron=r'<a href="([^"]+)">(\d+)<', patronBlock=r'<h3>STAGIONE</h3><ul>(.*?)</ul>', headers=headers).matches - for season_url, season in seasons: - season_url = support.urlparse.urljoin(url, season_url) - episodes = support.match(season_url, patron=r'<a href="([^"]+)">(\d+)<', patronBlock=r'<h3>EPISODIO</h3><ul>(.*?)</ul>', headers=headers).matches - for episode_url, episode in episodes: - episode_url = support.urlparse.urljoin(url, episode_url) - title = season + "x" + episode.zfill(2) + ' - ' + item.fulltitle - data += title + '|' + episode_url + '\n' - patron = r'(?P<title>[^\|]+)\|(?P<url>[^\n]+)\n' - action = 'findvideos' - return locals() - - -@support.scrape -def genre(item): - patronMenu = '<a href="(?P<url>[^"]+)">(?P<title>[^<]+)</a>' - blacklist = ['Serie TV','Serie TV Americane','Serie TV Italiane','altadefinizione'] - patronBlock = '<ul class="sub-menu">(?P<block>.*)</ul>' - action = 'peliculas' + tvshow = [('Genere', ['', 'menu', 'genre']), + ('A-Z', ['', 'menu', 'a-z']), + ('In Corso', ['/category/serie-tv-streaming/serie-in-corso', 'peliculas']), + ('Complete', ['/category/serie-tv-streaming/serie-complete', 'peliculas']), + ('Americane', ['/category/serie-tv-streaming/serie-tv-americane', 'peliculas']), + ('Italiane', ['/category/serie-tv-streaming/serie-tv-italiane', 'peliculas']), + ('Ultimi Episodi', ['/aggiornamenti', 'peliculas', 'last']), + ('Evidenza', ['', 'peliculas', 'best'])] return locals() @@ -72,17 +43,18 @@ def search(item, texto): support.logger.error("%s" % line) return [] + def newest(categoria): support.log(categoria) itemlist = [] item = support.Item() + item.url = host + '/aggiornamenti' + item.args = 'last' try: if categoria == "series": - item.url = host item.contentType = 'tvshow' - itemlist = peliculas(item) - itemlist.pop() + return peliculas(item) # Continua la ricerca in caso di errore except: import sys @@ -93,6 +65,55 @@ def newest(categoria): return itemlist +@support.scrape +def peliculas(item): + if item.args == 'last': + action = 'findvideos' + patron = r'singleUpdate">[^>]+>[^>]+>\s*<img src="(?P<thumb>[^"]+)"[^>]+>[^>]+>[^>]+>\s*<h2>(?P<title>[^<]+)<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>\s*<a href="(?P<url>[^"]+)">[^>]+>[^>]+>[^>]+>\s*(?P<season>\d+)\D+(?P<episode>\d+)(?:[^\(]*\()?(?P<lang>[^\)]+)?(?:\))?' + elif item.args == 'best': + action='episodios' + patron = r'col-md-3">\s*<a href="(?P<url>[^"]+)">[^>]+>\s*<div class="infoVetrina">[^>]+>(?P<year>\d{4})[^>]+>[^>]+>(?P<title>[^<]+)<[^>]+>[^>]+>[^>]+>[^>]+>(?P<rating>[^<]+)[^>]+>[^>]+>[^>]+>[^>]+>\s*<img src="(?P<thumb>[^"]+)"' + else: + action='episodios' + patron = r'<a href="(?P<url>[^"]+)">[^>]+>\s*<div class="infoSeries">\s*<h2>(?P<title>[^<]+)<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<rating>[^<]+)?[^>]+>[^>]+>[^>]+>\s*<img src="(?P<thumb>[^"]+)"[^>]+>[^>]+>[^>]+>(?P<quality>[^<]+)<[^>]+>[^>]+>(?P<year>\d{4})' + patronNext=r'next page-numbers" href="([^"]+)"' + + return locals() + + +@support.scrape +def episodios(item): + data ='' + url = support.match(item, patron=r'<iframe id="iframeVid" width="[^"]+" height="[^"]+" src="([^"]+)" allowfullscreen').match + seasons = support.match(url, patron=r'<a href="([^"]+)">(\d+)<', patronBlock=r'<h3>STAGIONE</h3><ul>(.*?)</ul>', headers=headers).matches + for season_url, season in seasons: + season_url = support.urlparse.urljoin(url, season_url) + episodes = support.match(season_url, patron=r'<a href="([^"]+)">(\d+)<', patronBlock=r'<h3>EPISODIO</h3><ul>(.*?)</ul>', headers=headers).matches + for episode_url, episode in episodes: + episode_url = support.urlparse.urljoin(url, episode_url) + title = season + "x" + episode.zfill(2) + ' - ' + item.fulltitle + data += title + '|' + episode_url + '\n' + patron = r'(?P<title>[^\|]+)\|(?P<url>[^\n]+)\n' + action = 'findvideos' + return locals() + + +@support.scrape +def menu(item): + if item.args == 'genre': + patronMenu = r'<a href="(?P<url>[^"]+)">(?P<title>[^<]+)</a>' + else: + patronMenu = r'<a href="(?P<url>[^"]+)" class="">(?P<title>[^<]+)' + + blacklist = ['Serie TV Streaming','Serie TV Americane','Serie TV Italiane','Serie Complete','Serie in Corso','altadefinizione'] + action = 'peliculas' + return locals() + + def findvideos(item): - support.log() + support.log(item) + if item.args == 'last': + url = support.match(item, patron = r'<iframe id="iframeVid" width="[^"]+" height="[^"]+" src="([^"]+)" allowfullscreen').match + matches = support.match(url,patron=r'<a href="([^"]+)">(\d+)<', patronBlock=r'<h3>EPISODIO</h3><ul>(.*?)</ul>').matches + if matches: item.url = support.urlparse.urljoin(url, matches[-1][0]) return support.hdpass_get_servers(item)