Merge remote-tracking branch 'alfa-addon/master' into Fixes

This commit is contained in:
unknown
2017-11-15 08:35:09 -03:00
16 changed files with 368 additions and 264 deletions
+9 -3
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.alfa" name="Alfa" version="2.3.6" provider-name="Alfa Addon"> <addon id="plugin.video.alfa" name="Alfa" version="2.3.7" provider-name="Alfa Addon">
<requires> <requires>
<import addon="xbmc.python" version="2.1.0"/> <import addon="xbmc.python" version="2.1.0"/>
<import addon="script.module.libtorrent" optional="true"/> <import addon="script.module.libtorrent" optional="true"/>
@@ -19,8 +19,14 @@
</assets> </assets>
<news>[B]Estos son los cambios para esta versión:[/B] <news>[B]Estos son los cambios para esta versión:[/B]
[COLOR green][B]Canales agregados y arreglos[/B][/COLOR] [COLOR green][B]Canales agregados y arreglos[/B][/COLOR]
» seriesblanco » hdfull » anitoonstv » asialiveaction
» gamovideo ¤ arreglos internos » cinehindi » danimados
» mundiseries » pelisculashndu
» seodiv » serieslan
» crunchyroll » pelisfox
» stormo ¤ arreglos internos
[COLOR green]Gracias a [COLOR yellow]Danielr460, numa00009 y numa00009[/COLOR]
por su colaboración en esta versión[/COLOR]
</news> </news>
<description lang="es">Navega con Kodi por páginas web para ver sus videos de manera fácil.</description> <description lang="es">Navega con Kodi por páginas web para ver sus videos de manera fácil.</description>
<summary lang="en">Browse web pages using Kodi</summary> <summary lang="en">Browse web pages using Kodi</summary>
+1 -1
View File
@@ -127,7 +127,7 @@ def episodios(item):
plot=scrapedplot, url=url, show=show)) plot=scrapedplot, url=url, show=show))
if config.get_videolibrary_support() and len(itemlist) > 0: if config.get_videolibrary_support() and len(itemlist) > 0:
itemlist.append(Item(channel=item.channel, title="Añadir esta serie a la videoteca", url=item.url, itemlist.append(Item(channel=item.channel, title="[COLOR yellow]Añadir esta serie a la videoteca[/COLOR]", url=item.url,
action="add_serie_to_library", extra="episodios", show=show)) action="add_serie_to_library", extra="episodios", show=show))
return itemlist return itemlist
+1 -1
View File
@@ -180,7 +180,7 @@ def findvideos(item):
show = item.show show = item.show
for videoitem in itemlist: for videoitem in itemlist:
videoitem.channel = item.channel videoitem.channel = item.channel
if config.get_videolibrary_support() and len(itemlist) > 0 and item.contentType=="movie": if config.get_videolibrary_support() and len(itemlist) > 0 and item.contentType=="movie" and item.contentChannel!='videolibrary':
itemlist.append( itemlist.append(
Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url, Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url,
action="add_pelicula_to_library", extra="findvideos", contentTitle=show)) action="add_pelicula_to_library", extra="findvideos", contentTitle=show))
+1 -1
View File
@@ -150,7 +150,7 @@ def episodios(item):
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, url=url, show=show)) itemlist.append(Item(channel=item.channel, action="findvideos", title=title, url=url, show=show))
if config.get_videolibrary_support() and len(itemlist) > 0: if config.get_videolibrary_support() and len(itemlist) > 0:
itemlist.append(Item(channel=item.channel, title="Añadir " + show + " a la videoteca", url=item.url, itemlist.append(Item(channel=item.channel, title="[COLOR yellow]Añadir " + show + " a la videoteca[/COLOR]", url=item.url,
action="add_serie_to_library", extra="episodios", show=show)) action="add_serie_to_library", extra="episodios", show=show))
return itemlist return itemlist
+8 -4
View File
@@ -123,7 +123,7 @@ def lista(item):
if next_page_url != "": if next_page_url != "":
item.url = next_page_url item.url = next_page_url
itemlist.append(Item(channel=item.channel, action="lista", title=">> Página siguiente", url=next_page_url, itemlist.append(Item(channel=item.channel, action="lista", title="[COLOR cyan]Página Siguiente >>[/COLOR]", url=next_page_url,
thumbnail='https://s32.postimg.org/4zppxf5j9/siguiente.png')) thumbnail='https://s32.postimg.org/4zppxf5j9/siguiente.png'))
return itemlist return itemlist
@@ -132,14 +132,18 @@ def findvideos(item):
logger.info() logger.info()
itemlist = [] itemlist = []
itemlist1 = []
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
itemlist.extend(servertools.find_video_items(data=data)) itemlist1.extend(servertools.find_video_items(data=data))
patron_show = '<div class="data"><h1 itemprop="name">([^<]+)<\/h1>' patron_show = '<div class="data"><h1 itemprop="name">([^<]+)<\/h1>'
show = scrapertools.find_single_match(data, patron_show) show = scrapertools.find_single_match(data, patron_show)
for videoitem in itemlist: for videoitem in itemlist1:
videoitem.channel = item.channel videoitem.channel = item.channel
if config.get_videolibrary_support() and len(itemlist) > 0: for i in range(len(itemlist1)):
if not 'youtube' in itemlist1[i].title:
itemlist.append(itemlist1[i])
if config.get_videolibrary_support() and len(itemlist) > 0 and item.contentChannel!='videolibrary':
itemlist.append( itemlist.append(
Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url, Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url,
action="add_pelicula_to_library", extra="findvideos", contentTitle=show)) action="add_pelicula_to_library", extra="findvideos", contentTitle=show))
+3 -4
View File
@@ -168,11 +168,11 @@ def episodios(item):
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
data = re.sub(r'\n|\t|\s{2,}', '', data) data = re.sub(r'\n|\t|\s{2,}', '', data)
patron = '<li id="showview_videos.*?href="([^"]+)".*?(?:src|data-thumbnailUrl)="([^"]+)".*?media_id="([^"]+)" ' \ patron = '<li id="showview_videos.*?href="([^"]+)".*?(?:src|data-thumbnailUrl)="([^"]+)".*?media_id="([^"]+)"' \
'style="width: (.*?)%.*?<span class="series-title.*?>\s*(.*?)</span>.*?<p class="short-desc".*?>' \ 'style="width:(.*?)%.*?<span class="series-title.*?>\s*(.*?)</span>.*?<p class="short-desc".*?>' \
'\s*(.*?)</p>.*?description":"([^"]+)"' '\s*(.*?)</p>.*?description":"([^"]+)"'
if data.count('class="season-dropdown') > 1: if data.count('class="season-dropdown') > 1:
bloques = scrapertools.find_multiple_matches(data, 'class="season-dropdown[^"]+" title="([^"]+)"(.*?)</ul>') bloques = scrapertools.find_multiple_matches(data, 'class="season-dropdown[^"]+".*?title="([^"]+)"(.*?)</ul>')
for season, b in bloques: for season, b in bloques:
matches = scrapertools.find_multiple_matches(b, patron) matches = scrapertools.find_multiple_matches(b, patron)
if matches: if matches:
@@ -209,7 +209,6 @@ def episodios(item):
Item(channel=item.channel, action="play", title=title, url=url, thumbnail=thumb, media_id=media_id, Item(channel=item.channel, action="play", title=title, url=url, thumbnail=thumb, media_id=media_id,
server="crunchyroll", text_color=item.text_color, contentTitle=item.contentTitle, server="crunchyroll", text_color=item.text_color, contentTitle=item.contentTitle,
contentSerieName=item.contentSerieName, contentType="tvshow")) contentSerieName=item.contentSerieName, contentType="tvshow"))
return itemlist return itemlist
+25 -8
View File
@@ -32,8 +32,8 @@ def mainlist(item):
thumbnail=thumb_series)) thumbnail=thumb_series))
itemlist.append(Item(channel=item.channel, action="mainpage", title="Más Populares", url=host, itemlist.append(Item(channel=item.channel, action="mainpage", title="Más Populares", url=host,
thumbnail=thumb_series)) thumbnail=thumb_series))
#itemlist.append(Item(channel=item.channel, action="movies", title="Peliculas Animadas", url=host, itemlist.append(Item(channel=item.channel, action="lista", title="Peliculas Animadas", url=host+"peliculas/",
# thumbnail=thumb_series)) thumbnail=thumb_series))
autoplay.show_option(item.channel, itemlist) autoplay.show_option(item.channel, itemlist)
return itemlist return itemlist
@@ -82,7 +82,6 @@ def mainpage(item):
return itemlist return itemlist
return itemlist return itemlist
def lista(item): def lista(item):
logger.info() logger.info()
@@ -90,15 +89,26 @@ def lista(item):
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;", "", data) data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;", "", data)
data_lista = scrapertools.find_single_match(data, '<div class="items">(.+?)<\/div><\/div><div class=.+?>') if item.title=="Peliculas Animadas":
data_lista = scrapertools.find_single_match(data,
'<div id="archive-content" class="animation-2 items">(.*)<a href=\'')
else:
data_lista = scrapertools.find_single_match(data,
'<div class="items">(.+?)<\/div><\/div><div class=.+?>')
patron = '<img src="([^"]+)" alt="([^"]+)">.+?<a href="([^"]+)">.+?<div class="texto">(.+?)<\/div>' patron = '<img src="([^"]+)" alt="([^"]+)">.+?<a href="([^"]+)">.+?<div class="texto">(.+?)<\/div>'
#scrapedthumbnail,#scrapedtitle, #scrapedurl, #scrapedplot #scrapedthumbnail,#scrapedtitle, #scrapedurl, #scrapedplot
matches = scrapertools.find_multiple_matches(data_lista, patron) matches = scrapertools.find_multiple_matches(data_lista, patron)
for scrapedthumbnail,scrapedtitle, scrapedurl, scrapedplot in matches: for scrapedthumbnail,scrapedtitle, scrapedurl, scrapedplot in matches:
itemlist.append( if item.title=="Peliculas Animadas":
item.clone(title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, itemlist.append(
item.clone(title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, contentType="movie",
plot=scrapedplot, action="findvideos", show=scrapedtitle))
else:
itemlist.append(
item.clone(title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail,
context=autoplay.context,plot=scrapedplot, action="episodios", show=scrapedtitle)) context=autoplay.context,plot=scrapedplot, action="episodios", show=scrapedtitle))
tmdb.set_infoLabels(itemlist) if item.title!="Peliculas Animadas":
tmdb.set_infoLabels(itemlist)
return itemlist return itemlist
@@ -124,7 +134,7 @@ def episodios(item):
action="findvideos", title=title, url=scrapedurl, show=show)) action="findvideos", title=title, url=scrapedurl, show=show))
if config.get_videolibrary_support() and len(itemlist) > 0: if config.get_videolibrary_support() and len(itemlist) > 0:
itemlist.append(Item(channel=item.channel, title="[COLOR blue]Añadir " + show + " a la videoteca[/COLOR]", url=item.url, itemlist.append(Item(channel=item.channel, title="[COLOR yellow]Añadir " + show + " a la videoteca[/COLOR]", url=item.url,
action="add_serie_to_library", extra="episodios", show=show)) action="add_serie_to_library", extra="episodios", show=show))
@@ -141,6 +151,7 @@ def findvideos(item):
data = scrapertools.find_single_match(data, data = scrapertools.find_single_match(data,
'<div id="playex" .+?>(.+?)<\/nav><\/div><\/div>') '<div id="playex" .+?>(.+?)<\/nav><\/div><\/div>')
patron='src="(.+?)"' patron='src="(.+?)"'
logger.info("assfxxv "+data)
itemla = scrapertools.find_multiple_matches(data,patron) itemla = scrapertools.find_multiple_matches(data,patron)
for i in range(len(itemla)): for i in range(len(itemla)):
#for url in itemla: #for url in itemla:
@@ -152,6 +163,8 @@ def findvideos(item):
server='okru' server='okru'
else: else:
server='' server=''
if "youtube" in url:
server='youtube'
if "openload" in url: if "openload" in url:
server='openload' server='openload'
if "google" in url: if "google" in url:
@@ -166,6 +179,10 @@ def findvideos(item):
title="NO DISPONIBLE" title="NO DISPONIBLE"
if title!="NO DISPONIBLE": if title!="NO DISPONIBLE":
itemlist.append(item.clone(title=title,url=url, action="play", server=server)) itemlist.append(item.clone(title=title,url=url, action="play", server=server))
if config.get_videolibrary_support() and len(itemlist) > 0 and item.contentType=="movie" and item.contentChannel!='videolibrary':
itemlist.append(
item.clone(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url,
action="add_pelicula_to_library", contentTitle=item.show))
autoplay.start(itemlist, item) autoplay.start(itemlist, item)
return itemlist return itemlist
+10 -5
View File
@@ -136,7 +136,7 @@ def faq(item):
"Puedes intentar subsanar estos problemas en 'Configuración'>'Ajustes de " "Puedes intentar subsanar estos problemas en 'Configuración'>'Ajustes de "
"la videoteca', cambiando el ajuste 'Realizar búsqueda de contenido en' " "la videoteca', cambiando el ajuste 'Realizar búsqueda de contenido en' "
"de 'La carpeta de cada serie' a 'Toda la videoteca'." "de 'La carpeta de cada serie' a 'Toda la videoteca'."
"También puedes acudir a 'http://alfa-addon.ga' en busca de ayuda.") "También puedes acudir a 'http://alfa-addon.com' en busca de ayuda.")
return TextBox("DialogTextViewer.xml", os.getcwd(), "Default", title=title, text=text) return TextBox("DialogTextViewer.xml", os.getcwd(), "Default", title=title, text=text)
@@ -145,7 +145,7 @@ def faq(item):
text = ("Puede ser que la página web del canal no funcione. " text = ("Puede ser que la página web del canal no funcione. "
"En caso de que funcione la página web puede que no seas el primero" "En caso de que funcione la página web puede que no seas el primero"
" en haberlo visto y que el canal este arreglado. " " en haberlo visto y que el canal este arreglado. "
"Puedes mirar en 'alfa-addon.ga' o en el " "Puedes mirar en 'alfa-addon.com' o en el "
"repositorio de GitHub (github.com/alfa-addon/addon). " "repositorio de GitHub (github.com/alfa-addon/addon). "
"Si no encuentras el canal arreglado puedes reportar un " "Si no encuentras el canal arreglado puedes reportar un "
"problema en el foro.") "problema en el foro.")
@@ -198,15 +198,20 @@ def faq(item):
log_name = "kodi.log" log_name = "kodi.log"
ruta = xbmc.translatePath("special://logpath") + log_name ruta = xbmc.translatePath("special://logpath") + log_name
title = "Alfa - FAQ - %s" % item.title[6:] title = "Alfa - FAQ - %s" % item.title[6:]
text = ("Para reportar un problema en 'http://alfa-addon.ga' es necesario:\n" text = ("Para reportar un problema en 'http://alfa-addon.com' es necesario:\n"
" - Versión que usas de Alfa.\n" " - Versión que usas de Alfa.\n"
" - Versión que usas de kodi, mediaserver, etc.\n" " - Versión que usas de kodi, mediaserver, etc.\n"
" - Versión y nombre del sistema operativo que usas.\n"
" - Nombre del skin (en el caso que uses Kodi) y si se " " - Nombre del skin (en el caso que uses Kodi) y si se "
"te ha resuelto el problema al usar el skin por defecto.\n" "te ha resuelto el problema al usar el skin por defecto.\n"
" - Descripción del problema y algún caso de prueba.\n" " - Descripción del problema y algún caso de prueba.\n"
" - Agregar el log en modo detallado, una vez hecho esto, " " - Agregar el log en modo detallado, una vez hecho esto, "
"zipea el log y lo puedes adjuntar en un post.\n\n" "zipea el log y lo puedes adjuntar en un post.\n\n"
"El log se encuentra en: \n\n" "Para activar el log en modo detallado, ingresar a:\n"
" - Configuración.\n"
" - Preferencias.\n"
" - En la pestaña General - Marcar la opción: Generar log detallado.\n\n"
"El archivo de log detallado se encuentra en la siguiente ruta: \n\n"
"%s" % ruta) "%s" % ruta)
return TextBox("DialogTextViewer.xml", os.getcwd(), "Default", title=title, text=text) return TextBox("DialogTextViewer.xml", os.getcwd(), "Default", title=title, text=text)
@@ -214,6 +219,6 @@ def faq(item):
else: else:
platformtools.dialog_ok("Alfa", platformtools.dialog_ok("Alfa",
"Entérate de novedades, consejos u opciones que desconoces en Telegram: @alfa_addon.\n" "Entérate de novedades, consejos u opciones que desconoces en Telegram: @alfa_addon.\n"
"Si tienes problemas o dudas, puedes acudir al Foro: http://alfa-addon.ga") "Si tienes problemas o dudas, puedes acudir al Foro: http://alfa-addon.com")
File diff suppressed because it is too large Load Diff
+1 -1
View File
@@ -76,7 +76,7 @@ def episodios(item):
title=title, url=url, show=show)) title=title, url=url, show=show))
if config.get_videolibrary_support() and len(itemlist) > 0: if config.get_videolibrary_support() and len(itemlist) > 0:
itemlist.append(Item(channel=item.channel, title="Añadir Temporada/Serie a la biblioteca de Kodi", url=item.url, itemlist.append(Item(channel=item.channel, title="[COLOR yellow]Añadir Temporada/Serie a la biblioteca de Kodi[/COLOR]", url=item.url,
action="add_serie_to_library", extra="episodios", show=show)) action="add_serie_to_library", extra="episodios", show=show))
return itemlist return itemlist
+12 -18
View File
@@ -33,15 +33,14 @@ def mainlist(item):
def explorar(item): def explorar(item):
logger.info() logger.info()
itemlist = list() itemlist = list()
url1 = str(item.url) url1 = item.title
data = httptools.downloadpage(host).data data = httptools.downloadpage(host).data
data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;", "", data) data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;", "", data)
# logger.info("loca :"+url1+" aaa"+data) if 'Género' in url1:
if 'genero' in url1: patron = '<div class="d">.+?<h3>Pel.+?neros<\/h3>(.+?)<\/h3>'
patron = '<div class="d"><h3>Pel.+?neros<\/h3>(.+?)<\/h3>' if 'Listado Alfabético' in url1:
if 'alfabetico' in url1: patron = '<\/li><\/ul>.+?<h3>Pel.+?tico<\/h3>(.+?)<\/h3>'
patron = '<\/li><\/ul><h3>Pel.+?tico<\/h3>(.+?)<\/h3>' if 'Año' in url1:
if 'año' in url1:
patron = '<ul class="anio"><li>(.+?)<\/ul>' patron = '<ul class="anio"><li>(.+?)<\/ul>'
data_explorar = scrapertools.find_single_match(data, patron) data_explorar = scrapertools.find_single_match(data, patron)
patron_explorar = '<a href="([^"]+)">([^"]+)<\/a>' patron_explorar = '<a href="([^"]+)">([^"]+)<\/a>'
@@ -79,26 +78,22 @@ def lista(item):
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;", "", data) # Eliminamos tabuladores, dobles espacios saltos de linea, etc... data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;", "", data) # Eliminamos tabuladores, dobles espacios saltos de linea, etc...
url1 = str(item.url) data_mov= scrapertools.find_single_match(data,'<div id="cuerpo"><div class="iz">(.+)<ul class="pag">')
if 'http://www.peliculashindu.com/' in url1:
url1 = url1.replace("http://www.peliculashindu.com/", "")
if url1 != 'estrenos':
data = scrapertools.find_single_match(data, '<div id="cuerpo"><div class="iz">.+>Otras')
# data= scrapertools.find_single_match(data,'<div id="cuerpo"><div class="iz">.+>Otras')
patron = '<a href="([^"]+)"><img src="([^"]+)" alt="([^"]+)"' # scrapedurl, scrapedthumbnail, scrapedtitle patron = '<a href="([^"]+)"><img src="([^"]+)" alt="([^"]+)"' # scrapedurl, scrapedthumbnail, scrapedtitle
matches = scrapertools.find_multiple_matches(data, patron) matches = scrapertools.find_multiple_matches(data_mov, patron)
for scrapedurl, scrapedthumbnail, scrapedtitle in matches: # scrapedthumbnail, scrapedtitle in matches: for scrapedurl, scrapedthumbnail, scrapedtitle in matches: # scrapedthumbnail, scrapedtitle in matches:
itemlist.append(item.clone(title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, action="findvideos", itemlist.append(item.clone(title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, action="findvideos",
show=scrapedtitle)) show=scrapedtitle))
# Paginacion # Paginacion
patron_pag = '<a href="([^"]+)" title="Siguiente .+?">' patron_pag = '<a href="([^"]+)" title="Siguiente .+?">'
paginasig = scrapertools.find_single_match(data, patron_pag) paginasig = scrapertools.find_single_match(data, patron_pag)
logger.info("algoooosadf "+paginasig)
next_page_url = item.url + paginasig next_page_url = host + paginasig
if paginasig != "": if paginasig != "":
item.url = next_page_url item.url = next_page_url
itemlist.append(Item(channel=item.channel, action="lista", title=">> Página siguiente", url=next_page_url, itemlist.append(Item(channel=item.channel, action="lista", title="[COLOR cyan]Página Siguiente >>[/COLOR]", url=next_page_url,
thumbnail='https://s32.postimg.org/4zppxf5j9/siguiente.png')) thumbnail='https://s32.postimg.org/4zppxf5j9/siguiente.png'))
return itemlist return itemlist
@@ -114,10 +109,9 @@ def findvideos(item):
logger.info("holaa" + data) logger.info("holaa" + data)
patron_show = '<strong>Ver Pel.+?a([^<]+) online<\/strong>' patron_show = '<strong>Ver Pel.+?a([^<]+) online<\/strong>'
show = scrapertools.find_single_match(data, patron_show) show = scrapertools.find_single_match(data, patron_show)
logger.info("holaa" + show)
for videoitem in itemlist: for videoitem in itemlist:
videoitem.channel = item.channel videoitem.channel = item.channel
if config.get_videolibrary_support() and len(itemlist) > 0: if config.get_videolibrary_support() and len(itemlist) > 0 and item.contentChannel!='videolibrary':
itemlist.append( itemlist.append(
Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url, Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url,
action="add_pelicula_to_library", extra="findvideos", contentTitle=show)) action="add_pelicula_to_library", extra="findvideos", contentTitle=show))
+37 -8
View File
@@ -8,6 +8,7 @@ from core import httptools
from core import scrapertools from core import scrapertools
from core import servertools from core import servertools
from core.item import Item from core.item import Item
from core import tmdb
from platformcode import config, logger from platformcode import config, logger
IDIOMAS = {'latino': 'Latino'} IDIOMAS = {'latino': 'Latino'}
@@ -35,6 +36,7 @@ def mainlist(item):
url=host, url=host,
thumbnail='https://s27.postimg.org/iahczwgrn/series.png', thumbnail='https://s27.postimg.org/iahczwgrn/series.png',
fanart='https://s27.postimg.org/iahczwgrn/series.png', fanart='https://s27.postimg.org/iahczwgrn/series.png',
page=0
)) ))
autoplay.show_option(item.channel, itemlist) autoplay.show_option(item.channel, itemlist)
return itemlist return itemlist
@@ -49,15 +51,21 @@ def todas(item):
'Serie><span>(.*?)<\/span>' 'Serie><span>(.*?)<\/span>'
matches = re.compile(patron, re.DOTALL).findall(data) matches = re.compile(patron, re.DOTALL).findall(data)
for scrapedurl, scrapedthumbnail, scrapedcalidad, scrapedtitle in matches: # Paginacion
num_items_x_pagina = 30
min = item.page * num_items_x_pagina
min=int(min)-int(item.page)
max = min + num_items_x_pagina - 1
for scrapedurl, scrapedthumbnail, scrapedcalidad, scrapedtitle in matches[min:max]:
url = host + scrapedurl url = host + scrapedurl
calidad = scrapedcalidad calidad = scrapedcalidad
title = scrapedtitle.decode('utf-8') title = scrapedtitle.decode('utf-8')
thumbnail = scrapedthumbnail thumbnail = scrapedthumbnail
fanart = 'https://s32.postimg.org/gh8lhbkb9/seodiv.png' fanart = 'https://s32.postimg.org/gh8lhbkb9/seodiv.png'
if not 'xxxxxx' in scrapedtitle:
itemlist.append( itemlist.append(
Item(channel=item.channel, Item(channel=item.channel,
action="temporadas", action="temporadas",
title=title, url=url, title=title, url=url,
thumbnail=thumbnail, thumbnail=thumbnail,
@@ -67,7 +75,13 @@ def todas(item):
language=language, language=language,
context=autoplay.context context=autoplay.context
)) ))
tmdb.set_infoLabels(itemlist)
if len(itemlist)>28:
itemlist.append(
Item(channel=item.channel,
title="[COLOR cyan]Página Siguiente >>[/COLOR]",
url=item.url, action="todas",
page=item.page + 1))
return itemlist return itemlist
@@ -222,16 +236,31 @@ def episodiosxtemp(item):
def findvideos(item): def findvideos(item):
logger.info() logger.info()
itemlist = [] itemlist = []
lang=[]
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
video_items = servertools.find_video_items(item) video_items = servertools.find_video_items(item)
data = re.sub(r'"|\n|\r|\t|&nbsp;|<br>|\s{2,}', "", data)
language_items=scrapertools.find_single_match(data,
'<ul class=tabs-sidebar-ul>(.+?)<\/ul>')
matches=scrapertools.find_multiple_matches(language_items,
'<li><a href=#ts(.+?)><span>(.+?)<\/span><\/a><\/li>')
for idl,scrapedlang in matches:
if int(idl)<5 and int(idl)!=1:
lang.append(scrapedlang)
i=0
logger.info(lang)
for videoitem in video_items: for videoitem in video_items:
videoitem.thumbnail = servertools.guess_server_thumbnail(videoitem.server) videoitem.thumbnail = servertools.guess_server_thumbnail(videoitem.server)
videoitem.language = scrapertools.find_single_match(data, '<span class="f-info-title">Idioma:<\/span>\s*<span ' #videoitem.language = scrapertools.find_single_match(data, '<span class="f-info-title">Idioma:<\/span>\s*<span '
'class="f-info-text">(.*?)<\/span>') # 'class="f-info-text">(.*?)<\/span>')
if len(lang)<=i:
videoitem.language=lang[i]
else:
videoitem.language=lang[len(lang)-1]
videoitem.title = item.contentSerieName + ' (' + videoitem.server + ') (' + videoitem.language + ')' videoitem.title = item.contentSerieName + ' (' + videoitem.server + ') (' + videoitem.language + ')'
videoitem.quality = 'default' videoitem.quality = 'default'
videoitem.context = item.context videoitem.context = item.context
i=i+1
itemlist.append(videoitem) itemlist.append(videoitem)
# Requerido para FilterTools # Requerido para FilterTools
+7 -5
View File
@@ -78,10 +78,10 @@ def lista(item):
url="https://serieslan.com/pag-"+str(a) url="https://serieslan.com/pag-"+str(a)
if b>10: if b>10:
itemlist.append( itemlist.append(
Item(channel=item.channel, title="Página Siguiente >>", url=url, action="lista", page=0)) Item(channel=item.channel, title="[COLOR cyan]Página Siguiente >>[/COLOR]", url=url, action="lista", page=0))
else: else:
itemlist.append( itemlist.append(
Item(channel=item.channel, title="Página Siguiente >>", url=item.url, action="lista", page=item.page + 1)) Item(channel=item.channel, title="[COLOR cyan]Página Siguiente >>[/COLOR]", url=item.url, action="lista", page=item.page + 1))
tmdb.set_infoLabels(itemlist) tmdb.set_infoLabels(itemlist)
return itemlist return itemlist
@@ -92,7 +92,6 @@ def episodios(item):
itemlist = [] itemlist = []
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
logger.debug("info %s " % data)
# obtener el numero total de episodios # obtener el numero total de episodios
total_episode = 0 total_episode = 0
@@ -185,7 +184,6 @@ def findvideos(item):
data = eval(data) data = eval(data)
if type(data) == list: if type(data) == list:
logger.debug("inside")
video_url = url_server % (txc(ide, base64.decodestring(data[2]))) video_url = url_server % (txc(ide, base64.decodestring(data[2])))
server = "openload" server = "openload"
if " SUB" in item.title: if " SUB" in item.title:
@@ -195,7 +193,11 @@ def findvideos(item):
else: else:
lang = "Latino" lang = "Latino"
title = "Enlace encontrado en " + server + " [" + lang + "]" title = "Enlace encontrado en " + server + " [" + lang + "]"
itemlist.append(Item(channel=item.channel, action="play", title=title, show=show, url=video_url, plot=item.plot, if item.contentChannel=='videolibrary':
itemlist.append(item.clone(channel=item.channel, action="play", url=video_url,
thumbnail=thumbnail, server=server, folder=False))
else:
itemlist.append(Item(channel=item.channel, action="play", title=title, show=show, url=video_url, plot=item.plot,
thumbnail=thumbnail, server=server, folder=False)) thumbnail=thumbnail, server=server, folder=False))
autoplay.start(itemlist, item) autoplay.start(itemlist, item)
+1
View File
@@ -40,6 +40,7 @@
</category> </category>
<category label="Opciones Visuales"> <category label="Opciones Visuales">
<setting id="icon_set" type="labelenum" label="Set de iconos" values="default|dark" default="default"/> <setting id="icon_set" type="labelenum" label="Set de iconos" values="default|dark" default="default"/>
<setting id="infoplus_set" type="labelenum" label="Opción visual Infoplus" values="Sin animación|Con animación" default="Sin animación"/>
</category> </category>
<category label="Otros"> <category label="Otros">
<setting label="Info de películas/series en menú contextual" type="lsep"/> <setting label="Info de películas/series en menú contextual" type="lsep"/>
+1 -1
View File
@@ -37,7 +37,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
cgi_counter = cgi_counter.replace("%0A","").replace("%22","") cgi_counter = cgi_counter.replace("%0A","").replace("%22","")
playnow = scrapertools.find_single_match(data, 'https://www.flashx.tv/dl[^"]+') playnow = scrapertools.find_single_match(data, 'https://www.flashx.tv/dl[^"]+')
# Para obtener el f y el fxfx # Para obtener el f y el fxfx
js_fxfx = "https://www." + scrapertools.find_single_match(data.replace("//","/"), """(?is)(flashx.tv/js/code.js.*?[^(?:'|")]+)""") js_fxfx = "https://www." + scrapertools.find_single_match(data.replace("//","/"), """(?is)(flashx.tv/jss/coder.js.*?[^(?:'|")]+)""")
data_fxfx = httptools.downloadpage(js_fxfx).data data_fxfx = httptools.downloadpage(js_fxfx).data
mfxfx = scrapertools.find_single_match(data_fxfx, 'get.*?({.*?})').replace("'","").replace(" ","") mfxfx = scrapertools.find_single_match(data_fxfx, 'get.*?({.*?})').replace("'","").replace(" ","")
matches = scrapertools.find_multiple_matches(mfxfx, '(\w+):(\w+)') matches = scrapertools.find_multiple_matches(mfxfx, '(\w+):(\w+)')
+4 -2
View File
@@ -8,9 +8,11 @@ from platformcode import logger
def test_video_exists(page_url): def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url) logger.info("(page_url='%s')" % page_url)
data = httptools.downloadpage(page_url).data response = httptools.downloadpage(page_url)
if "video_error.mp4" in data: if "video_error.mp4" in response.data:
return False, "[Stormo] El archivo no existe o ha sido borrado" return False, "[Stormo] El archivo no existe o ha sido borrado"
if response.code == 451:
return False, "[Stormo] El archivo ha sido borrado por problemas legales."
return True, "" return True, ""