diff --git a/channels/cineblog01.py b/channels/cineblog01.py index 4a1c9871..208c2c87 100644 --- a/channels/cineblog01.py +++ b/channels/cineblog01.py @@ -51,12 +51,12 @@ def mainlist(item): support.menu(itemlist, 'Per anno submenu', 'menu', host, args="Film per Anno") support.menu(itemlist, 'Cerca film... submenu', 'search', host, args='film') - support.menu(itemlist, 'Serie TV bold', 'peliculas', host + '/serietv/', contentType='episode') - support.menu(itemlist, 'Aggiornamenti serie tv', 'last', host + '/serietv/aggiornamento-quotidiano-serie-tv/', contentType='episode') - support.menu(itemlist, 'Per Lettera submenu', 'menu', host + '/serietv/', contentType='episode', args="Serie-Tv per Lettera") - support.menu(itemlist, 'Per Genere submenu', 'menu', host + '/serietv/', contentType='episode', args="Serie-Tv per Genere") - support.menu(itemlist, 'Per anno submenu', 'menu', host + '/serietv/', contentType='episode', args="Serie-Tv per Anno") - support.menu(itemlist, 'Cerca serie... submenu', 'search', host + '/serietv/', contentType='episode', args='serie') + support.menu(itemlist, 'Serie TV bold', 'peliculas', host + '/serietv/', contentType='tvshow') + support.menu(itemlist, 'Aggiornamenti serie tv', 'last', host + '/serietv/aggiornamento-quotidiano-serie-tv/', contentType='tvshow') + support.menu(itemlist, 'Per Lettera submenu', 'menu', host + '/serietv/', contentType='tvshow', args="Serie-Tv per Lettera") + support.menu(itemlist, 'Per Genere submenu', 'menu', host + '/serietv/', contentType='tvshow', args="Serie-Tv per Genere") + support.menu(itemlist, 'Per anno submenu', 'menu', host + '/serietv/', contentType='tvshow', args="Serie-Tv per Anno") + support.menu(itemlist, 'Cerca serie... submenu', 'search', host + '/serietv/', contentType='tvshow', args='serie') autoplay.show_option(item.channel, itemlist) @@ -119,7 +119,7 @@ def last(item): infoLabels = {} quality = '' - if item.contentType == 'episode': + if item.contentType == 'tvshow': matches = support.match(item, r']+)".*?>([^(:(|[)]+)([^<]+)<\/a>', '
Film per Genere[/B]', 'genre', host, 'episode') + support.menu(itemlist, '[B] > Film per Genere[/B]', 'genre', host, 'tvshow') support.menu(itemlist, '[COLOR blue]Cerca Film...[/COLOR]', 'search', '') - support.menu(itemlist, '[B]Serie TV[/B]', 'peliculas', host + '/category/serie-tv/', 'episode') - support.menu(itemlist, '[B] > Serie TV in ordine alfabetico[/B]', 'az', host + '/category/serie-tv/', 'episode') - support.menu(itemlist, '[COLOR blue]Cerca Serie TV...[/COLOR]', 'search', '', 'episode') + support.menu(itemlist, '[B]Serie TV[/B]', 'peliculas', host + '/category/serie-tv/', 'tvshow') + support.menu(itemlist, '[B] > Serie TV in ordine alfabetico[/B]', 'az', host + '/category/serie-tv/', 'tvshow') + support.menu(itemlist, '[COLOR blue]Cerca Serie TV...[/COLOR]', 'search', '', 'tvshow') autoplay.init(item.channel, list_servers, list_quality) @@ -129,7 +129,7 @@ def peliculas(item): longtitle = title + ' [COLOR blue][' + quality + '][/COLOR]' - if item.contentType == 'episode': + if item.contentType == 'tvshow': action = 'episodios' else: action ='findvideos' @@ -181,7 +181,7 @@ def episodios(item): itemlist.append( Item(channel=item.channel, action='findvideos', - contentType=item.contentType, + contentType='episode', title=title, fulltitle=title, show=title, @@ -206,7 +206,7 @@ def episodios(item): fulltitle=title, show=title, url=url, - contentType=item.contentType, + contentType='episodie', action='findvideos' )) diff --git a/channels/ilgeniodellostreaming.py b/channels/ilgeniodellostreaming.py index 223cb043..41befd74 100644 --- a/channels/ilgeniodellostreaming.py +++ b/channels/ilgeniodellostreaming.py @@ -27,10 +27,10 @@ def mainlist(item): 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, 'Serie TV', 'peliculas', host + '/serie/', 'tvshow') + menu(itemlist, 'Nuovi Episodi Serie TV submenu', 'newep', host + '/aggiornamenti-serie/', 'tvshow') + menu(itemlist, 'Anime', 'peliculas', host + '/anime/', 'tvshow') + menu(itemlist, 'TV Show', 'peliculas', host + '/tv-show/', 'tvshow') menu(itemlist, 'Cerca...', 'search', contentType='search') aplay(item, itemlist, list_servers, list_quality) return itemlist @@ -46,10 +46,10 @@ def newest(categoria): item.contentType = 'movie' item.url = host + '/film/' elif categoria == "series": - item.contentType = 'episode' + item.contentType = 'tvshow' item.url = host + '/serie/' elif categoria == "anime": - item.contentType = 'episode' + item.contentType = 'tvshow' item.url = host + '/anime/' item.action = "peliculas" @@ -88,19 +88,19 @@ def search(item, texto): def peliculas_src(item): patron = r'
[^[^>]+>([^<]+)<\/span>.*?([^<]+)<\/a>[^>]+>[^>]+>(?:IMDb\s*([0-9.]+)<\/span>)?.*?(?:([0-9]+)<\/span>)?[^>]+>[^>]+>

(.*?)<\/p>' - return support.scrape(item, patron, ['url', 'thumb', 'type', 'title', 'lang' 'rating', 'year', 'plot'], headers, type_content_dict={'movie':['Film'], 'episode':['TV']}, type_action_dict={'findvideos':['Film'], 'episodios':['TV']}) + return support.scrape(item, patron, ['url', 'thumb', 'type', 'title', 'lang' 'rating', 'year', 'plot'], headers, type_content_dict={'movie':['Film'], 'tvshow':['TV']}, type_action_dict={'findvideos':['Film'], 'episodios':['TV']}) def peliculas(item): if item.contentType == 'movie': patron = r'

\s*[^<\/a>[^>]+>[^>]+>[^>]+>\s*([0-9.]+)<\/div>([^<]+)<\/span>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)<\/a>[^>]+>[^>]+>([^<]+)<\/span>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)\s*[^<\/a>[^>]+>[^>]+>[^>]+> ([0-9.]+)<[^>]+>[^>]+>[^>]+>[^>]+>[^>]+>([^<]+)<[^>]+>[^>]+>[^>]+>([^<]+)<.*?
([^<]+)' return support.scrape(item, patron, ['url', 'thumb', 'rating', 'title', 'year', 'plot'], headers, action='episodios', patronNext='[^<]+<[^>]+>[^[^>]+>([^<]+)<\/span>.*?([^<]+)<\/a>[^>]+>[^>]+>(?:IMDb\s*([0-9.]+)<\/span>)?.*?(?:([0-9]+)<\/span>)?[^>]+>[^>]+>

(.*?)<\/p>' - return support.scrape(item, patron, ['url', 'thumb', 'type', 'title', 'lang' 'rating', 'year', 'plot'], headers, type_content_dict={'movie':['Film'], 'episode':['TV']}, type_action_dict={'findvideos':['Film'], 'episodios':['TV']}) + return support.scrape(item, patron, ['url', 'thumb', 'type', 'title', 'lang' 'rating', 'year', 'plot'], headers, type_content_dict={'movie':['Film'], 'tvshow':['TV']}, type_action_dict={'findvideos':['Film'], 'episodios':['TV']}) def newep(item): log() diff --git a/channels/seriehd.py b/channels/seriehd.py index b072ca68..7f8bdc97 100644 --- a/channels/seriehd.py +++ b/channels/seriehd.py @@ -33,7 +33,7 @@ def mainlist(item): menu(itemlist, 'Serie TV', 'peliculas', host + '/serie-tv-streaming', 'tvshow') menu(itemlist, 'Per Genere submenu', 'genre', host, 'tvshow', 'TV') menu(itemlist, 'Per Nazione submenu', 'nation', host + '/serie-tv-streaming/', 'tvshow', 'TV') - menu(itemlist, 'Cerca...', 'search', contentType='episode', args='TV') + menu(itemlist, 'Cerca...', 'search', contentType='tvshow', args='TV') autoplay.init(item.channel, list_servers, list_quality) autoplay.show_option(item.channel, itemlist) @@ -96,7 +96,7 @@ def nation(item): def peliculas(item): - item.contentType = 'episode' + item.contentType = 'tvshow' return support.scrape(item,r'

(.*?)

\s*[^\s*
.*?([0-9]{4}).*?([A-Z]+)',['title', 'thumb', 'url', 'year', 'quality'], headers, patronNext=r"\d+\d+", action='episodios') diff --git a/core/support.py b/core/support.py index 4e54c898..05a77ada 100644 --- a/core/support.py +++ b/core/support.py @@ -206,6 +206,8 @@ def scrape(item, patron = '', listGroups = [], headers="", blacklist="", data="" if scraped['type'] in variants: action = name + if inspect.stack()[1][3] == 'episodios': item.contentType = 'episode' + if scraped["title"] not in blacklist: it = Item( channel=item.channel, @@ -489,7 +491,7 @@ 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 == 'movie': + if item.contentType != 'episode': action = 'add_pelicula_to_library' extra = 'findvideos' contentType = 'movie' @@ -575,12 +577,6 @@ def controls(itemlist, item, AutoPlay=True, CheckLinks=True): CL = get_setting('checklinks') or get_setting('checklinks', item.channel) autoplay_node = jsontools.get_node_from_file('autoplay', 'AUTOPLAY') channel_node = autoplay_node.get(item.channel, {}) - if not channel_node: # non ha mai aperto il menu del canale quindi in autoplay_data.json non c'e la key - channelFile = __import__('channels.' + item.channel, fromlist=["channels.%s" % item.channel]) - autoplay.init(item.channel, channelFile.list_servers, channelFile.list_quality) - - autoplay_node = jsontools.get_node_from_file('autoplay', 'AUTOPLAY') - channel_node = autoplay_node.get(item.channel, {}) settings_node = channel_node.get('settings', {}) AP = get_setting('autoplay') or settings_node['active'] diff --git a/platformcode/platformtools.py b/platformcode/platformtools.py index 48d8c5df..cb927cbe 100644 --- a/platformcode/platformtools.py +++ b/platformcode/platformtools.py @@ -604,27 +604,29 @@ def set_context_commands(item, parent_item): from_channel=item.channel, from_action=item.action) .tourl()))) - elif item.contentSerieName: - # Descargar serie - if item.contentType == "tvshow" or 'episode' and item.action in ["episodios"]: - context_commands.append((config.get_localized_string(60355), "XBMC.RunPlugin(%s?%s)" % - (sys.argv[0], item.clone(channel="downloads", action="save_download", - from_channel=item.channel, - from_action=item.action).tourl()))) + # elif item.contentSerieName: + # Descargar serie + elif item.contentType == "tvshow" and item.action in ["episodios"]: + item.contentType == "tvshow" + context_commands.append((config.get_localized_string(60355), "XBMC.RunPlugin(%s?%s)" % + (sys.argv[0], item.clone(channel="downloads", action="save_download", + from_channel=item.channel, + from_action=item.action).tourl()))) - # Descargar episodio - elif item.contentType == "tvshow" or 'episode' and item.action in ["findvideos"]: - context_commands.append((config.get_localized_string(60356), "XBMC.RunPlugin(%s?%s)" % - (sys.argv[0], item.clone(channel="downloads", action="save_download", - from_channel=item.channel, - from_action=item.action).tourl()))) + # Descargar episodio + elif item.contentType == 'episode' and item.action in ["findvideos"]: + item.contentType == "episode" + context_commands.append((config.get_localized_string(60356), "XBMC.RunPlugin(%s?%s)" % + (sys.argv[0], item.clone(channel="downloads", action="save_download", + from_channel=item.channel, + from_action=item.action).tourl()))) - # Descargar temporada - elif item.contentType == "season": - context_commands.append((config.get_localized_string(60357), "XBMC.RunPlugin(%s?%s)" % - (sys.argv[0], item.clone(channel="downloads", action="save_download", - from_channel=item.channel, - from_action=item.action).tourl()))) + # Descargar temporada + elif item.contentType == "season": + context_commands.append((config.get_localized_string(60357), "XBMC.RunPlugin(%s?%s)" % + (sys.argv[0], item.clone(channel="downloads", action="save_download", + from_channel=item.channel, + from_action=item.action).tourl()))) # Abrir configuración if parent_item.channel not in ["setting", "news", "search"]: diff --git a/specials/downloads.py b/specials/downloads.py index 2646f199..d92bf955 100644 --- a/specials/downloads.py +++ b/specials/downloads.py @@ -503,7 +503,7 @@ def download_from_server(item): unsupported_servers = ["torrent"] progreso = platformtools.dialog_progress(config.get_localized_string(30101), config.get_localized_string(70178) % item.server) - channel = __import__('channels.%s' % item.contentChannel, None, None, ["channels.%s" % item.contentChannel]) + channel = __import__(item.contentChannel, None, None, [item.contentChannel]) if hasattr(channel, "play") and not item.play_menu: progreso.update(50, config.get_localized_string(70178) % item.server, config.get_localized_string(60003) % item.contentChannel) @@ -570,7 +570,7 @@ def download_from_best_server(item): result = {"downloadStatus": STATUS_CODES.error} progreso = platformtools.dialog_progress(config.get_localized_string(30101), config.get_localized_string(70179)) - channel = __import__('channels.%s' % item.contentChannel, None, None, ["channels.%s" % item.contentChannel]) + channel = __import__(item.contentChannel, None, None, [item.contentChannel]) progreso.update(50, config.get_localized_string(70184), config.get_localized_string(70180) % item.contentChannel) @@ -648,7 +648,6 @@ def select_server(item): def start_download(item): logger.info( "contentAction: %s | contentChannel: %s | url: %s" % (item.contentAction, item.contentChannel, item.url)) - # Ya tenemnos server, solo falta descargar if item.contentAction == "play": ret = download_from_server(item) @@ -671,13 +670,13 @@ def start_download(item): def get_episodes(item): logger.info("contentAction: %s | contentChannel: %s | contentType: %s" % ( item.contentAction, item.contentChannel, item.contentType)) - - # El item que pretendemos descargar YA es un episodio + + # El item que pretendemos descargar YA es un episodio if item.contentType == "episode": episodes = [item.clone()] # El item es uma serie o temporada - elif item.contentType in ["tvshow", "season"]: + if item.contentType in ["tvshow", "season"]: # importamos el canal channel = __import__('channels.%s' % item.contentChannel, None, None, ["channels.%s" % item.contentChannel]) # Obtenemos el listado de episodios @@ -721,7 +720,6 @@ def get_episodes(item): episode.downloadFilename = filetools.validate_path(os.path.join(item.downloadFilename, "%dx%0.2d - %s" % ( episode.contentSeason, episode.contentEpisodeNumber, episode.contentTitle.strip()))) - itemlist.append(episode) # Cualquier otro resultado no nos vale, lo ignoramos else: @@ -758,8 +756,8 @@ def save_download(item): # Menu contextual if item.from_action and item.from_channel: - item.channel = item.from_channel - item.action = item.from_action + item.channel = str(item.from_channel) + item.action = str(item.from_action) del item.from_action del item.from_channel @@ -827,6 +825,7 @@ def save_download_tvshow(item): progreso = platformtools.dialog_progress(config.get_localized_string(30101), config.get_localized_string(70188)) + item.show = item.fulltitle scraper.find_and_set_infoLabels(item) item.downloadFilename = filetools.validate_path("%s [%s]" % (item.contentSerieName, item.contentChannel))