diff --git a/channels/animesaturn.py b/channels/animesaturn.py index c48377c8..560ecedc 100644 --- a/channels/animesaturn.py +++ b/channels/animesaturn.py @@ -8,10 +8,10 @@ import re import urlparse import channelselector -from core import httptools, tmdb, scrapertools, support +from core import httptools, tmdb, support, scrapertools, jsontools from core.item import Item from platformcode import logger, config -from specials import autoplay +from specials import autoplay, autorenumber __channel__ = "animesaturn" host = config.get_setting("channel_host", __channel__) @@ -22,45 +22,14 @@ list_language = IDIOMAS.values() list_servers = ['openload','fembed'] list_quality = ['default'] -# checklinks = config.get_setting('checklinks', __channel__) -# checklinks_number = config.get_setting('checklinks_number', __channel__) - def mainlist(item): support.log(item.channel + 'mainlist') itemlist = [] - support.menu(itemlist, 'Anime bold', 'lista_anime', "%s/animelist?load_all=1" % host,'anime') - itemlist.append( - Item(channel=item.channel, - action="ultimiep", - url="%s/fetch_pages.php?request=episodios" % host, - title=support.typo("Novità submenu"), - extra="", - contentType='anime', - folder=True, - thumbnail=support.thumb()) - ) - # itemlist.append( - # Item(channel=item.channel, - # action="lista_anime", - # url="%s/animeincorso" % host, - # title=support.typo("In corso submenu"), - # extra="anime", - # contentType='anime', - # folder=True, - # thumbnail=channelselector.get_thumb('on_the_air.png')) - # ) - itemlist.append( - Item(channel=item.channel, - action="list_az", - url="%s/animelist?load_all=1" % host, - title=support.typo("Archivio A-Z submenu"), - extra="anime", - contentType='anime', - folder=True, - thumbnail=channelselector.get_thumb('channels_tvshow_az.png')) - ) - support.menu(itemlist, 'Cerca', 'search', host,'anime') + support.menu(itemlist, 'Anime bold', 'lista_anime', "%s/animelist?load_all=1" % host) + support.menu(itemlist, 'Novità submenu', 'ultimiep', "%s/fetch_pages.php?request=episodes" % host,'tvshow') + support.menu(itemlist, 'Archivio A-Z submenu', 'list_az', '%s/animelist?load_all=1' % host,args=['tvshow','alfabetico']) + support.menu(itemlist, 'Cerca', 'search', host) autoplay.init(item.channel, list_servers, list_quality) @@ -131,9 +100,14 @@ def lista_anime(item): title += ' '+support.typo(' (ITA)') infoLabels = {} - # if 'Akira' in title: - # movie = True - # infoLabels['year']= 1988 + if 'Akira' in title: + movie = True + infoLabels['year']= 1988 + + if 'Dragon Ball Super Movie' in title: + movie = True + infoLabels['year'] = 2019 + itemlist.append( Item(channel=item.channel, @@ -213,7 +187,7 @@ def episodios(item): fanart=item.thumbnail, thumbnail=item.thumbnail)) - if((len(itemlist) == 1 and 'Movie' in itemlist[0].title) or movie): + if(((len(itemlist) == 1 and 'Movie' in itemlist[0].title) or movie) and item.contentType!='movie'): item.url = itemlist[0].url item.contentType = 'movie' return findvideos(item) @@ -235,6 +209,7 @@ def findvideos(item): if(item.contentType == 'movie'): episodes = episodios(item) + if(len(episodes)>0): item.url = episodes[0].url @@ -245,23 +220,11 @@ def findvideos(item): url = scrapertools.find_single_match(data, patron) data = httptools.downloadpage(url).data - # patron = r"""""" - # matches = re.compile(patron, re.DOTALL).findall(data) - # for video in matches: - # itemlist.append( - # Item( - # channel=item.channel, - # action="play", - # fulltitle=item.fulltitle, - # title="".join([item.title, ' ', support.typo(video.title, 'color kod []')]), - # url=video, - # contentType=item.contentType, - # folder=False)) itemlist = support.server(item, data=data) - # itemlist = filtertools.get_links(itemlist, item, list_language) - + if item.contentType == 'movie': + support.videolibrary(itemlist, item, 'color kod') # Controlla se i link sono validi # if checklinks: # itemlist = servertools.check_list_links(itemlist, checklinks_number) @@ -279,16 +242,13 @@ def ultimiep(item): logger.info(item.channel + "ultimiep") itemlist = [] - post = "page=%s" % item.extra if item.extra else None - logger.debug(post) - logger.debug(item.url) + post = "page=%s" % item.args['page'] if item.args and item.args['page'] else None + data = httptools.downloadpage( item.url, post=post, headers={ 'X-Requested-With': 'XMLHttpRequest' }).data - logger.debug(data) - patron = r"""
[^
\s*""" patron += r"""
(.+?)
\s*""" patron += r"""
(.+?)
""" @@ -298,6 +258,7 @@ def ultimiep(item): scrapedtitle1 = cleantitle(scrapedtitle1) scrapedtitle2 = cleantitle(scrapedtitle2) scrapedtitle = scrapedtitle1 + ' - ' + scrapedtitle2 + '' + itemlist.append( Item(channel=item.channel, contentType="tvshow", @@ -313,16 +274,15 @@ def ultimiep(item): # Pagine patronvideos = r'data-page="(\d+)" title="Next">Pagina Successiva' next_page = scrapertools.find_single_match(data, patronvideos) - if next_page: itemlist.append( Item( channel=item.channel, action="ultimiep", title=support.typo(config.get_localized_string(30992), 'color kod bold'), - url=host + "/fetch_pages?request=episodios", + url=item.url, thumbnail= support.thumb(), - extra=next_page, + args={'page':next_page}, folder=True)) return itemlist @@ -362,42 +322,73 @@ def newest(categoria): # ================================================================================================================ # ---------------------------------------------------------------------------------------------------------------- -def search_anime(item): - logger.info(item.channel + " search_anime") +def search_anime(item, texto): + logger.info(item.channel + " search_anime: "+texto) itemlist = [] - data = httptools.downloadpage(host + "/animelist?load_all=1").data - data = scrapertools.decodeHtmlentities(data) + # data = httptools.downloadpage(host + "/animelist?load_all=1").data + # data = scrapertools.decodeHtmlentities(data) + # + # texto = texto.lower().split('+') + # + # patron = r']*?>[^>]*?>(.+?)<' + # matches = re.compile(patron, re.DOTALL).findall(data) + # + # for scrapedurl, scrapedtitle in [(scrapedurl, scrapedtitle) + # for scrapedurl, scrapedtitle in matches + # if all(t in scrapedtitle.lower() + # for t in texto)]: + # + # title = cleantitle(scrapedtitle).replace('(ita)','(ITA)') + # showtitle = title + # if '(ITA)' in title: + # title = title.replace('(ITA)','').strip() + # showtitle = title + # title += ' '+support.typo(' [ITA] color kod') + # + # itemlist.append( + # Item( + # channel=item.channel, + # contentType="episode", + # action="episodios", + # title=title, + # url=scrapedurl, + # fulltitle=title, + # show=showtitle, + # thumbnail="")) + # + # tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) - texto = item.url.lower().split('+') + data = httptools.downloadpage(host + "/index.php?search=1&key=%s" % texto).data + jsondata = jsontools.load(data) - patron = r']*?>[^>]*?>(.+?)<' - matches = re.compile(patron, re.DOTALL).findall(data) + for title in jsondata: + data = str(httptools.downloadpage("%s/templates/header?check=1" % host, post="typeahead=%s" % title).data) - for scrapedurl, scrapedtitle in [(scrapedurl, scrapedtitle) - for scrapedurl, scrapedtitle in matches - if all(t in scrapedtitle.lower() - for t in texto)]: - - title = cleantitle(scrapedtitle).replace('(ita)','(ITA)') - showtitle = title - if '(ITA)' in title: - title = title.replace('(ITA)','').strip() + if 'Anime non esistente' in data: + continue + else: + title = title.replace('(ita)','(ITA)') showtitle = title - title += ' '+support.typo(' [ITA] color kod') + if '(ITA)' in title: + title = title.replace('(ITA)', '').strip() + showtitle = title + title += ' ' + support.typo(' (ITA)') - itemlist.append( - Item( - channel=item.channel, - contentType="episode", - action="episodios", - title=title, - url=scrapedurl, - fulltitle=title, - show=showtitle, - thumbnail="")) + url = "%s/anime/%s" % (host, data) + logger.debug(title) + logger.debug(url) - tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) + itemlist.append( + Item( + channel=item.channel, + contentType="episode", + action="episodios", + title=title, + url=url, + fulltitle=title, + show=showtitle, + thumbnail="")) return itemlist @@ -408,10 +399,9 @@ def search_anime(item): def search(item, texto): logger.info(item.channel + " search") itemlist = [] - item.url = texto try: - return search_anime(item) + return search_anime(item, texto) except: import sys diff --git a/channels/cineblog01.py b/channels/cineblog01.py index b6859b2d..f2c803cc 100644 --- a/channels/cineblog01.py +++ b/channels/cineblog01.py @@ -25,7 +25,7 @@ def findhost(): IDIOMAS = {'Italiano': 'IT'} list_language = IDIOMAS.values() list_servers = ['verystream', 'openload', 'streamango', 'wstream'] -list_quality = ['HD', 'default'] +list_quality = ['HD', 'SD', 'default'] checklinks = config.get_setting('checklinks', 'cineblog01') checklinks_number = config.get_setting('checklinks_number', 'cineblog01') @@ -33,7 +33,7 @@ checklinks_number = config.get_setting('checklinks_number', 'cineblog01') # esclusione degli articoli 'di servizio' blacklist = ['BENVENUTI', 'Richieste Serie TV', 'CB01.UNO ▶ TROVA L’INDIRIZZO UFFICIALE ', 'Aggiornamento Quotidiano Serie TV', 'OSCAR 2019 ▶ CB01.UNO: Vota il tuo film preferito! 🎬', - 'Openload: la situazione. Benvenuto Verystream'] + 'Openload: la situazione. Benvenuto Verystream', 'Openload: lo volete ancora?'] def mainlist(item): @@ -105,6 +105,7 @@ def newest(categoria): findhost() itemlist = [] item = Item() + item.contentType = 'movie' item.url = host + '/lista-film-ultimi-100-film-aggiunti/' return support.scrape(item, r']+)>([^<([]+)(?:\[([A-Z]+)\])?\s\(([0-9]{4})\)<\/a>', ['url', 'title', 'quality', 'year'], @@ -229,11 +230,10 @@ def findvideos(item): matches = re.compile(patron, re.DOTALL).findall(streaming) for scrapedurl, scrapedtitle in matches: logger.debug("##### findvideos %s ## %s ## %s ##" % (desc_txt, scrapedurl, scrapedtitle)) - title = "[COLOR " + color + "]" + desc_txt + ":[/COLOR] " + item.fulltitle + " [COLOR grey]" + QualityStr + "[/COLOR] [COLOR blue][" + scrapedtitle + "][/COLOR]" itemlist.append( Item(channel=item.channel, action="play", - title=title, + title=scrapedtitle, url=scrapedurl, server=scrapedtitle, fulltitle=item.fulltitle, @@ -264,37 +264,18 @@ def findvideos(item): # Estrae i contenuti - Streaming HD load_links(itemlist, 'Streaming HD[^<]+(.*?)', "yellow", "Streaming HD", "HD") - autoplay.start(itemlist, item) - # Estrae i contenuti - Streaming 3D load_links(itemlist, 'Streaming 3D[^<]+(.*?)', "pink", "Streaming 3D") + support.videolibrary(itemlist, item) + return support.server(item, itemlist=itemlist) + # Estrae i contenuti - Download # load_links(itemlist, 'Download:(.*?)', "aqua", "Download") # Estrae i contenuti - Download HD # load_links(itemlist, 'Download HD[^<]+(.*?)', "azure", "Download HD") - if len(itemlist) == 0: - itemlist = servertools.find_video_items(item=item) - - # Requerido para Filtrar enlaces - - if checklinks: - itemlist = servertools.check_list_links(itemlist, checklinks_number) - - # Requerido para FilterTools - - # itemlist = filtertools.get_links(itemlist, item, list_language) - - # Requerido para AutoPlay - - autoplay.start(itemlist, item) - - support.videolibrary(itemlist, item) - - return itemlist - def findvid_serie(item): def load_vid_series(html, item, itemlist, blktxt): @@ -305,11 +286,11 @@ def findvid_serie(item): for match in matches: scrapedurl = match.group(1) scrapedtitle = match.group(2) - title = item.title + " [COLOR blue][" + scrapedtitle + "][/COLOR]" + # title = item.title + " [COLOR blue][" + scrapedtitle + "][/COLOR]" itemlist.append( Item(channel=item.channel, action="play", - title=title, + title=scrapedtitle, url=scrapedurl, server=scrapedtitle, fulltitle=item.fulltitle, @@ -353,9 +334,7 @@ def findvid_serie(item): else: load_vid_series(data[lnkblkp[i]:lnkblkp[i + 1]], item, itemlist, lnkblk[i]) - autoplay.start(itemlist, item) - - return itemlist + return support.server(item, itemlist=itemlist) def play(item): @@ -389,4 +368,4 @@ def play(item): else: data = support.swzz_get_url(item) - return support.server(item, data, headers) + return servertools.find_video_items(data=data) diff --git a/channels/eurostreaming.py b/channels/eurostreaming.py index 3197c73a..224e6cd8 100644 --- a/channels/eurostreaming.py +++ b/channels/eurostreaming.py @@ -56,7 +56,7 @@ def serietv(item): if item.args: # il titolo degli episodi viene inglobato in episode ma non sono visibili in newest!!! patron = r'(.*?).[^–](.*?)<\/a>' - listGroups = ['title', 'url', 'episode'] + listGroups = ['title', 'url', 'title2'] patronNext = '' else: patron = r'
.*?\s(.*?(?:\((\d{4})\)|(\d{4}))?)<\/a><\/h2>' diff --git a/channels/fastsubita.json b/channels/fastsubita.json index dead1163..2db8f206 100644 --- a/channels/fastsubita.json +++ b/channels/fastsubita.json @@ -4,8 +4,8 @@ "language": ["ita"], "active": true, "adult": false, - "thumbnail": "http://fastsubita.com/wp-content/uploads/2017/10/Untitled-222255xxx.jpg", - "banner": "http://fastsubita.com/wp-content/uploads/2017/10/Untitled-222255xxx.jpg", + "thumbnail": "fastsubita.png", + "banner": "fastsubita.png", "categories": ["tvshow", "vosi"], "settings": [ { diff --git a/channels/fastsubita.py b/channels/fastsubita.py index 9318a714..c8f575f7 100644 --- a/channels/fastsubita.py +++ b/channels/fastsubita.py @@ -6,7 +6,8 @@ import re -from core import scrapertools, httptools, tmdb +import channelselector +from core import scrapertools, httptools, tmdb, support from core.item import Item from platformcode import config, logger from specials import autoplay @@ -44,8 +45,8 @@ def mainlist(item): support.menu(itemlist, 'Serie TV bold', 'lista_serie', host,'tvshow') support.menu(itemlist, 'Novità submenu', 'pelicuals_tv', host,'tvshow') support.menu(itemlist, 'Archivio A-Z submenu', 'list_az', host,'tvshow',args=['serie']) - support.menu(itemlist, 'Cerca', 'search', host,'tvshow') + autoplay.init(item.channel, list_servers, list_quality) autoplay.show_option(item.channel, itemlist) @@ -113,24 +114,31 @@ def pelicuals_tv(item): episode = scrapertools.find_multiple_matches(scrapedtitle, r'((\d*)x(\d*))')[0] scrapedtitle = scrapedtitle.replace(scraped_1, "") + infoLabels = {} + infoLabels['season'] = episode[1] + infoLabels['episode'] = episode[2] if "http:" in scrapedurl: scrapedurl = scrapedurl else: scrapedurl = "http:" + scrapedurl + title = scraped_1+" - "+infoLabels['season']+"x"+infoLabels['episode']+" Sub-ITA" + itemlist.append( Item(channel=item.channel, action="findvideos", contentTpye="tvshow", - title=scraped_1 + " " + scrapedtitle, - fulltitle=scraped_1 + " " + scrapedtitle, + title=title, + fulltitle=title, url=scrapedurl, thumbnail=scrapedthumbnail, plot=scrapedplot, show=scraped_1, extra=item.extra, - contentSerieName=scraped_1+" ("+episode[0]+" Sub-Ita)", + contentSerieName=scraped_1, + contentLanguage='Sub-ITA', + infoLabels=infoLabels, folder=True)) tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) @@ -380,7 +388,7 @@ def episodios(item,itemlist = []): infoLabels = {} infoLabels['season'] = season infoLabels['episode'] = episode[2] - title = infoLabels['season']+'x'+infoLabels['episode'] + title = infoLabels['season']+'x'+infoLabels['episode']+" Sub-ITA" if "http:" not in scrapedurl: scrapedurl = "http:" + scrapedurl diff --git a/channels/ilgeniodellostreaming.py b/channels/ilgeniodellostreaming.py index 92b4aff1..a10e37bb 100644 --- a/channels/ilgeniodellostreaming.py +++ b/channels/ilgeniodellostreaming.py @@ -4,83 +4,51 @@ # Canale per ilgeniodellostreaming # ------------------------------------------------------------ import re -import urlparse -from core import scrapertools, servertools, httptools -from core import tmdb +from platformcode import logger +from core import scrapertoolsV2, httptools, tmdb, support +from core.support import log, menu, aplay from core.item import Item -from platformcode import config, logger -from specials import autoplay - -__channel__ = "ilgeniodellostreaming" host = "https://ilgeniodellostreaming.pw" IDIOMAS = {'Italiano': 'IT'} list_language = IDIOMAS.values() -list_servers = ['verystream', 'openload', 'streamango', 'youtube'] +list_servers = ['verystream', 'openload', 'streamango'] list_quality = ['default'] - -checklinks = config.get_setting('checklinks', 'ilgeniodellostreaming') -checklinks_number = config.get_setting('checklinks_number', 'ilgeniodellostreaming') - headers = [['Referer', host]] PERPAGE = 10 def mainlist(item): - logger.info("kod.ilgeniodellostreaming mainlist") - - autoplay.init(item.channel, list_servers, list_quality) - itemlist = [Item(channel=__channel__, - title="[COLOR azure]Ultimi Film Inseriti[/COLOR]", - action="peliculas", - url="%s/film/" % host, - thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"), - Item(channel=__channel__, - title="[COLOR azure]Film Per Categoria[/COLOR]", - action="categorias", - url=host, - thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png"), - Item(channel=__channel__, - title="[COLOR azure]Serie TV[/COLOR]", - action="serie", - url="%s/serie/" % host, - thumbnail="http://www.ilmioprofessionista.it/wp-content/uploads/2015/04/TVSeries3.png"), - Item(channel=__channel__, - title="[COLOR azure]Nuovi Episodi Serie TV[/COLOR]", - action="nuoviep", - url="%s/aggiornamenti-serie/" % host, - thumbnail="http://www.ilmioprofessionista.it/wp-content/uploads/2015/04/TVSeries3.png"), - Item(channel=__channel__, - title="[COLOR azure]Anime[/COLOR]", - action="serie", - url="%s/anime/" % host, - thumbnail="http://orig09.deviantart.net/df5a/f/2014/169/2/a/fist_of_the_north_star_folder_icon_by_minacsky_saya-d7mq8c8.png"), - Item(channel=__channel__, - title="[COLOR yellow]Cerca...[/COLOR]", - action="search", - extra="movie", - thumbnail="http://dc467.4shared.com/img/fEbJqOum/s7/13feaf0c8c0/Search")] - - autoplay.show_option(item.channel, itemlist) - + log() + itemlist = [] + menu(itemlist, 'Film', 'peliculas', host + '/film/') + menu(itemlist, 'Film Per Categoria', 'category', host, args='genres') + menu(itemlist, 'Film Per Anno', 'category', host, args='year') + menu(itemlist, 'Serie TV', 'peliculas', host + '/serie/', 'episode') + menu(itemlist, 'Nuovi Episodi Serie TV submenu', 'newep', host + '/aggiornamenti-serie/', 'episode') + menu(itemlist, 'Anime', 'peliculas', host + '/anime/', 'episode') + menu(itemlist, 'TV Show', 'peliculas', host + '/tv-show/', 'episode') + menu(itemlist, 'Cerca...', 'search', contentType='search') + aplay(item, itemlist, list_servers, list_quality) return itemlist def newest(categoria): - logger.info("kod.ilgeniodellostreaming newest" + categoria) + log(categoria) itemlist = [] item = Item() try: - if categoria == "film": - item.url = "%s/film/" % host - item.action = "peliculas" - itemlist = peliculas(item) + if categoria == "movie": item.url = host + '/film/' + elif categoria == "tvshow": item.url = host + '/serie/' + elif categoria == "anime": item.url = host + '/anime/' + 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 @@ -91,37 +59,16 @@ def newest(categoria): return itemlist -def categorias(item): - logger.info("kod.ilgeniodellostreaming categorias") - itemlist = [] - - # Carica la pagina - data = httptools.downloadpage(item.url).data - bloque = scrapertools.find_single_match(data, '
    (.*?)
') - - # Estrae i contenuti - patron = ']+>
]+>(.*?)' - matches = re.compile(patron, re.DOTALL).findall(bloque) - - for scrapedurl, scrapedtitle in matches: - logger.info("title=[" + scrapedtitle + "]") - itemlist.append( - Item(channel=__channel__, - action="peliculas", - title="[COLOR azure]" + scrapedtitle + "[/COLOR]", - url=scrapedurl, - thumbnail="http://orig03.deviantart.net/6889/f/2014/079/7/b/movies_and_popcorn_folder_icon_by_matheusgrilo-d7ay4tw.png", - folder=True)) - - return itemlist +def category(item): + return support.scrape(item, r']+>(.*?)<\/a>' ,['url', 'title'], action='peliculas', patron_block= r'