diff --git a/channels.json b/channels.json index 964a83cf..f1e8d571 100644 --- a/channels.json +++ b/channels.json @@ -1,13 +1,13 @@ { "altadefinizione01_club": "https://www.altadefinizione01.cc", - "altadefinizione01_link": "http://altadefinizione01.link", - "altadefinizione01": "https://altadefinizione01.to", + "altadefinizione01_link": "http://altadefinizione1.link", + "altadefinizione01": "https://www.altadefinizione01.cc", "altadefinizioneclick": "https://altadefinizione.cloud", - "altadefinizionehd": "https://altadefinizione.doctor", + "altadefinizionehd": "https://altadefinizionetv.best", "animeforge": "https://ww1.animeforce.org", "animeleggendari": "https://animepertutti.com", "animestream": "https://www.animeworld.it", - "animespace": "https://animespace.tv", + "animespace": "https://www.animespace.tv", "animesubita": "http://www.animesubita.org", "animetubeita": "http://www.animetubeita.com", "animevision": "https://www.animevision.it", @@ -15,8 +15,8 @@ "asiansubita": "http://asiansubita.altervista.org", "casacinema": "https://www.casacinema.site", "casacinemainfo": "https://www.casacinema.info", - "cb01anime": "http://www.cineblog01.ink", - "cinemalibero": "https://cinemalibero.best", + "cb01anime": "https://www.cineblog01.ink", + "cinemalibero": "https://www.cinemalibero.best", "cinemastreaming": "https://cinemastreaming.icu", "documentaristreamingda": "https://documentari-streaming-da.com", "dreamsub": "https://www.dreamsub.stream", @@ -36,13 +36,13 @@ "filmstreamingita": "http://filmstreamingita.live", "guarda_serie": "https://guardaserie.site", "guardafilm": "http://www.guardafilm.top", - "guardarefilm": "https://www.guardarefilm.video", + "guardarefilm": "https://www.guardarefilm.red", "guardaseriecc": "https://guardaserie.site", "guardaserieclick": "https://www.guardaserie.media", "guardaserie_stream": "https://guardaserie.co", "guardaserieonline": "http://www.guardaserie.media", - "guardogratis": "http://guardogratis.io", - "ilgeniodellostreaming": "https://ilgeniodellostreaming.pw", + "guardogratis": "http://guardogratis.net", + "ilgeniodellostreaming": "https://ilgeniodellostreaming.se", "italiafilm": "https://www.italia-film.pw", "italiafilmhd": "https://italiafilm.info", "italiaserie": "https://italiaserie.org", @@ -52,12 +52,11 @@ "mondolunatico2": "http://mondolunatico.org/stream/", "mondoserietv": "https://mondoserietv.com", "piratestreaming": "https://www.piratestreaming.media", - "seriehd": "https://www.seriehd.pink", - "serietvonline": "https://serietvonline.xyz", + "seriehd": "https://www.seriehd.zone", + "serietvonline": "https://serietvonline.tech", "serietvsubita": "http://serietvsubita.xyz", "serietvu": "https://www.serietvu.club", - "streamingaltadefinizione": "https://www.streamingaltadefinizione.space", - "streamking": "http://streamking.cc", - "tantifilm": "https://www.tantifilm.plus", + "streamingaltadefinizione": "https://www.streamingaltadefinizione.best", + "tantifilm": "https://www.tantifilm.eu", "toonitalia": "https://toonitalia.org" } diff --git a/channels/altadefinizione01_club.json b/channels/altadefinizione01_club.json index 8c6aa266..34c36518 100644 --- a/channels/altadefinizione01_club.json +++ b/channels/altadefinizione01_club.json @@ -1,7 +1,7 @@ { "id": "altadefinizione01_club", "name": "Altadefinizione01 C", - "active": true, + "active": false, "adult": false, "language": ["ita"], "fanart": "https://www.altadefinizione01.vision/templates/Darktemplate/images/logo.png", diff --git a/channels/cinemastreaming.json b/channels/cinemastreaming.json deleted file mode 100644 index 261f294b..00000000 --- a/channels/cinemastreaming.json +++ /dev/null @@ -1,71 +0,0 @@ -{ - "id": "cinemastreaming", - "name": "Cinemastreaming", - "language": ["ita"], - "active": false, - "adult": false, - "thumbnail": "https://www.telegramitalia.it/wp-content/uploads/2018/02/IMG_20180222_214809_805.jpg", - "banner": "https://www.telegramitalia.it/wp-content/uploads/2018/02/IMG_20180222_214809_805.jpg", - "categories": ["tvshow", "movie"], - "settings": [ - { - "id": "include_in_global_search", - "type": "bool", - "label": "Includi ricerca globale", - "default": true, - "enabled": true, - "visible": true - }, - { - "id": "include_in_newest_peliculas", - "type": "bool", - "label": "Includi in Novità - Film", - "default": true, - "enabled": true, - "visible": true - }, - { - "id": "include_in_newest_series", - "type": "bool", - "label": "Includi in Novità - Serie TV", - "default": true, - "enabled": true, - "visible": true - }, - { - "id": "include_in_newest_italiano", - "type": "bool", - "label": "Includi in Novità - Italiano", - "default": true, - "enabled": true, - "visible": true - }, - - { - "id": "checklinks", - "type": "bool", - "label": "Verifica se i link esistono", - "default": false, - "enabled": true, - "visible": true - }, - { - "id": "checklinks_number", - "type": "list", - "label": "Numero de link da verificare", - "default": 1, - "enabled": true, - "visible": "eq(-1,true)", - "lvalues": [ "5", "10", "15", "20" ] - }, - { - "id": "filter_languages", - "type": "list", - "label": "Mostra link in lingua...", - "default": 0, - "enabled": true, - "visible": true, - "lvalues": ["Non filtrare","IT"] - } - ] -} \ No newline at end of file diff --git a/channels/cinemastreaming.py b/channels/cinemastreaming.py deleted file mode 100644 index 7dd2e37e..00000000 --- a/channels/cinemastreaming.py +++ /dev/null @@ -1,191 +0,0 @@ -# -*- coding: utf-8 -*- -# ------------------------------------------------------------ -# Canale per cinemastreaming -# ------------------------------------------------------------ -import re - -from core import scrapertools, httptools, scrapertoolsV2, support -from core.item import Item -from specials import autoplay -from platformcode import config - -__channel__ = "cinemastreaming" -host = config.get_channel_url(__channel__) -IDIOMAS = {'Italiano': 'IT'} -list_language = IDIOMAS.values() -list_servers = ['openload', 'streamango'] -list_quality = ['1080p', '1080p 3D', 'SD', 'CAM', 'default'] - -headers = [['Referer', host]] - - -def mainlist(item): - support.log() - - # Menu Principale - itemlist = [] - film = '/film/' - ('Per genere ', [, 'menu', ]), args="Film per Genere") - support.menu(itemlist, 'Anime bold', 'peliculas', host + '/category/anime/') - tvshow = '/serie-tv/' - ('Ultime Uscite ', ["/stagioni/", 'peliculas', ]), "episode", args='latests') - ('Ultimi Episodi ', ["/episodi/", 'peliculas_latest_ep', ]), "episode", args='lateste') - support.menu(itemlist, '[COLOR blue]Cerca...[/COLOR]', 'search') - - autoplay.init(item.channel, list_servers, list_quality) - autoplay.show_option(item.channel, itemlist) - - return itemlist - - -def peliculas(item): - support.log() - list_groups = ["url", "thumb", "title", "year", "rating", "duration"] - - patron = r'([^<]+).*?Year">' - - if item.args == "latests": - patron += r'([^<]+)' - else: - patron += r'(\d{4}).*?AAIco-star.*?>([^<]+).*?AAIco-access_time">([^<]+).*?Qlty' - - patron_next = r'page-numbers current.*?href="([^"]+)"' - - if item.contentType == "movie": - patron += r'\">([^<]+)' - list_groups.append("quality") - - action = "findvideos" if item.contentType == "movie" else "episodios" - - return support.scrape(item, patron, list_groups, patronNext=patron_next, action=action) - - -def peliculas_latest_ep(item): - - patron = r'([^<]+)<\/span>([^<]+).*?([^<]+)' - - data = httptools.downloadpage(item.url).data - - matches = re.compile(patron, re.DOTALL).findall(data) - itemlist = [] - for scrapedurl, scrapedthumbnail, scrapednum, scrapedep, scrapedtitle in matches: - itemlist.append( - Item(channel=item.channel, - action="findvideos", - contentType=item.contentType, - title="[B]" + scrapednum + "[/B]" + scrapedep + " - " + scrapedtitle, - fulltitle=scrapedep + " " + scrapedtitle, - show=scrapedep + " " + scrapedtitle, - url=scrapedurl, - extra=item.extra, - thumbnail="http:" + scrapedthumbnail, - infoLabels=item.infoLabels - )) - - support.nextPage(itemlist, item, data, r'page-numbers current.*?href="([^"]+)"') - - return itemlist - - -def peliculas_menu(item): - itemlist = peliculas(item) - return itemlist[:-1] - - -def episodios(item): - patron = r'(.*?)<\/a>.*?>\d{4}<' - list_groups = ["url", "title", "year"] - - itemlist = support.scrape(item, patron, list_groups) - - for itm in itemlist: - fixedtitle = scrapertools.get_season_and_episode(itm.url) - itm.title = fixedtitle + " - " + itm.title - itm.fulltitle = fixedtitle + " - " + itm.fulltitle - - return itemlist - - -def menu(item): - patronBlock = r'' - patron = r'menu-category-list">([^<]+)<' - list_groups = ["url", "title"] - - return support.scrape(item, patron, list_groups, blacklist="Anime", action="peliculas_menu", patronBlock=patronBlock) - - -def search(item, texto): - support.log("s=", texto) - item.url = host + "/?s=" + texto - try: - return peliculas(item) - # Continua la ricerca in caso di errore - except Exception, e: - import traceback - traceback.print_stack() - support.log(str(e)) - return [] - - -def newest(categoria): - support.log("newest" + categoria) - itemlist = [] - item = Item() - try: - if categoria == "series": - item.url = host + "/episodi/" - item.action = "peliculas" - item.args = "lateste" - item.contentType = "episode" - itemlist = peliculas(item) - - if itemlist[-1].action == "peliculas": - itemlist.pop() - - # Continua la ricerca in caso di errore - except Exception, e: - import traceback - traceback.print_stack() - support.log(str(e)) - return [] - - return itemlist - - -def findvideos(item): - - if item.quality.lower() in ["ended", "canceled", "returning series"]: - return episodios(item) - - itemlist = [] - data = scrapertoolsV2.decodeHtmlentities(httptools.downloadpage(item.url).data) - btns = re.compile(r'data-tplayernv="Opt.*?>([^<]+)([^<]+)', re.DOTALL).findall(data) - matches = re.compile(r' i: continue # pagination + if pagination and i >= pag * pagination: break # pagination listGroups = match.keys() match = match.values() @@ -232,8 +238,7 @@ def scrape(func): val = scrapertoolsV2.find_single_match(item.url, 'https?://[a-z0-9.-]+') + val scraped[kk] = val - title = scrapertoolsV2.htmlclean(scrapertoolsV2.decodeHtmlentities(scraped["title"]) - .replace('"',"'")).strip() # fix by greko da " a ' + title = scrapertoolsV2.htmlclean(scrapertoolsV2.decodeHtmlentities(scraped["title"]).replace('"',"'").replace('×', 'x').replace('–','-')).strip() # fix by greko da " a ' plot = scrapertoolsV2.htmlclean(scrapertoolsV2.decodeHtmlentities(scraped["plot"])) longtitle = typo(title, 'bold') @@ -242,7 +247,7 @@ def scrape(func): scraped['episode'] = re.sub(r'\s-\s|-|x|–', 'x', scraped['episode']) longtitle = typo(scraped['episode'] + ' - ', 'bold') + longtitle if scraped['title2']: - title2 = scrapertoolsV2.htmlclean(scrapertoolsV2.decodeHtmlentities(scraped["title2"]).replace('"', "'")).strip() + title2 = scrapertoolsV2.htmlclean(scrapertoolsV2.decodeHtmlentities(scraped["title2"]).replace('"', "'").replace('×', 'x').replace('–','-')).strip() longtitle = longtitle + typo(title2, 'bold _ -- _') ## Aggiunto/modificato per gestire i siti che hanno i video @@ -286,15 +291,15 @@ def scrape(func): for name, variants in typeActionDict.items(): if scraped['type'] in variants: action = name - + if scraped["title"] not in blacklist: it = Item( channel=item.channel, action=action, - contentType=item.contentType, + contentType= 'episode' if item.action == 'episodios' else item.contentType, title=longtitle, fulltitle=title, - show=title, + show=item.show if item.action == 'episodios' else title, quality=scraped["quality"], url=scraped["url"], infoLabels=infolabels, @@ -309,8 +314,7 @@ def scrape(func): it = args['itemHook'](it) itemlist.append(it) checkHost(item, itemlist) -## if (item.contentType == "episode" and (action != "findvideos" and action != "play")) \ -## or (item.contentType == "movie" and action != "play"): + if (item.contentType == "tvshow" and (action != "findvideos" and action != "play")) \ or (item.contentType == "episode" and action != "play") \ or (item.contentType == "movie" and action != "play") : @@ -325,6 +329,18 @@ def scrape(func): if patronNext: nextPage(itemlist, item, data, patronNext, 2) + # next page for pagination + if pagination and len(matches) >= pag * pagination: + itemlist.append( + Item(channel=item.channel, + action = item.action, + contentType=item.contentType, + title=typo(config.get_localized_string(30992), 'color kod bold'), + url=item.url, + args=item.args, + page=pag + 1, + thumbnail=thumb())) + if anime: from specials import autorenumber autorenumber.renumber(itemlist) @@ -582,7 +598,8 @@ def menu(func): menuItem(itemlist, filename, 'Cerca... bold color kod', 'search', host + dictUrl['search']) autoplay.show_option(item.channel, itemlist) - + channel_config(item, itemlist) + return itemlist return wrapper @@ -666,20 +683,19 @@ def videolibrary(itemlist, item, typography='', function_level=1): # Function_level is useful if the function is called by another function. # If the call is direct, leave it blank - if item.contentType != 'episode': + if item.contentType == 'movie': action = 'add_pelicula_to_library' extra = 'findvideos' - contentType = 'movie' + contentType = 'movie' else: action = 'add_serie_to_library' extra = 'episodios' - contentType = 'tvshow' + contentType = 'tvshow' if not typography: typography = 'color kod bold' title = typo(config.get_localized_string(30161) + ' ' + typography) - - if inspect.stack()[function_level][3] == 'findvideos' and contentType == 'movie' or inspect.stack()[function_level][3] != 'findvideos' and contentType != 'movie': + if (inspect.stack()[function_level][3] == 'findvideos' and contentType == 'movie') or (inspect.stack()[function_level][3] != 'findvideos' and contentType != 'movie'): if config.get_videolibrary_support() and len(itemlist) > 0: itemlist.append( Item(channel=item.channel,