diff --git a/specials/autoplay.py b/specials/autoplay.py index 71e588af..630f5265 100644 --- a/specials/autoplay.py +++ b/specials/autoplay.py @@ -22,6 +22,13 @@ autoplay_node = {} 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(): ''' @@ -100,7 +107,7 @@ def start(itemlist, item): base_item = item - + if not config.is_xbmc(): # platformtools.dialog_notification('AutoPlay ERROR', 'Sólo disponible para XBMC/Kodi') return itemlist @@ -108,6 +115,7 @@ def start(itemlist, item): if not autoplay_node: # Get AUTOPLAY node from json autoplay_node = jsontools.get_node_from_file('autoplay', 'AUTOPLAY') + general_settings_node = jsontools.get_node_from_file('autoplay', 'settings') channel_id = item.channel if item.channel == 'videolibrary': @@ -145,8 +153,9 @@ def start(itemlist, item): user_config_setting_action = config.get_setting("default_action") 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) - if user_config_setting_action != 2: - config.set_setting("default_action", 2) + if not user_config_setting_action: + 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: config.set_setting("player_mode", 0) @@ -179,10 +188,17 @@ def start(itemlist, item): quality_list =['default'] # The texts of each server and quality are stored in lists, e.g. favorite_servers = ['verystream', 'openload', 'streamcloud'] - 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]]) - + # from core.support import dbg;dbg() + if get_setting('autoplay') and 'favorites_servers_list' in general_settings_node: + 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 for n, item in enumerate(itemlist): autoplay_elem = dict() @@ -212,15 +228,14 @@ def start(itemlist, item): 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 item.server.lower() not in favorite_servers or item.quality not in favorite_quality \ - or item.url in url_list_valid: + if item.server.lower() not in favorite_servers or item.quality.lower() not in favorite_quality or item.url in url_list_valid: item.type_b = True b_dict['videoitem']= item autoplay_b.append(b_dict) continue autoplay_elem["indice_lang"] = favorite_langs.index(item.language) 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 @@ -242,7 +257,7 @@ def start(itemlist, item): autoplay_b.append(b_dict) continue 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 @@ -370,7 +385,7 @@ def start(itemlist, item): platformtools.dialog_notification("AutoPlay", config.get_localized_string(60076), sound=False) # 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) if user_config_setting_player != 0: config.set_setting("player_mode", user_config_setting_player) diff --git a/specials/setting.py b/specials/setting.py index 1a886e70..036b68d7 100644 --- a/specials/setting.py +++ b/specials/setting.py @@ -316,8 +316,7 @@ def servers_blacklist(item): "visible": True} list_controls.append(control) - return platformtools.show_channel_settings(list_controls=list_controls, dict_values=dict_values, - caption=config.get_localized_string(60550), callback="cb_servers_blacklist") + return platformtools.show_channel_settings(list_controls=list_controls, dict_values=dict_values, caption=config.get_localized_string(60550), callback="cb_servers_blacklist") def cb_servers_blacklist(item, dict_values): @@ -331,7 +330,7 @@ def cb_servers_blacklist(item, dict_values): else: config.set_setting("black_list", v, server=k) 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 progreso.update(old_div((i * 100), n), config.get_localized_string(60559) % k) i += 1 @@ -385,6 +384,7 @@ def servers_favorites(item): def cb_servers_favorites(server_names, dict_values): dict_name = {} + dict_favorites = {} progreso = platformtools.dialog_progress(config.get_localized_string(60557), config.get_localized_string(60558)) for i, v in list(dict_values.items()): @@ -398,11 +398,18 @@ def cb_servers_favorites(server_names, dict_values): i = 1 for server, server_parameters in servers_list: 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) else: config.set_setting("favorites_servers_list", 0, server=server) progreso.update(old_div((i * 100), n), config.get_localized_string(60559) % server_parameters['name']) 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 config.set_setting("favorites_servers", False)