diff --git a/plugin.video.alfa/channels/animemovil.py b/plugin.video.alfa/channels/animemovil.py index 5c4031fc..0cd3153a 100644 --- a/plugin.video.alfa/channels/animemovil.py +++ b/plugin.video.alfa/channels/animemovil.py @@ -287,7 +287,6 @@ def findvideos(item): strm_id = scrapertools.find_single_match(data, '"id": (.*?),') streams = scrapertools.find_single_match(data, '"stream": (.*?)};') dict_strm = jsontools.load(streams) - base_url = 'http:%s%s/' % (dict_strm['accessPoint'], strm_id) for server in dict_strm['servers']: expire = dict_strm['expire'] @@ -297,24 +296,26 @@ def findvideos(item): strm_url = base_url +'%s?expire=%s&callback=%s&signature=%s&last_modify=%s' % (server, expire, callback, signature, last_modify) - - strm_data = httptools.downloadpage(strm_url).data - strm_data = scrapertools.unescape(strm_data) - title = '%s' - language = '' - if server not in ['fire', 'meph']: - urls = scrapertools.find_multiple_matches(strm_data, '"(?:file|src)"*?:.*?"(.*?)"') - for url in urls: + try: + strm_data = httptools.downloadpage(strm_url).data + strm_data = scrapertools.unescape(strm_data) + title = '%s' + language = '' + if server not in ['fire', 'meph']: + urls = scrapertools.find_multiple_matches(strm_data, '"(?:file|src)"*?:.*?"(.*?)"') + for url in urls: + if url != '': + url = url.replace ('\\/','/') + itemlist.append(Item(channel=item.channel, title=title, url=url, action='play')) + elif server in ['fire', 'mpeh']: + url = scrapertools.find_single_match(strm_data, 'xmlhttp.open(\"GET\", \"(.*?)\"') if url != '': - url = url.replace ('\\/','/') - itemlist.append(Item(channel=item.channel, title=title, url=url, action='play')) - elif server in ['fire', 'mpeh']: - url = scrapertools.find_single_match(strm_data, 'xmlhttp.open(\"GET\", \"(.*?)\"') - if url != '': - url = url.replace('\\/', '/') - itemlist.append(Item(channel=item.channel, title=url, url=url, action='play')) - else: - continue + url = url.replace('\\/', '/') + itemlist.append(Item(channel=item.channel, title=url, url=url, action='play')) + else: + continue + except: + pass servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server) diff --git a/plugin.video.alfa/channels/autoplay.py b/plugin.video.alfa/channels/autoplay.py index 3a6f5684..bb7fefd8 100644 --- a/plugin.video.alfa/channels/autoplay.py +++ b/plugin.video.alfa/channels/autoplay.py @@ -344,7 +344,7 @@ def start(itemlist, item): return itemlist -def init(channel, list_servers, list_quality): +def init(channel, list_servers, list_quality, reset=False): ''' Comprueba la existencia de canal en el archivo de configuracion de Autoplay y si no existe lo añade. Es necesario llamar a esta funcion al entrar a cualquier canal que incluya la funcion Autoplay. @@ -360,6 +360,7 @@ def init(channel, list_servers, list_quality): change = False result = True + if not config.is_xbmc(): # platformtools.dialog_notification('AutoPlay ERROR', 'Sólo disponible para XBMC/Kodi') result = False @@ -371,7 +372,7 @@ def init(channel, list_servers, list_quality): change = True autoplay_node = {"AUTOPLAY": {}} - if channel not in autoplay_node: + if channel not in autoplay_node or reset: change = True # Se comprueba que no haya calidades ni servidores duplicados @@ -573,9 +574,15 @@ def autoplay_config(item): list_controls.append(set_priority) dict_values["priority"] = settings_node.get("priority", 0) + + # Abrir cuadro de dialogo platformtools.show_channel_settings(list_controls=list_controls, dict_values=dict_values, callback='save', - item=item, caption='%s - AutoPlay' % channel_name) + item=item, caption='%s - AutoPlay' % channel_name, + custom_button={'visible': True, + 'function': "reset", + 'close': True, + 'label': 'Reset'}) def save(item, dict_data_saved): @@ -654,3 +661,16 @@ def is_active(): settings_node = channel_node.get('settings', {}) return settings_node.get('active', False) + + +def reset(item, dict): + + channel_name = item.from_channel + channel = __import__('channels.%s' % channel_name, fromlist=["channels.%s" % channel_name]) + list_servers = channel.list_servers + list_quality = channel.list_quality + + init(channel_name, list_servers, list_quality, reset=True) + platformtools.dialog_notification('AutoPlay', '%s: Los datos fueron reiniciados' % item.category) + + return diff --git a/plugin.video.alfa/channels/pelismagnet.py b/plugin.video.alfa/channels/pelismagnet.py index d0cd6fc4..d8440caa 100644 --- a/plugin.video.alfa/channels/pelismagnet.py +++ b/plugin.video.alfa/channels/pelismagnet.py @@ -74,7 +74,11 @@ def menu_alf(item): for letra in ['[0-9]', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']: - itemlist.append(Item(channel=item.channel, action="series", title=letra, + if 'series' in item.url: + action = 'series' + else: + action = 'pelis' + itemlist.append(Item(channel=item.channel, action=action, title=letra, url=item.url + "?keywords=^" + letra + "&page=0")) return itemlist @@ -117,6 +121,7 @@ def series(item): data = httptools.downloadpage(item.url).data lista = jsontools.load(data) + logger.debug(lista) if item.extra == "next": lista_ = lista[25:] else: @@ -171,6 +176,7 @@ def episodios(item): # post = "page=%s&x=34&y=14" % urllib.quote(item.url) # response = httptools.downloadpage(url, post, follow_redirects=False).data # url = scrapertools.find_single_match(response, '') + data2 = scrapertools.find_single_match(data, '(?s)