diff --git a/channels.json b/channels.json index fbbba24f..cce0f9a9 100644 --- a/channels.json +++ b/channels.json @@ -1,55 +1,55 @@ { - "altadefinizione01": "https://www.altadefinizione01.cc", - "altadefinizione01_club": "https://www.altadefinizione01.cc", - "altadefinizione01_link": "http://altadefinizione01.gift", - "altadefinizioneclick": "https://altadefinizione.cloud", - "altadefinizionehd": "https://altadefinizione.wtf", - "animeforce": "https://ww1.animeforce.org", - "animeleggendari": "https://animepertutti.com", - "animespace": "http://www.animespace.tv", - "animestream": "https://www.animeworld.it", - "animesubita": "http://www.animesubita.org", - "animetubeita": "http://www.animetubeita.com", - "animeworld": "https://www.animeworld.tv", - "casacinema": "https://www.casacinema.uno", - "casacinemainfo": "https://www.casacinema.info", - "cb01anime": "https://www.cineblog01.ink", - "cinemalibero": "https://www.cinemalibero.best", - "documentaristreamingda": "https://documentari-streaming-da.com", - "dreamsub": "https://www.dreamsub.stream", - "eurostreaming": "https://eurostreaming.pink", - "fastsubita": "http://fastsubita.com", - "filmgratis": "https://www.filmaltadefinizione.net", - "filmigratis": "https://filmigratis.org", - "filmpertutti": "https://www.filmpertutti.link", - "filmsenzalimiti": "https://filmsenzalimiti.best", - "filmsenzalimiticc": "https://www.filmsenzalimiti.press", - "filmstreaming01": "https://filmstreaming01.com", - "filmstreamingita": "http://filmstreamingita.live", - "guardafilm": "http://www.guardafilm.top", - "guardarefilm": "https://www.guardarefilm.red", - "guardaserie_stream": "https://guardaserie.co", - "guardaseriecc": "https://guardaserie.site", - "guardaserieclick": "https://www.guardaserie.media", - "guardogratis": "https://guardogratis.net", - "ilgeniodellostreaming": "https://ilgeniodellostreaming.se", - "italiafilm": "https://www.italia-film.pw", - "italiafilmhd": "https://italiafilm.info", - "italiaserie": "https://italiaserie.org", - "itastreaming": "https://itastreaming.film", - "mondolunatico": "http://mondolunatico.org", - "mondolunatico2": "https://mondolunatico.org:443/stream", - "mondoserietv": "https://mondoserietv.com", - "piratestreaming": "https://www.piratestreaming.media", - "polpotv": "https://polpo.tv", - "seriehd": "https://www.seriehd.moda", - "serietvonline": "https://serietvonline.best", - "serietvsubita": "http://serietvsubita.xyz", - "serietvu": "https://www.serietvu.club", - "streamingaltadefinizione": "https://www.popcornstream.best", - "streamtime": "https://t.me/s/StreamTime", - "tantifilm": "https://www.tantifilm.eu", - "toonitalia": "https://toonitalia.org", - "vedohd": "https://vedohd.video", + "altadefinizione01": "https://www.altadefinizione01.cc", + "altadefinizione01_club": "https://www.altadefinizione01.cc", + "altadefinizione01_link": "http://altadefinizione01.gift", + "altadefinizioneclick": "https://altadefinizione.cloud", + "altadefinizionehd": "https://altadefinizione.wtf", + "animeforce": "https://ww1.animeforce.org", + "animeleggendari": "https://animepertutti.com", + "animespace": "http://www.animespace.tv", + "animestream": "https://www.animeworld.it", + "animesubita": "http://www.animesubita.org", + "animetubeita": "http://www.animetubeita.com", + "animeworld": "https://www.animeworld.tv", + "casacinema": "https://www.casacinema.uno", + "casacinemainfo": "https://www.casacinema.info", + "cb01anime": "https://www.cineblog01.ink", + "cinemalibero": "https://www.cinemalibero.best", + "documentaristreamingda": "https://documentari-streaming-da.com", + "dreamsub": "https://www.dreamsub.stream", + "eurostreaming": "https://eurostreaming.pink", + "fastsubita": "http://fastsubita.com", + "filmgratis": "https://www.filmaltadefinizione.net", + "filmigratis": "https://filmigratis.org", + "filmpertutti": "https://www.filmpertutti.link", + "filmsenzalimiti": "https://filmsenzalimiti.best", + "filmsenzalimiticc": "https://www.filmsenzalimiti.press", + "filmstreaming01": "https://filmstreaming01.com", + "filmstreamingita": "http://filmstreamingita.live", + "guardafilm": "http://www.guardafilm.top", + "guardarefilm": "https://www.guardarefilm.red", + "guardaserie_stream": "https://guardaserie.co", + "guardaseriecc": "https://guardaserie.site", + "guardaserieclick": "https://www.guardaserie.media", + "guardogratis": "https://guardogratis.net", + "ilgeniodellostreaming": "https://igds.red", + "italiafilm": "https://www.italia-film.pw", + "italiafilmhd": "https://italiafilm.info", + "italiaserie": "https://italiaserie.org", + "itastreaming": "https://itastreaming.film", + "mondolunatico": "http://mondolunatico.org", + "mondolunatico2": "https://mondolunatico.org:443/stream", + "mondoserietv": "https://mondoserietv.com", + "piratestreaming": "https://www.piratestreaming.media", + "polpotv": "https://polpo.tv", + "seriehd": "https://www.seriehd.moda", + "serietvonline": "https://serietvonline.best", + "serietvsubita": "http://serietvsubita.xyz", + "serietvu": "https://www.serietvu.club", + "streamingaltadefinizione": "https://www.popcornstream.best", + "streamtime": "https://t.me/s/StreamTime", + "tantifilm": "https://www.tantifilm.eu", + "toonitalia": "https://toonitalia.org", + "vedohd": "https://vedohd.video", "vvvvid": "https://www.vvvvid.it" } diff --git a/channels/guardaserieclick.json b/channels/guardaserieclick.json index f5d77367..1729826d 100644 --- a/channels/guardaserieclick.json +++ b/channels/guardaserieclick.json @@ -7,5 +7,23 @@ "thumbnail": "guardaserieclick.png", "bannermenu": "guardaserieclick.png", "categories": ["tvshow", "anime"], - "settings": [] + "not_active": ["include_in_newest_peliculas", "include_in_newest_anime"], + "settings": [ + { + "id": "include_in_newest_peliculas", + "type": "bool", + "label": "@70727", + "default": false, + "enabled": false, + "visible": false + }, + { + "id": "include_in_newest_anime", + "type": "bool", + "label": "@70727", + "default": false, + "enabled": false, + "visible": false + } + ] } diff --git a/channels/guardaserieclick.py b/channels/guardaserieclick.py index 4b54ab12..a9cdbe1c 100644 --- a/channels/guardaserieclick.py +++ b/channels/guardaserieclick.py @@ -1,24 +1,22 @@ # -*- coding: utf-8 -*- # ------------------------------------------------------------ -# Canale per Guardaserie.click +# Canale per guardaserieclick # ------------------------------------------------------------ """ - Problemi noti che non superano il test del canale: - NESSUNO (update 13-9-2019) Avvisi per il test: - La voce "Serie TV" mostra per ogni pagina 24 titoli - - - Problemi noti: - - nella pagina categorie appaiono i risultati di tmdb in alcune voci + - Le voci del menu le trovi in "lista serie" del sito, e Generi = Sfoglia + - SE capita che entrando in una voce trovi "nessun elemento" torna indietro e rientra nella voce. + - Tutte le voci, tranne: Anime/Cartoni, mostrano per ogni pagina, al max 25 titoli + Presente in NOVITà: + - Serietv """ -from core import scrapertoolsV2, httptools, support +from core import support from core.item import Item -from platformcode import logger, config +from platformcode import config from core.support import log __channel__ = 'guardaserieclick' @@ -30,94 +28,145 @@ list_quality = ['default'] @support.menu def mainlist(item): + tvshow = ['/lista-serie-tv', - ('Ultimi Aggiornamenti', ['/lista-serie-tv', 'peliculas', 'new']), - ('Categorie', ['categorie', 'categorie']), - ('Serie inedite Sub-ITA', ['/lista-serie-tv', 'peliculas', 'ined']), - ('Da non perdere', ['/lista-serie-tv', 'peliculas', ['tv', 'da non perdere']]), - ('Classiche', ["/lista-serie-tv", 'peliculas', ['tv', 'classiche']]), - ('Anime', ["/category/animazione/", 'tvserie', 'tvshow','anime']) + ('Aggiornamenti', ['/lista-serie-tv', 'peliculas', 'update']), + ('Generi', ['/categorie', 'genres', 'genres']), + ('News Sub-ITA', ['/lista-serie-tv', 'peliculas', 'ined']), + ('Da non perdere', ['/lista-serie-tv', 'peliculas', 'nolost']), + ('Classiche', ["/lista-serie-tv", 'peliculas', 'classic']), + ('Anime/Cartoni', ["/category/animazione/", 'peliculas', 'genres']) ] return locals() +##@support.scrape +##def peliculas(item): +#### import web_pdb; web_pdb.set_trace() +## log('peliculas ->\n', item) +## +## action = 'episodios' +## block = r'(?P.*?)' +## +## if item.args == 'ined': +## deflang = 'SUB-ITA' +## patronBlock = r''+block +## patron = r'\s[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P\d{4})?\s.+?class="strongText">(?P.+?)<' +## pagination = 25 +## elif item.args == 'update': +## patronBlock = r'<div\s+class="container-fluid greybg title-serie-lastep title-last-ep fixed-title-wrapper containerBottomBarTitle">'+block +## patron = r'<a(?: rel="[^"]+")? href="(?P<url>[^"]+)"(?: class="[^"]+")?>[ ]<img class="[^"]+"[ ]title="[^"]+"[ ]alt="[^"]+"[ ]src="(?P<thumb>[^"]+)"[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<episode>\d+.\d+)[ ]\((?P<lang>[a-zA-Z\-]+)[^<]+<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<title>[^<]+)<' +## elif item.args == 'genres': +## patronBlock = r'<h2 style="color: white !important" class="title-typology">(?P<block>.+?)<div class="container-fluid whitebg" style="">' +## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<title>[^<]+)</p>' +## patronNext = r'rel="next" href="([^"]+)">' +## item.contentType = 'tvshow' +## elif item.args == 'nolost': +## patronBlock = r'<h2 class="title-typology styck-top" meta-class="title-serie-danonperd">'+block +## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<' +## pagination = 25 +## elif item.args == 'classic': +## patronBlock = r'<h2 class="title-typology styck-top" meta-class="title-serie-classiche">'+block +## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<' +## pagination = 25 +## else: +## patronBlock = r'<div\s+class="container container-title-serie-new container-scheda" meta-slug="new">'+block +## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<' +## pagination = 25 +## +## debug = True +## return locals() @support.scrape def peliculas(item): ## import web_pdb; web_pdb.set_trace() - log('serietv ->\n', item) - - if item.args == 'ined': - #data = httptools.downloadpage(item.url).data - log("Sono qui orco") - pagination = 24 - action = 'episodios' - - patron_block = r'<span\s+class="label label-default label-title-typology">'\ - '(?P<lang>[^<]+)</span>' - else: - pagination = 24 - action = 'episodios' - patronBlock = r'<div\s+class="container container-title-serie-new container-scheda" '\ - 'meta-slug="new">(?P<block>.*?)<div\s+class='\ - '"btn btn-lg btn-default btn-load-other-series">' - - patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>'\ - '[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<' - - - debug = True - return locals() - -@support.scrape -def tvserie(item): + log('peliculas ->\n', item) action = 'episodios' -## listGroups = ['url', 'thumb', 'title'] - patron = r'<a\shref="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)" />'\ - '[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<title>[^<]+)</p></div>' - patron_block = r'<div\sclass="col-xs-\d+ col-sm-\d+-\d+">(?P<block>.*?)'\ - '<div\sclass="container-fluid whitebg" style="">' - patronNext = r'<link\s.*?rel="next"\shref="([^"]+)"' - + blacklist = ['DMCA'] + + if item.args == 'genres' or item.args == 'search': + patronBlock = r'<h2 style="color: white !important" class="title-typology">(?P<block>.+?)<div class="container-fluid whitebg" style="">' + patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<title>[^<]+)</p>' + patronNext = r'rel="next" href="([^"]+)">' + item.contentType = 'tvshow' +## elif item.args == 'search': +## patronBlock = r'<h2 style="color:\s?white !important.?" class="title-typology">(?P<block>.*?)<div class="container-fluid whitebg" style="">' +## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<title>[^<]+)</p>' + else: + end_block = r'(?P<block>.*?)<div\s+class="btn btn-lg btn-default btn-load-other-series">' + patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<' + pagination = 25 + if item.args == 'ined': + deflang = 'SUB-ITA' + patronBlock = r'<span\s+class="label label-default label-title-typology">'+end_block +## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<' +## pagination = 25 + elif item.args == 'update': + patronBlock = r'<div\s+class="container-fluid greybg title-serie-lastep title-last-ep fixed-title-wrapper containerBottomBarTitle">'+end_block + patron = r'<a(?: rel="[^"]+")? href="(?P<url>[^"]+)"(?: class="[^"]+")?>[ ]<img class="[^"]+"[ ]title="[^"]+"[ ]alt="[^"]+"[ ](?:|meta-)?src="(?P<thumb>[^"]+)"[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?:\d+.\d+)[ ]\((?P<lang>[a-zA-Z\-]+)[^<]+<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<title>[^<]+)<' + elif item.args == 'nolost': + patronBlock = r'<h2 class="title-typology styck-top" meta-class="title-serie-danonperd">'+end_block +## pagination = 25 + elif item.args == 'classic': + patronBlock = r'<h2 class="title-typology styck-top" meta-class="title-serie-classiche">'+end_block +## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<' +## pagination = 25 +## elif item.args == 'anime': +## + else: + patronBlock = r'<div\s+class="container container-title-serie-new container-scheda" meta-slug="new">'+end_block +## patron = r'<a href="(?P<url>[^"]+)".*?>\s<img\s.*?src="(?P<thumb>[^"]+)"\s/>[^>]+>[^>]+>\s[^>]+>\s(?P<year>\d{4})?\s.+?class="strongText">(?P<title>.+?)<' +## pagination = 25 + #support.regexDbg(item, patron, headers) + #debug = True return locals() - @support.scrape def episodios(item): - log('episodios ->\n') - item.contentType = 'episode' + log() action = 'findvideos' -## listGroups = ['episode', 'lang', 'title2', 'plot', 'title', 'url'] - patron = r'class="number-episodes-on-img"> (?P<episode>\d+.\d+)'\ - '(?:|[ ]\((?P<lang>.*?)\))<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>'\ - '(?P<title2>.*?)<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>'\ - '(?P<plot>.*?)<[^>]+></div></div>.<span\s.+?meta-serie="(?P<title>.*?)"'\ - 'meta-stag=(?P<url>.*?)</span>' + patron = r'<div class="number-episodes-on-img">\s?\d+.\d+\s?(?:\((?P<lang>[a-zA-Z\-]+)\))?</div>.+?(?:<span class="pull-left bottom-year">(?P<title2>[^<]+)<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>(?P<plot>[^<]+)<[^>]+>[^>]+>[^>]+>\s?)?<span(?: meta-nextep="[^"]+")? class="[^"]+" meta-serie="(?P<title>[^"]+)" meta-stag="(?P<season>\d+)" meta-ep="(?P<episode>\d+)" meta-embed="(?P<url>[^>]+)">' + patronBlock = r'<h2 class="title-typology">Episodi (?P<stagione>\d+).{1,3}Stagione</h2>(?P<block>.*?)<div class="container">' + def itemHook(item): + item.title = item.title.replace(item.fulltitle, '').replace('-','',1) + return item + + #debug = True return locals() - -def findvideos(item): - log() - return support.server(item, item.url) - @support.scrape -def categorie(item): - action = 'tvserie' - #listGroups = ['url', 'title'] +def genres(item): + log() + + action = 'peliculas' patron = r'<li>\s<a\shref="(?P<url>[^"]+)"[^>]+>(?P<title>[^<]+)</a></li>' patron_block = r'<ul\sclass="dropdown-menu category">(?P<block>.*?)</ul>' + item.contentType = '' return locals() -# ================================================================================================================ + +def search(item, text): + log(text) + item.url = host + "/?s=" + text + item.contentType = 'tvshow' + item.args = 'search' + try: + return peliculas(item) + # Continua la ricerca in caso di errore + except: + import sys + for line in sys.exc_info(): + log("%s" % line) + return [] def newest(categoria): log() itemlist = [] item = Item() - item.contentType= 'episode' + item.contentType= 'tvshow' item.args = 'update' try: if categoria == "series": @@ -125,30 +174,19 @@ def newest(categoria): item.action = "peliculas" itemlist = peliculas(item) - if itemlist[-1].action == "peliculas": - itemlist.pop() +## if itemlist[-1].action == "peliculas": +## itemlist.pop() # Continua la ricerca in caso di errore except: import sys for line in sys.exc_info(): - logger.error("{0}".format(line)) + log("{0}".format(line)) return [] return itemlist -### ================================================================================================================ -### ---------------------------------------------------------------------------------------------------------------- -def search(item, texto): - log(texto) - item.url = host + "/?s=" + texto - item.args = 'cerca' - try: - return tvserie(item) - # Continua la ricerca in caso di errore - except: - import sys - for line in sys.exc_info(): - logger.error("%s" % line) - return [] +def findvideos(item): + log('--->', item) + return support.server(item, item.url) diff --git a/channels/ilgeniodellostreaming.json b/channels/ilgeniodellostreaming.json index 7c72e92e..ae0dca45 100644 --- a/channels/ilgeniodellostreaming.json +++ b/channels/ilgeniodellostreaming.json @@ -15,6 +15,6 @@ "default": false, "enabled": false, "visible": false - }, + } ] } diff --git a/channels/ilgeniodellostreaming.py b/channels/ilgeniodellostreaming.py index f5066cc3..820328e7 100644 --- a/channels/ilgeniodellostreaming.py +++ b/channels/ilgeniodellostreaming.py @@ -166,7 +166,7 @@ def peliculas(item): patronNext = '<span class="current">[^<]+<[^>]+><a href="([^"]+)"' - debug = True +## debug = True return locals() @@ -238,4 +238,3 @@ def findvideos(item): data += str(scrapertoolsV2.find_multiple_matches(html, '<meta name="og:url" content="([^"]+)">')) itemlist = support.server(item, data) return itemlist -