From 5922afb70cde33eb22f7ee9e34d457622617bcf3 Mon Sep 17 00:00:00 2001 From: Alhaziel Date: Mon, 11 Mar 2019 20:11:15 +0100 Subject: [PATCH] Autoselect filter channels by tmdb lang --- plugin.video.alfa/channels/search.py | 8 ++++--- plugin.video.alfa/channels/searchall.py | 3 ++- plugin.video.alfa/channelselector.py | 29 ++++++++++++++++++++++-- plugin.video.alfa/core/tmdb.py | 20 +++++++++------- plugin.video.alfa/resources/settings.xml | 2 +- 5 files changed, 47 insertions(+), 15 deletions(-) diff --git a/plugin.video.alfa/channels/search.py b/plugin.video.alfa/channels/search.py index c6a2dd20..ff687195 100644 --- a/plugin.video.alfa/channels/search.py +++ b/plugin.video.alfa/channels/search.py @@ -6,7 +6,7 @@ import re import time from threading import Thread -from channelselector import get_thumb +from channelselector import get_thumb, auto_filter from core import channeltools from core import scrapertools from core.item import Item @@ -239,7 +239,8 @@ def setting_channel_new(item): def setting_channel_old(item): channels_path = os.path.join(config.get_runtime_path(), "channels", '*.json') - channel_language = config.get_setting("channel_language", default="all") + # channel_language = config.get_setting("channel_language", default="all") + channel_language = auto_filter() list_controls = [] for infile in sorted(glob.glob(channels_path)): @@ -473,7 +474,8 @@ def do_search(item, categories=None): channels_path = os.path.join(config.get_runtime_path(), "channels", '*.json') logger.info("channels_path=%s" % channels_path) - channel_language = config.get_setting("channel_language", default="all") + # channel_language = config.get_setting("channel_language", default="all") + channel_language = auto_filter() logger.info("channel_language=%s" % channel_language) # Para Kodi es necesario esperar antes de cargar el progreso, de lo contrario diff --git a/plugin.video.alfa/channels/searchall.py b/plugin.video.alfa/channels/searchall.py index 5538a0a9..82d83ff7 100644 --- a/plugin.video.alfa/channels/searchall.py +++ b/plugin.video.alfa/channels/searchall.py @@ -673,7 +673,8 @@ def do_channels_search(item): channels_path = os.path.join(config.get_runtime_path(), "channels", '*.json') logger.info(" channels_path=" + channels_path) - channel_language = config.get_setting("channel_language") + # channel_language = config.get_setting("channel_language") + channel_language = auto_filter() logger.info(" channel_language=" + channel_language) if channel_language == "": channel_language = "all" diff --git a/plugin.video.alfa/channelselector.py b/plugin.video.alfa/channelselector.py index 3fabe6d0..e311a994 100644 --- a/plugin.video.alfa/channelselector.py +++ b/plugin.video.alfa/channelselector.py @@ -71,7 +71,8 @@ def getchanneltypes(view="thumb_"): if config.get_setting("adult_mode") != 0: channel_types.append("adult") - channel_language = config.get_setting("channel_language", default="all") + # channel_language = config.get_setting("channel_language", default="all") + channel_language = auto_filter() logger.info("channel_language=%s" % channel_language) # Ahora construye el itemlist ordenadamente @@ -111,7 +112,8 @@ def filterchannels(category, view="thumb_"): channel_files = glob.glob(channel_path) logger.info("channel_files encontrados %s" % (len(channel_files))) - channel_language = config.get_setting("channel_language", default="all") + # channel_language = config.get_setting("channel_language", default="all") + channel_language = auto_filter() logger.info("channel_language=%s" % channel_language) for channel_path in channel_files: @@ -274,3 +276,26 @@ def set_channel_info(parameters): info = '[COLOR yellow]Tipo de contenido:[/COLOR] %s\n\n[COLOR yellow]Idiomas:[/COLOR] %s' % (content, language) return info + + +def auto_filter(): + import xbmc, xbmcaddon + + addon = xbmcaddon.Addon('metadata.themoviedb.org') + def_lang = addon.getSetting('language') + + if config.get_setting("channel_language") == 'auto': + if def_lang == 'it': + lang = 'ita' + elif def_lang == 'eu-ES' : + lang = 'cast' + elif def_lang == 'es' : + lang = 'esp' + elif def_lang == 'es-MX': + lang = 'lat' + else: + lang = 'all' + else: + lang = config.get_setting("channel_language", default="all") + + return lang diff --git a/plugin.video.alfa/core/tmdb.py b/plugin.video.alfa/core/tmdb.py index a72bea42..c1513788 100644 --- a/plugin.video.alfa/core/tmdb.py +++ b/plugin.video.alfa/core/tmdb.py @@ -13,6 +13,10 @@ from core.item import InfoLabels from platformcode import config from platformcode import logger +import xbmc, xbmcaddon +addon = xbmcaddon.Addon('metadata.themoviedb.org') +def_lang = addon.getSetting('language') + # ----------------------------------------------------------------------------------------------------------- # Conjunto de funciones relacionadas con las infoLabels. # version 1.0: @@ -184,7 +188,7 @@ def cache_response(fn): return wrapper -def set_infoLabels(source, seekTmdb=True, idioma_busqueda='es'): +def set_infoLabels(source, seekTmdb=True, idioma_busqueda=def_lang): """ Dependiendo del tipo de dato de source obtiene y fija (item.infoLabels) los datos extras de una o varias series, capitulos o peliculas. @@ -210,7 +214,7 @@ def set_infoLabels(source, seekTmdb=True, idioma_busqueda='es'): return ret -def set_infoLabels_itemlist(item_list, seekTmdb=False, idioma_busqueda='es'): +def set_infoLabels_itemlist(item_list, seekTmdb=False, idioma_busqueda=def_lang): """ De manera concurrente, obtiene los datos de los items incluidos en la lista item_list. @@ -264,7 +268,7 @@ def set_infoLabels_itemlist(item_list, seekTmdb=False, idioma_busqueda='es'): return [ii[2] for ii in r_list] -def set_infoLabels_item(item, seekTmdb=True, idioma_busqueda='es', lock=None): +def set_infoLabels_item(item, seekTmdb=True, idioma_busqueda=def_lang, lock=None): """ Obtiene y fija (item.infoLabels) los datos extras de una serie, capitulo o pelicula. @@ -541,13 +545,13 @@ def discovery(item): from platformcode import unify if item.search_type == 'discover': - listado = Tmdb(discover={'url':'discover/%s' % item.type, 'with_genres':item.list_type, 'language':'es', + listado = Tmdb(discover={'url':'discover/%s' % item.type, 'with_genres':item.list_type, 'language':def_lang, 'page':item.page}) elif item.search_type == 'list': if item.page == '': item.page = '1' - listado = Tmdb(list={'url': item.list_type, 'language':'es', 'page':item.page}) + listado = Tmdb(list={'url': item.list_type, 'language':def_lang, 'page':item.page}) logger.debug(listado.get_list_resultados()) result = listado.get_list_resultados() @@ -555,7 +559,7 @@ def discovery(item): return result def get_genres(type): - lang = 'es' + lang = def_lang genres = Tmdb(tipo=type) return genres.dic_generos[lang] @@ -783,7 +787,7 @@ class Tmdb(object): self.busqueda_id = kwargs.get('id_Tmdb', '') self.busqueda_texto = re.sub('\[\\\?(B|I|COLOR)\s?[^\]]*\]', '', self.texto_buscado).strip() self.busqueda_tipo = kwargs.get('tipo', '') - self.busqueda_idioma = kwargs.get('idioma_busqueda', 'es') + self.busqueda_idioma = kwargs.get('idioma_busqueda', def_lang) self.busqueda_include_adult = kwargs.get('include_adult', False) self.busqueda_year = kwargs.get('year', '') self.busqueda_filtro = kwargs.get('filtro', {}) @@ -863,7 +867,7 @@ class Tmdb(object): return dict_data @classmethod - def rellenar_dic_generos(cls, tipo='movie', idioma='es'): + def rellenar_dic_generos(cls, tipo='movie', idioma=def_lang): # Rellenar diccionario de generos del tipo e idioma pasados como parametros if idioma not in cls.dic_generos: cls.dic_generos[idioma] = {} diff --git a/plugin.video.alfa/resources/settings.xml b/plugin.video.alfa/resources/settings.xml index 7873d910..697eb823 100644 --- a/plugin.video.alfa/resources/settings.xml +++ b/plugin.video.alfa/resources/settings.xml @@ -5,7 +5,7 @@ - +