Autoselect filter channels by tmdb lang

This commit is contained in:
Alhaziel
2019-03-11 20:11:15 +01:00
committed by mac12m99
parent 7404ed29af
commit 5922afb70c
5 changed files with 47 additions and 15 deletions

View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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] = {}

View File

@@ -5,7 +5,7 @@
<setting id="default_action" type="enum" lvalues="30006|30007|30008" label="30005" default="0"/>
<setting id="autoplay" type="bool" label="70562" default="false" visible="true"/>
<setting id="thumbnail_type" type="enum" lvalues="30011|30012|30200" label="30010" default="2"/>
<setting id="channel_language" type="labelenum" values="all|cast|lat|ita" label="30019" default="all"/>
<setting id="channel_language" type="labelenum" values="auto|all|cast|lat|ita" label="30019" default="auto"/>
<setting id="trakt_sync" type="bool" label="70109" default="false"/>
<setting id="forceview" type="bool" label="30043" default="false"/>
<setting id="faster_item_serialization" type="bool" label="30300" default="false"/>