diff --git a/plugin.video.alfa/channels/cinecalidad.json b/plugin.video.alfa/channels/cinecalidad.json index 3998e737..06fc11b7 100755 --- a/plugin.video.alfa/channels/cinecalidad.json +++ b/plugin.video.alfa/channels/cinecalidad.json @@ -11,6 +11,10 @@ "banner": "https://s32.postimg.org/kihkdpx1x/banner_cinecalidad.png", "version": 1, "changes": [ + { + "date": "01/08/2017", + "description": "Cambio de estructura" + }, { "date": "24/06/2017", "description": "Cambios para autoplay" @@ -72,4 +76,4 @@ "visible": true } ] -} \ No newline at end of file +} diff --git a/plugin.video.alfa/channels/cinecalidad.py b/plugin.video.alfa/channels/cinecalidad.py index 95dba25a..e683781b 100755 --- a/plugin.video.alfa/channels/cinecalidad.py +++ b/plugin.video.alfa/channels/cinecalidad.py @@ -201,9 +201,8 @@ def peliculas(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data - - patron = '
.*? 0 and item.extra != 'findvideos': itemlist.append( Item(channel=item.channel, diff --git a/plugin.video.alfa/channels/cinefox.json b/plugin.video.alfa/channels/cinefox.json index 25637dfa..8a5c10bd 100755 --- a/plugin.video.alfa/channels/cinefox.json +++ b/plugin.video.alfa/channels/cinefox.json @@ -8,6 +8,10 @@ "thumbnail": "cinefox.png", "banner": "cinefox.png", "changes": [ + { + "date": "01/08/2017", + "description": "Agregado servidor gvideo" + }, { "date": "05/04/2017", "description": "Cambio en los servidores" @@ -154,4 +158,4 @@ "visible": false } ] -} \ No newline at end of file +} diff --git a/plugin.video.alfa/channels/cinefox.py b/plugin.video.alfa/channels/cinefox.py index 770b75a8..4e3c11ef 100755 --- a/plugin.video.alfa/channels/cinefox.py +++ b/plugin.video.alfa/channels/cinefox.py @@ -33,17 +33,17 @@ def mainlist(item): itemlist = [] itemlist.append(item.clone(action="seccion_peliculas", title="Películas", fanart="http://i.imgur.com/PjJaW8o.png", - url="http://www.cinefox.tv/catalogue?type=peliculas")) + url= host + "/catalogue?type=peliculas")) # Seccion series itemlist.append(item.clone(action="seccion_series", title="Series", - url="http://www.cinefox.tv/ultimos-capitulos", fanart="http://i.imgur.com/9loVksV.png")) + url= host + "/ultimos-capitulos", fanart="http://i.imgur.com/9loVksV.png")) itemlist.append(item.clone(action="peliculas", title="Documentales", fanart="http://i.imgur.com/Q7fsFI6.png", - url="http://www.cinefox.tv/catalogue?type=peliculas&genre=documental")) + url= host + "/catalogue?type=peliculas&genre=documental")) if config.get_setting("adult_mode") != 0: itemlist.append(item.clone(action="peliculas", title="Sección Adultos +18", - url="http://www.cinefox.tv/catalogue?type=adultos", + url= host + "/catalogue?type=adultos", fanart="http://i.imgur.com/kIvE1Zh.png")) itemlist.append(item.clone(title="Buscar...", action="local_search")) @@ -62,7 +62,7 @@ def configuracion(item): def search(item, texto): logger.info() texto = texto.replace(" ", "+") - item.url = "http://www.cinefox.tv/search?q=%s" % texto + item.url = host + "/search?q=%s" % texto try: return busqueda(item) # Se captura la excepción, para no interrumpir al buscador global si un canal falla @@ -244,7 +244,7 @@ def filtrado(item, values): item.valores = "Filtro: " + ", ".join(sorted(strings)) item.strings = "" - item.url = "http://www.cinefox.tv/catalogue?type=%s&genre=%s&release=%s&quality=%s&language=%s&order=%s" % \ + item.url = host + "/catalogue?type=%s&genre=%s&release=%s&quality=%s&language=%s&order=%s" % \ (item.extra, genero, year, calidad, idioma, order) return globals()[item.extra](item) @@ -255,11 +255,11 @@ def seccion_peliculas(item): itemlist = [] # Seccion peliculas itemlist.append(item.clone(action="peliculas", title="Novedades", fanart="http://i.imgur.com/PjJaW8o.png", - url="http://www.cinefox.tv/catalogue?type=peliculas")) + url= host + "/catalogue?type=peliculas")) itemlist.append(item.clone(action="peliculas", title="Estrenos", - url="http://www.cinefox.tv/estrenos-de-cine", fanart="http://i.imgur.com/PjJaW8o.png")) + url= host + "/estrenos-de-cine", fanart="http://i.imgur.com/PjJaW8o.png")) itemlist.append(item.clone(action="filtro", title="Filtrar películas", extra="peliculas", - url="http://www.cinefox.tv/catalogue?type=peliculas", + url= host + "/catalogue?type=peliculas", fanart="http://i.imgur.com/PjJaW8o.png")) # Filtros personalizados para peliculas for i in range(1, 4): @@ -269,25 +269,24 @@ def seccion_peliculas(item): new_item = item.clone() new_item.values = filtros itemlist.append(new_item.clone(action="filtro", title=title, fanart="http://i.imgur.com/PjJaW8o.png", - url="http://www.cinefox.tv/catalogue?type=peliculas", extra="peliculas")) + url= host + "/catalogue?type=peliculas", extra="peliculas")) itemlist.append(item.clone(action="mapa", title="Mapa de películas", extra="peliculas", - url="http://www.cinefox.tv/mapa-de-peliculas", + url= host + "/mapa-de-peliculas", fanart="http://i.imgur.com/PjJaW8o.png")) return itemlist - def seccion_series(item): logger.info() itemlist = [] # Seccion series itemlist.append(item.clone(action="ultimos", title="Últimos capítulos", - url="http://www.cinefox.tv/ultimos-capitulos", fanart="http://i.imgur.com/9loVksV.png")) + url= host + "/ultimos-capitulos", fanart="http://i.imgur.com/9loVksV.png")) itemlist.append(item.clone(action="series", title="Series recientes", - url="http://www.cinefox.tv/catalogue?type=series", + url= host + "/catalogue?type=series", fanart="http://i.imgur.com/9loVksV.png")) itemlist.append(item.clone(action="filtro", title="Filtrar series", extra="series", - url="http://www.cinefox.tv/catalogue?type=series", + url=host + "/catalogue?type=series", fanart="http://i.imgur.com/9loVksV.png")) # Filtros personalizados para series for i in range(1, 4): @@ -297,9 +296,9 @@ def seccion_series(item): new_item = item.clone() new_item.values = filtros itemlist.append(new_item.clone(action="filtro", title=title, fanart="http://i.imgur.com/9loVksV.png", - url="http://www.cinefox.tv/catalogue?type=series", extra="series")) + url= host + "/catalogue?type=series", extra="series")) itemlist.append(item.clone(action="mapa", title="Mapa de series", extra="series", - url="http://www.cinefox.tv/mapa-de-series", + url= host + "/mapa-de-series", fanart="http://i.imgur.com/9loVksV.png")) return itemlist @@ -322,7 +321,6 @@ def mapa(item): def peliculas(item): logger.info() - itemlist = [] if "valores" in item and item.valores: itemlist.append(item.clone(action="", title=item.valores, text_color=color4)) @@ -478,7 +476,7 @@ def menu_info(item): item.infoLabels["plot"] = scrapertools.htmlclean(sinopsis) id = scrapertools.find_single_match(item.url, '/(\d+)/') - data_trailer = httptools.downloadpage("http://www.cinefox.tv/media/trailer?idm=%s&mediaType=1" % id).data + data_trailer = httptools.downloadpage( host + "/media/trailer?idm=%s&mediaType=1" % id).data trailer_url = jsontools.load(data_trailer)["video"]["url"] if trailer_url != "": item.infoLabels["trailer"] = trailer_url @@ -541,15 +539,14 @@ def episodios(item): itemlist.reverse() if "episodios" not in item.extra and not item.path: id = scrapertools.find_single_match(item.url, '/(\d+)/') - data_trailer = httptools.downloadpage("http://www.cinefox.tv/media/trailer?idm=%s&mediaType=1" % id).data + data_trailer = httptools.downloadpage( host + "/media/trailer?idm=%s&mediaType=1" % id).data item.infoLabels["trailer"] = jsontools.load(data_trailer)["video"]["url"] itemlist.append(item.clone(channel="trailertools", action="buscartrailer", title="Buscar Tráiler", text_color="magenta")) if config.get_videolibrary_support(): itemlist.append(Item(channel=item.channel, action="add_serie_to_library", text_color=color5, title="Añadir serie a la videoteca", show=item.show, thumbnail=item.thumbnail, - url=item.url, fulltitle=item.fulltitle, fanart=item.fanart, - extra="episodios###episodios", + url=item.url, fulltitle=item.fulltitle, fanart=item.fanart, extra="episodios###episodios", contentTitle=item.fulltitle)) return itemlist @@ -630,13 +627,13 @@ def findvideos(item): extra = item.extra if "|" in item.extra: extra = item.extra[:-1] - url = "http://www.cinefox.tv/sources/list?id=%s&type=%s&order=%s" % (id, extra, "streaming") + url = host + "/sources/list?id=%s&type=%s&order=%s" % (id, extra, "streaming") itemlist.extend(get_enlaces(item, url, "Online")) - url = "http://www.cinefox.tv/sources/list?id=%s&type=%s&order=%s" % (id, extra, "download") + url = host + "/sources/list?id=%s&type=%s&order=%s" % (id, extra, "download") itemlist.extend(get_enlaces(item, url, "de Descarga")) if extra == "media": - data_trailer = httptools.downloadpage("http://www.cinefox.tv/media/trailer?idm=%s&mediaType=1" % id).data + data_trailer = httptools.downloadpage( host + "/media/trailer?idm=%s&mediaType=1" % id).data trailer_url = jsontools.load(data_trailer)["video"]["url"] if trailer_url != "": item.infoLabels["trailer"] = trailer_url @@ -651,7 +648,7 @@ def findvideos(item): fanart=item.fanart, fulltitle=item.fulltitle, extra="media|")) else: - url = "http://www.cinefox.tv/sources/list?id=%s&type=%s&order=%s" % (id, item.extra, item.type) + url = host + "/sources/list?id=%s&type=%s&order=%s" % (id, item.extra, item.type) type = item.type.replace("streaming", "Online").replace("download", "de Descarga") itemlist.extend(get_enlaces(item, url, type)) @@ -661,8 +658,22 @@ def findvideos(item): def get_enlaces(item, url, type): itemlist = [] itemlist.append(item.clone(action="", title="Enlaces %s" % type, text_color=color1)) - data = httptools.downloadpage(url, add_referer=True).data + if type == "Online": + gg = httptools.downloadpage(item.url, add_referer=True).data + bloque = scrapertools.find_single_match(gg, 'class="tab".*?button show') + patron = 'a href="#([^"]+)' + patron += '.*?language-ES-medium ([^"]+)' + patron += '.*?([^<]+)' + matches = scrapertools.find_multiple_matches(bloque, patron) + for scrapedopcion, scrapedlanguage, scrapedcalidad in matches: + google_url = scrapertools.find_single_match(bloque, 'id="%s.*?src="([^"]+)' %scrapedopcion) + if "medium-es" in scrapedlanguage: language = "Castellano" + if "medium-en" in scrapedlanguage: language = "Ingles" + if "medium-vs" in scrapedlanguage: language = "VOSE" + if "medium-la" in scrapedlanguage: language = "Latino" + titulo = " [%s/%s]" %(language, scrapedcalidad.strip()) + itemlist.append(item.clone(action="play", url=google_url, title=" Ver en Gvideo"+titulo, text_color=color2, extra="", server = "gvideo")) patron = '
([^<]+)<' matches = scrapertools.find_multiple_matches(data, patron) @@ -679,18 +690,15 @@ def get_enlaces(item, url, type): if len(itemlist) == 1: itemlist.append(item.clone(title=" No hay enlaces disponibles", action="", text_color=color2)) - return itemlist def play(item): logger.info() itemlist = [] - - if item.extra != "": + if item.extra != "" and "google" not in item.url: post = "id=%s" % item.extra - data = httptools.downloadpage("http://www.cinefox.tv/goto/", post=post, add_referer=True).data - + data = httptools.downloadpage(host + "/goto/", post=post, add_referer=True).data item.url = scrapertools.find_single_match(data, 'document.location\s*=\s*"([^"]+)"') url = item.url.replace("http://miracine.tv/n/?etu=", "http://hqq.tv/player/embed_player.php?vid=") @@ -700,7 +708,6 @@ def play(item): else: enlaces = servertools.findvideos(url)[0] itemlist.append(item.clone(url=enlaces[1], server=enlaces[2])) - return itemlist @@ -710,7 +717,7 @@ def newest(categoria): item = Item() try: if categoria == "peliculas": - item.url = "http://www.cinefox.tv/catalogue?type=peliculas" + item.url = host + "/catalogue?type=peliculas" item.action = "peliculas" itemlist = peliculas(item) @@ -718,7 +725,7 @@ def newest(categoria): itemlist.pop() if categoria == "series": - item.url = "http://www.cinefox.tv/ultimos-capitulos" + item.url = host + "/ultimos-capitulos" item.action = "ultimos" itemlist = ultimos(item) @@ -740,6 +747,6 @@ def select_page(item): dialog = xbmcgui.Dialog() number = dialog.numeric(0, "Introduce el número de página") if number != "": - item.url = re.sub(r'page=(\d+)', "page=" + number, item.url) + item.url = re.sub(r'page=(\d+)', "page="+number, item.url) return peliculas(item) diff --git a/plugin.video.alfa/channels/mundoflv.py b/plugin.video.alfa/channels/mundoflv.py index 1d237b9d..29ec8ee1 100755 --- a/plugin.video.alfa/channels/mundoflv.py +++ b/plugin.video.alfa/channels/mundoflv.py @@ -606,6 +606,8 @@ def findvideos(item): url = scrapedurl idioma = audio[scrapedidioma] server = scrapedserver.strip(' ') + if server == 'streamin': + server = 'streaminto' title = item.contentSerieName + ' ' + str(item.contentSeasonNumber) + 'x' + str( item.contentEpisodeNumber) + ' ' + idioma + ' (' + server + ')' diff --git a/plugin.video.alfa/servers/flashx.json b/plugin.video.alfa/servers/flashx.json index eba19c27..f06b9e01 100755 --- a/plugin.video.alfa/servers/flashx.json +++ b/plugin.video.alfa/servers/flashx.json @@ -1,6 +1,9 @@ { "active": true, "changes": [ + { + "date": "01/08/2017", + "description": "Actualizado get_video_url" { "date": "21/03/2017", "description": "Mejorado el test de video y uso de httptools" @@ -50,4 +53,4 @@ ], "thumbnail": "server_flashx.png", "version": 1 -} \ No newline at end of file +} diff --git a/plugin.video.alfa/servers/flashx.py b/plugin.video.alfa/servers/flashx.py index 82051c6d..5a16b2fe 100755 --- a/plugin.video.alfa/servers/flashx.py +++ b/plugin.video.alfa/servers/flashx.py @@ -68,19 +68,14 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= fname = scrapertools.find_single_match(data, 'name="fname" value="([^"]+)"') hash_f = scrapertools.find_single_match(data, 'name="hash" value="([^"]+)"') post = 'op=download1&usr_login=&id=%s&fname=%s&referer=&hash=%s&imhuman=Proceed+to+video' % ( - flashx_id, urllib.quote(fname), hash_f) + flashx_id, urllib.quote(fname), hash_f) wait_time = scrapertools.find_single_match(data, "(\d+)") file_id = scrapertools.find_single_match(data, "'file_id', '([^']+)'") - coding_url = 'https://files.fx.fastcontentdelivery.com/jquery2.js?fx=%s' % base64.encodestring(file_id) - headers['Host'] = "files.fx.fastcontentdelivery.com" headers['Referer'] = "https://www.flashx.tv/" headers['Accept'] = "*/*" - coding = httptools.downloadpage(coding_url, headers=headers, replace_headers=True).data - coding_url = 'https://www.flashx.tv/counter.cgi?fx=%s' % base64.encodestring(file_id) headers['Host'] = "www.flashx.tv" - coding = httptools.downloadpage(coding_url, headers=headers, replace_headers=True).data coding_url = 'https://www.flashx.tv/flashx.php?fxfx=3' headers['X-Requested-With'] = 'XMLHttpRequest' @@ -94,7 +89,6 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= headers.pop('X-Requested-With') headers['Content-Type'] = 'application/x-www-form-urlencoded' data = httptools.downloadpage('https://www.flashx.tv/dl?playthis', post, headers, replace_headers=True).data - matches = scrapertools.find_multiple_matches(data, "(eval\(function\(p,a,c,k.*?)\s+") for match in matches: if match.startswith("eval"): @@ -114,7 +108,8 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= # Extrae la URL # {file:"http://f11-play.flashx.tv/luq4gfc7gxixexzw6v4lhz4xqslgqmqku7gxjf4bk43u4qvwzsadrjsozxoa/video1.mp4"} video_urls = [] - media_urls = scrapertools.find_multiple_matches(match, '\{file\:"([^"]+)",label:"([^"]+)"') + match = match.replace("\\","").replace('\"',"\'") + media_urls = scrapertools.find_multiple_matches(match, "{src:'([^']+)'.*?,label:'([^']+)'") subtitle = "" for media_url, label in media_urls: if media_url.endswith(".srt") and label == "Spanish":