Test Autoplay basato su impostazioni generali:

- Qualità video
 - Server Preferiti
This commit is contained in:
Alhaziel01
2020-06-01 20:12:03 +02:00
parent 225666b31e
commit f8b155e37f
2 changed files with 37 additions and 15 deletions
+27 -12
View File
@@ -22,6 +22,13 @@ autoplay_node = {}
colorKOD = '0xFF65B3DA' colorKOD = '0xFF65B3DA'
default_quality_list = ['4k', '2k',
'fullhd', 'fullhd 1080', 'fullhd 1080p', 'full hd', 'full hd 1080', 'full hd 1080p', 'hd1080', 'hd1080p', 'hd 1080', 'hd 1080p', '1080', '1080p',
'hd', 'hd720', 'hd720p', 'hd 720', 'hd 720p', '720', '720p', 'hdtv',
'sd', '480p', '480',
'360p', '360',
'240p', '240']
def context(): def context():
''' '''
@@ -100,7 +107,7 @@ def start(itemlist, item):
base_item = item base_item = item
if not config.is_xbmc(): if not config.is_xbmc():
# platformtools.dialog_notification('AutoPlay ERROR', 'Sólo disponible para XBMC/Kodi') # platformtools.dialog_notification('AutoPlay ERROR', 'Sólo disponible para XBMC/Kodi')
return itemlist return itemlist
@@ -108,6 +115,7 @@ def start(itemlist, item):
if not autoplay_node: if not autoplay_node:
# Get AUTOPLAY node from json # Get AUTOPLAY node from json
autoplay_node = jsontools.get_node_from_file('autoplay', 'AUTOPLAY') autoplay_node = jsontools.get_node_from_file('autoplay', 'AUTOPLAY')
general_settings_node = jsontools.get_node_from_file('autoplay', 'settings')
channel_id = item.channel channel_id = item.channel
if item.channel == 'videolibrary': if item.channel == 'videolibrary':
@@ -145,8 +153,9 @@ def start(itemlist, item):
user_config_setting_action = config.get_setting("default_action") user_config_setting_action = config.get_setting("default_action")
user_config_setting_player = config.get_setting("player_mode") user_config_setting_player = config.get_setting("player_mode")
# Enable the "View in high quality" action (if the server returns more than one quality, eg gdrive) # Enable the "View in high quality" action (if the server returns more than one quality, eg gdrive)
if user_config_setting_action != 2: if not user_config_setting_action:
config.set_setting("default_action", 2) select = platformtools.dialog_select(config.get_localized_string(707417),[config.get_localized_string(30007),config.get_localized_string(30008)])
config.set_setting("default_action", select + 1)
if user_config_setting_player != 0: if user_config_setting_player != 0:
config.set_setting("player_mode", 0) config.set_setting("player_mode", 0)
@@ -179,10 +188,17 @@ def start(itemlist, item):
quality_list =['default'] quality_list =['default']
# The texts of each server and quality are stored in lists, e.g. favorite_servers = ['verystream', 'openload', 'streamcloud'] # The texts of each server and quality are stored in lists, e.g. favorite_servers = ['verystream', 'openload', 'streamcloud']
for num in range(1, 4): # from core.support import dbg;dbg()
favorite_servers.append(channel_node['servers'][settings_node['server_%s' % num]].lower()) if get_setting('autoplay') and 'favorites_servers_list' in general_settings_node:
favorite_quality.append(channel_node['quality'][settings_node['quality_%s' % num]]) favorite_servers = general_settings_node['favorites_servers_list']
if get_setting('default_action') == 1:
default_quality_list.reverse()
favorite_quality = default_quality_list
else:
for num in range(1, 4):
favorite_servers.append(channel_node['servers'][settings_node['server_%s' % num]].lower())
favorite_quality.append(channel_node['quality'][settings_node['quality_%s' % num]].lower())
logger.info('LISTA Q: '+ str(get_setting('default_action')) + str(favorite_quality))
# Itemlist links are filtered and correspond to autoplay values # Itemlist links are filtered and correspond to autoplay values
for n, item in enumerate(itemlist): for n, item in enumerate(itemlist):
autoplay_elem = dict() autoplay_elem = dict()
@@ -212,15 +228,14 @@ def start(itemlist, item):
if priority < 2: # 0: Servers and qualities or 1: Qualities and servers if priority < 2: # 0: Servers and qualities or 1: Qualities and servers
# if the server and the quality are not in the favorites lists or the url is repeated, we discard the item # if the server and the quality are not in the favorites lists or the url is repeated, we discard the item
if item.server.lower() not in favorite_servers or item.quality not in favorite_quality \ if item.server.lower() not in favorite_servers or item.quality.lower() not in favorite_quality or item.url in url_list_valid:
or item.url in url_list_valid:
item.type_b = True item.type_b = True
b_dict['videoitem']= item b_dict['videoitem']= item
autoplay_b.append(b_dict) autoplay_b.append(b_dict)
continue continue
autoplay_elem["indice_lang"] = favorite_langs.index(item.language) autoplay_elem["indice_lang"] = favorite_langs.index(item.language)
autoplay_elem["indice_server"] = favorite_servers.index(item.server.lower()) autoplay_elem["indice_server"] = favorite_servers.index(item.server.lower())
autoplay_elem["indice_quality"] = favorite_quality.index(item.quality) autoplay_elem["indice_quality"] = favorite_quality.index(item.quality.lower())
elif priority == 2: # Servers only elif priority == 2: # Servers only
@@ -242,7 +257,7 @@ def start(itemlist, item):
autoplay_b.append(b_dict) autoplay_b.append(b_dict)
continue continue
autoplay_elem["indice_lang"] = favorite_langs.index(item.language) autoplay_elem["indice_lang"] = favorite_langs.index(item.language)
autoplay_elem["indice_quality"] = favorite_quality.index(item.quality) autoplay_elem["indice_quality"] = favorite_quality.index(item.quality.lower())
else: # Do not order else: # Do not order
@@ -370,7 +385,7 @@ def start(itemlist, item):
platformtools.dialog_notification("AutoPlay", config.get_localized_string(60076), sound=False) platformtools.dialog_notification("AutoPlay", config.get_localized_string(60076), sound=False)
# Restore if necessary the previous value of "Action and Player Mode" in preferences # Restore if necessary the previous value of "Action and Player Mode" in preferences
if user_config_setting_action != 2: if not user_config_setting_action:
config.set_setting("default_action", user_config_setting_action) config.set_setting("default_action", user_config_setting_action)
if user_config_setting_player != 0: if user_config_setting_player != 0:
config.set_setting("player_mode", user_config_setting_player) config.set_setting("player_mode", user_config_setting_player)
+10 -3
View File
@@ -316,8 +316,7 @@ def servers_blacklist(item):
"visible": True} "visible": True}
list_controls.append(control) list_controls.append(control)
return platformtools.show_channel_settings(list_controls=list_controls, dict_values=dict_values, return platformtools.show_channel_settings(list_controls=list_controls, dict_values=dict_values, caption=config.get_localized_string(60550), callback="cb_servers_blacklist")
caption=config.get_localized_string(60550), callback="cb_servers_blacklist")
def cb_servers_blacklist(item, dict_values): def cb_servers_blacklist(item, dict_values):
@@ -331,7 +330,7 @@ def cb_servers_blacklist(item, dict_values):
else: else:
config.set_setting("black_list", v, server=k) config.set_setting("black_list", v, server=k)
if v: # If the server is blacklisted it cannot be in the favorites list if v: # If the server is blacklisted it cannot be in the favorites list
config.set_setting("favorites_servers_list", 100, server=k) config.set_setting("favorites_servers_list", 0, server=k)
f = True f = True
progreso.update(old_div((i * 100), n), config.get_localized_string(60559) % k) progreso.update(old_div((i * 100), n), config.get_localized_string(60559) % k)
i += 1 i += 1
@@ -385,6 +384,7 @@ def servers_favorites(item):
def cb_servers_favorites(server_names, dict_values): def cb_servers_favorites(server_names, dict_values):
dict_name = {} dict_name = {}
dict_favorites = {}
progreso = platformtools.dialog_progress(config.get_localized_string(60557), config.get_localized_string(60558)) progreso = platformtools.dialog_progress(config.get_localized_string(60557), config.get_localized_string(60558))
for i, v in list(dict_values.items()): for i, v in list(dict_values.items()):
@@ -398,11 +398,18 @@ def cb_servers_favorites(server_names, dict_values):
i = 1 i = 1
for server, server_parameters in servers_list: for server, server_parameters in servers_list:
if server_parameters['name'] in list(dict_name.keys()): if server_parameters['name'] in list(dict_name.keys()):
dict_favorites[dict_name[server_parameters['name']]] = server
config.set_setting("favorites_servers_list", dict_name[server_parameters['name']], server=server) config.set_setting("favorites_servers_list", dict_name[server_parameters['name']], server=server)
else: else:
config.set_setting("favorites_servers_list", 0, server=server) config.set_setting("favorites_servers_list", 0, server=server)
progreso.update(old_div((i * 100), n), config.get_localized_string(60559) % server_parameters['name']) progreso.update(old_div((i * 100), n), config.get_localized_string(60559) % server_parameters['name'])
i += 1 i += 1
c = 1
favorites_servers_list = []
while c in dict_favorites:
favorites_servers_list.append(dict_favorites[c])
c += 1
config.set_setting("favorites_servers_list", favorites_servers_list, 'autoplay')
if not dict_name: # If there is no server in the list, deactivate it if not dict_name: # If there is no server in the list, deactivate it
config.set_setting("favorites_servers", False) config.set_setting("favorites_servers", False)