diff --git a/channels.json b/channels.json index ca9420fb..d52e8079 100644 --- a/channels.json +++ b/channels.json @@ -48,6 +48,7 @@ "vvvvid": "https://www.vvvvid.it" }, "findhost": { + "altadefinizione":"https://altadefinizione.nuovo.live", "altadefinizionecommunity": "https://altaregistrazione.net", "animealtadefinizione": "https://www.animealtadefinizione.it", "filmpertutti": "https://filmpertuttiii.nuovo.live" diff --git a/channels/altadefinizione.json b/channels/altadefinizione.json new file mode 100644 index 00000000..8579ab00 --- /dev/null +++ b/channels/altadefinizione.json @@ -0,0 +1,10 @@ +{ + "id": "altadefinizione", + "name": "Altadefinizione", + "language": ["ita", "sub-ita"], + "active": true, + "thumbnail": "altadefinizione.png", + "banner": "altadefinizione.png", + "categories": ["movie", "tvshow", "vos"], + "settings": [] +} diff --git a/channels/altadefinizione.py b/channels/altadefinizione.py new file mode 100644 index 00000000..1f8d8652 --- /dev/null +++ b/channels/altadefinizione.py @@ -0,0 +1,87 @@ +# -*- coding: utf-8 -*- +# ------------------------------------------------------------ +# Canale per altadefinizione +# ------------------------------------------------------------ + + +from core import httptools, support +from platformcode import config, logger + + +def findhost(url): + host = support.match(url, patron=r']+>(?P[^<]+)' + return locals() + + +def search(item, text): + logger.debug(text) + item.url = "{}/?s={}".format(host, text) + + try: + return peliculas(item) + + except: + import sys + for line in sys.exc_info(): + logger.error("search except: %s" % line) + return [] + + +@support.scrape +def peliculas(item): + item.contentType = "undefined" + action = 'check' + patron = r'src="(?P<thumb>http[^"]+)(?:[^>]+>){6,12}\s*<a href="(?P<url>[^"]+)[^>]+>\s*(?P<title>[^\[\(\<]+)(?:\[(?P<quality>[^\]]+)\])?\s*(?:\((?P<lang>[a-zA-z-]+)\))?\s*(?:\((?P<year>\d+)\))?\s*</a>\s*</h2>' + patronNext = r'href="([^"]+)[^>]+>ยป' + return locals() + + +@support.scrape +def episodios(item): + item.quality = '' + data = item.data + action='findvideos' + patronBlock = r'Stagione[^;]+;\s(?P<lang>(?:Sub-)?ITA)(?: in )?(?P<quality>[^<]*)?(?:[^>]+>){4}(?P<block>.*?)/p>' + patron = r'(?P<season>\d+)&[^:]+;(?P<episode>\d+)(?P<data>.*?)(?:<br|$)' + return locals() + + +def check(item): + item.data = httptools.downloadpage(item.url).data + if 'rel="tag">Serie TV' in item.data: + return episodios(item) + else: + return findvideos(item) + + +def findvideos(item): + logger.debug() + if item.contentType == 'movie': + item.data = support.match(item.data, patron=r'data-id="([^"]+)').matches + return support.server(item, item.data)