Merge pull request #6 from Intel11/patch-2

Actualizado mundoflv, cinefox, flashx
This commit is contained in:
Alfa
2017-08-01 14:53:38 -04:00
committed by GitHub
7 changed files with 98 additions and 104 deletions

View File

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

View File

@@ -201,9 +201,8 @@ def peliculas(item):
logger.info()
itemlist = []
data = httptools.downloadpage(item.url).data
patron = '<div class="home_post_cont.*? post_box">.*?<a href="([^"]+)".*?src="([^"]+)".*?title="(.*?) \((' \
'.*?)\)".*?p&gt;([^&]+)&lt;'
patron = '<div class="home_post_cont.*? post_box">.*?<a href="(.*?)".*?'
patron += 'src="(.*?)".*?title="(.*?) \((.*?)\).*?".*?p&gt;(.*?)&lt'
matches = re.compile(patron, re.DOTALL).findall(data)
for scrapedurl, scrapedthumbnail, scrapedtitle, scrapedyear, scrapedplot in matches:
@@ -283,65 +282,45 @@ def findvideos(item):
itemlist = []
duplicados = []
data = httptools.downloadpage(item.url).data
patron = 'dec\("([^"]+)"\)\+dec\("([^"]+)"\)'
patron = 'target="_blank".*? service=".*?" data="(.*?)"><li>(.*?)<\/li>'
matches = re.compile(patron, re.DOTALL).findall(data)
recomendados = ["uptobox", "thevideos", "nowvideo", "pcloud", "directo"]
for scrapedurl, scrapedtitle in matches:
if dec(scrapedurl) in servidor:
server = servidor[dec(scrapedurl)]
title = "Ver " + item.contentTitle + " en " + servidor[dec(scrapedurl)].upper()
if 'yourupload' in dec(scrapedurl):
url = dec(scrapedurl).replace('watch', 'embed') + dec(scrapedtitle)
elif 'gdredirect' in dec(scrapedurl):
url = ''
url_list = []
url_list += get_urls(item, dec(scrapedtitle))
server_url = {'YourUpload':'https://www.yourupload.com/embed/',
'Openload':'https://openload.co/embed/',
'TVM':'https://thevideo.me/embed-',
'Trailer':'',
'BitTorrent':'',
'Mega':'',
'MediaFire':''}
for video in url_list:
new_title = title + ' (' + video['label'] + ')'
itemlist.append(
Item(channel=item.channel,
action="play",
title=new_title,
fulltitle=item.title,
url=video['file'],
language=IDIOMAS[item.language],
thumbnail=item.thumbnail,
plot=item.plot,
quality=video['label'],
server='directo'
))
duplicados.append(title)
for video_cod, server_id in matches:
if server_id not in ['BitTorrent', 'Mega', 'MediaFire', 'Trailer','']:
video_id = dec(video_cod)
if server_id in server_url:
server = server_id.lower()
thumbnail = servertools.guess_server_thumbnail(server_id)
if server_id == 'TVM':
server = 'thevideo.me'
url= server_url[server_id]+video_id+'.html'
else:
url = server_url[server_id]+video_id
title = item.contentTitle +' (%s)'%server
quality = 'default'
if 'youtube' in dec(scrapedurl):
title = '[COLOR orange]Trailer en Youtube[/COLOR]'
url = dec(scrapedurl) + dec(scrapedtitle)
if (servidor[dec(scrapedurl)]) in recomendados:
title = title + "[COLOR limegreen] [I] (Recomedado) [/I] [/COLOR]"
thumbnail = servertools.guess_server_thumbnail(servidor[dec(scrapedurl)])
plot = ""
if title not in duplicados and url != '':
new_item = Item(channel=item.channel,
action="play",
title=title,
fulltitle=item.title,
url=url,
thumbnail=thumbnail,
plot=item.plot,
extra=item.thumbnail,
language=IDIOMAS[item.language],
quality='default',
server=server.lower()
)
if 'Trailer' in new_item.title:
trailer_item = new_item
else:
itemlist.append(new_item)
duplicados.append(title)
if server_id not in ['BitTorrent', 'Mega', 'MediaFire', 'Trailer']:
if url not in duplicados:
itemlist.append(item.clone(action = 'play',
title=title,
fulltitle=item.contentTitle,
url=url,
language=IDIOMAS[item.language],
thumbnail = thumbnail,
quality=quality,
server = server
))
duplicados.append(url)
# Requerido para FilterTools
@@ -351,7 +330,7 @@ def findvideos(item):
autoplay.start(itemlist, item)
itemlist.append(trailer_item)
#itemlist.append(trailer_item)
if config.get_videolibrary_support() and len(itemlist) > 0 and item.extra != 'findvideos':
itemlist.append(
Item(channel=item.channel,

View File

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

View File

@@ -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 += '.*?</i>([^<]+)'
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 = '<div class="available-source".*?data-url="([^"]+)".*?class="language.*?title="([^"]+)"' \
'.*?class="source-name.*?>\s*([^<]+)<.*?<span class="quality-text">([^<]+)<'
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)

View File

@@ -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 + ')'

View File

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

View File

@@ -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, "<span id='xxc2'>(\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+</script>")
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":