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

This commit is contained in:
unknown
2017-10-04 08:14:33 -03:00
45 changed files with 633 additions and 198 deletions
+7 -8
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.1.2" provider-name="Alfa Addon"> <addon id="plugin.video.alfa" name="Alfa" version="2.1.3" 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,13 +19,12 @@
</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]
» cinecalidad » estadepelis » repelis » allcalidad
» datoporn » seriesyonkis » cinetux » allpeliculas
» allcalidad » allpeliculas » hdfull » zonatorrent
» cartoonlatino » pasateatorrent ¤ arreglos internos
» vidz7 » zonatorrent
» gvideo » okru [COLOR green]Gracias a [COLOR yellow]prpeaprendiz[/COLOR] por su colaboración en esta versión[/COLOR]
» openload ¤ arreglos internos
</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>
@@ -18,6 +18,14 @@
"direct" "direct"
], ],
"settings": [ "settings": [
{
"id": "modo_grafico",
"type": "bool",
"label": "Buscar información extra",
"default": true,
"enabled": true,
"visible": true
},
{ {
"id": "include_in_global_search", "id": "include_in_global_search",
"type": "bool", "type": "bool",
@@ -41,6 +49,14 @@
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
},
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - terror",
"default": true,
"enabled": true,
"visible": true
} }
] ]
} }
+27 -17
View File
@@ -3,11 +3,20 @@
from core import httptools from core import httptools
from core import scrapertools from core import scrapertools
from core import servertools from core import servertools
from core import tmdb
from core.item import Item from core.item import Item
from platformcode import config, logger from platformcode import config, logger
__channel__='allcalidad'
host = "http://allcalidad.com/" host = "http://allcalidad.com/"
try:
__modo_grafico__ = config.get_setting('modo_grafico', __channel__)
except:
__modo_grafico__ = True
def mainlist(item): def mainlist(item):
logger.info() logger.info()
itemlist = [] itemlist = []
@@ -28,6 +37,8 @@ def newest(categoria):
item.url = host item.url = host
elif categoria == 'infantiles': elif categoria == 'infantiles':
item.url = host + 'category/animacion/' item.url = host + 'category/animacion/'
elif categoria == 'terror':
item.url = host + 'category/torror/'
itemlist = peliculas(item) itemlist = peliculas(item)
if "Pagina" in itemlist[-1].title: if "Pagina" in itemlist[-1].title:
itemlist.pop() itemlist.pop()
@@ -84,20 +95,21 @@ def peliculas(item):
year = scrapertools.find_single_match(varios, 'Año.*?kinopoisk">([^<]+)') year = scrapertools.find_single_match(varios, 'Año.*?kinopoisk">([^<]+)')
year = scrapertools.find_single_match(year, '[0-9]{4}') year = scrapertools.find_single_match(year, '[0-9]{4}')
mtitulo = titulo + " (" + idioma + ") (" + year + ")" mtitulo = titulo + " (" + idioma + ") (" + year + ")"
new_item = Item(channel = item.channel,
action = "findvideos",
title = mtitulo,
fulltitle = titulo,
thumbnail = thumbnail,
url = url,
contentTitle = titulo,
contentType="movie",
language = idioma
)
if year: if year:
new_item.infoLabels['year'] = int(year) item.infoLabels['year'] = int(year)
itemlist.append(new_item) itemlist.append(item.clone(channel = item.channel,
action = "findvideos",
title = mtitulo,
fulltitle = titulo,
thumbnail = thumbnail,
url = url,
contentTitle = titulo,
contentType="movie",
language = idioma
))
tmdb.set_infoLabels(itemlist, True)
url_pagina = scrapertools.find_single_match(data, 'next" href="([^"]+)') url_pagina = scrapertools.find_single_match(data, 'next" href="([^"]+)')
tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__)
if url_pagina != "": if url_pagina != "":
pagina = "Pagina: " + scrapertools.find_single_match(url_pagina, "page/([0-9]+)") pagina = "Pagina: " + scrapertools.find_single_match(url_pagina, "page/([0-9]+)")
itemlist.append(Item(channel = item.channel, action = "peliculas", title = pagina, url = url_pagina)) itemlist.append(Item(channel = item.channel, action = "peliculas", title = pagina, url = url_pagina))
@@ -121,13 +133,12 @@ def findvideos(item):
elif "vimeo" in url: elif "vimeo" in url:
url += "|" + "http://www.allcalidad.com" url += "|" + "http://www.allcalidad.com"
itemlist.append( itemlist.append(
Item(channel = item.channel, item.clone(channel = item.channel,
action = "play", action = "play",
title = titulo, title = titulo,
fulltitle = item.fulltitle,
thumbnail = item.thumbnail,
url = url url = url
)) ))
tmdb.set_infoLabels(itemlist, True)
itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize()) itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize())
if itemlist: if itemlist:
itemlist.append(Item(channel = item.channel)) itemlist.append(Item(channel = item.channel))
@@ -137,8 +148,7 @@ def findvideos(item):
if item.extra != "library": if item.extra != "library":
if config.get_videolibrary_support(): if config.get_videolibrary_support():
itemlist.append(Item(channel=item.channel, title="Añadir a la videoteca", text_color="green", itemlist.append(Item(channel=item.channel, title="Añadir a la videoteca", text_color="green",
filtro=True, action="add_pelicula_to_library", url=item.url, thumbnail = item.thumbnail, action="add_pelicula_to_library", url=item.url, thumbnail = item.thumbnail
infoLabels={'title': item.fulltitle}, fulltitle=item.fulltitle
)) ))
return itemlist return itemlist
+19 -15
View File
@@ -65,27 +65,33 @@ def findvideos(item):
patron += '>([^<]+)' patron += '>([^<]+)'
matches = scrapertools.find_multiple_matches(data, patron) matches = scrapertools.find_multiple_matches(data, patron)
for url, calidad in matches: for url, calidad in matches:
itemlist.append(Item( itemlist.append(item.clone(
channel = item.channel, channel = item.channel,
action = "play", action = "play",
title = calidad, title = calidad,
fulltitle = item.title,
contentThumbnail = item.thumbnail,
url = url, url = url,
)) ))
itemlist = servertools.get_servers_itemlist(itemlist)
itemlist.append(Item(channel=item.channel))
if config.get_videolibrary_support():
itemlist.append(Item(channel=item.channel, title="Añadir a la videoteca", text_color="green",
filtro=True, action="add_pelicula_to_library", url=item.url, thumbnail = item.thumbnail,
infoLabels={'title': item.fulltitle}, fulltitle=item.fulltitle
))
try: try:
tmdb.set_infoLabels(itemlist, __modo_grafico__) tmdb.set_infoLabels(itemlist, __modo_grafico__)
except: except:
pass pass
itemlist = servertools.get_servers_itemlist(itemlist)
itemlist.append(Item(channel=item.channel))
if config.get_videolibrary_support():
itemlist.append(Item(channel=item.channel, title="Añadir a la videoteca", text_color="green",
action="add_pelicula_to_library", url=item.url, thumbnail = item.thumbnail,
))
return itemlist return itemlist
def play(item):
logger.info()
item.thumbnail = item.contentThumbnail
return [item]
def lista(item): def lista(item):
logger.info() logger.info()
itemlist = [] itemlist = []
@@ -112,6 +118,10 @@ def lista(item):
itemlist.append(item.clone(action="findvideos", title=title, fulltitle=title, url=url, thumbnail=thumb, itemlist.append(item.clone(action="findvideos", title=title, fulltitle=title, url=url, thumbnail=thumb,
plot=plot, context=["buscar_trailer"], contentTitle=title, contentType="movie")) plot=plot, context=["buscar_trailer"], contentTitle=title, contentType="movie"))
try:
tmdb.set_infoLabels(itemlist, __modo_grafico__)
except:
pass
pagina = scrapertools.find_single_match(item.url, 'page=([0-9]+)') pagina = scrapertools.find_single_match(item.url, 'page=([0-9]+)')
item.url = item.url.replace(pagina, "") item.url = item.url.replace(pagina, "")
if pagina == "": if pagina == "":
@@ -121,12 +131,6 @@ def lista(item):
if item.extra != "busqueda": if item.extra != "busqueda":
itemlist.append(Item(channel = item.channel, action="lista", title="Pagina %s" %pagina, url=item.url, extra1 = item.extra1 itemlist.append(Item(channel = item.channel, action="lista", title="Pagina %s" %pagina, url=item.url, extra1 = item.extra1
)) ))
try:
# Obtenemos los datos basicos de todas las peliculas mediante multihilos
tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__)
except:
pass
return itemlist return itemlist
def search(item, texto): def search(item, texto):
@@ -26,6 +26,14 @@
"vos" "vos"
], ],
"settings": [ "settings": [
{
"id": "modo_grafico",
"type": "bool",
"label": "Buscar información extra",
"default": true,
"enabled": true,
"visible": true
},
{ {
"id": "include_in_global_search", "id": "include_in_global_search",
"type": "bool", "type": "bool",
@@ -42,6 +50,14 @@
"enabled": true, "enabled": true,
"visible": true "visible": true
}, },
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - terror",
"default": true,
"enabled": true,
"visible": true
},
{ {
"id": "perfil", "id": "perfil",
"type": "list", "type": "list",
+15 -4
View File
@@ -5,10 +5,18 @@ import re
from core import httptools from core import httptools
from core import scrapertools from core import scrapertools
from core import servertools from core import servertools
from core import tmdb
from core.item import Item from core.item import Item
from platformcode import config, logger from platformcode import config, logger
host = "http://www.cineasiaenlinea.com/" host = "http://www.cineasiaenlinea.com/"
__channel__='cineasiaenlinea'
try:
__modo_grafico__ = config.get_setting('modo_grafico', __channel__)
except:
__modo_grafico__ = True
# Configuracion del canal # Configuracion del canal
__perfil__ = int(config.get_setting('perfil', 'cineasiaenlinea')) __perfil__ = int(config.get_setting('perfil', 'cineasiaenlinea'))
@@ -75,11 +83,13 @@ def newest(categoria):
try: try:
if categoria == 'peliculas': if categoria == 'peliculas':
item.url = host + "archivos/peliculas" item.url = host + "archivos/peliculas"
item.action = "peliculas" elif categoria == 'terror':
itemlist = peliculas(item) item.url = host + "genero/terror"
item.action = "peliculas"
itemlist = peliculas(item)
if itemlist[-1].action == "peliculas": if itemlist[-1].action == "peliculas":
itemlist.pop() itemlist.pop()
# Se captura la excepción, para no interrumpir al canal novedades si un canal falla # Se captura la excepción, para no interrumpir al canal novedades si un canal falla
except: except:
@@ -110,6 +120,7 @@ def peliculas(item):
thumbnail=scrapedthumbnail, infoLabels=infolab, thumbnail=scrapedthumbnail, infoLabels=infolab,
contentTitle=title, contentType="movie", quality=calidad)) contentTitle=title, contentType="movie", quality=calidad))
tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__)
next_page = scrapertools.find_single_match(data, '<a class="nextpostslink" rel="next" href="([^"]+)"') next_page = scrapertools.find_single_match(data, '<a class="nextpostslink" rel="next" href="([^"]+)"')
if next_page: if next_page:
itemlist.append(item.clone(title=">> Página Siguiente", url=next_page)) itemlist.append(item.clone(title=">> Página Siguiente", url=next_page))
@@ -70,6 +70,14 @@
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
},
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - Terror",
"default": true,
"enabled": true,
"visible": true
} }
] ]
} }
@@ -382,6 +382,8 @@ def newest(categoria):
item.url = 'http://www.cinecalidad.to' item.url = 'http://www.cinecalidad.to'
elif categoria == 'infantiles': elif categoria == 'infantiles':
item.url = 'http://www.cinecalidad.to/genero-peliculas/infantil/' item.url = 'http://www.cinecalidad.to/genero-peliculas/infantil/'
elif categoria == 'terror':
item.url = 'http://www.cinecalidad.to/genero-peliculas/terror/'
itemlist = peliculas(item) itemlist = peliculas(item)
if itemlist[-1].title == 'Página siguiente >>': if itemlist[-1].title == 'Página siguiente >>':
itemlist.pop() itemlist.pop()
+12 -11
View File
@@ -152,6 +152,7 @@ def peliculas(item):
new_item.infoLabels['year'] = int(year) new_item.infoLabels['year'] = int(year)
itemlist.append(new_item) itemlist.append(new_item)
tmdb.set_infoLabels(itemlist, __modo_grafico__)
# Extrae el paginador # Extrae el paginador
next_page_link = scrapertools.find_single_match(data, '<link rel="next" href="([^"]+)') next_page_link = scrapertools.find_single_match(data, '<link rel="next" href="([^"]+)')
if next_page_link: if next_page_link:
@@ -273,9 +274,8 @@ def findvideos(item):
if item.extra != "library": if item.extra != "library":
if config.get_videolibrary_support(): if config.get_videolibrary_support():
itemlist.append(Item(channel=item.channel, title="Añadir a la videoteca", text_color="green", itemlist.append(Item(channel=item.channel, title="Añadir a la videoteca", text_color="green",
filtro=True, action="add_pelicula_to_library", url=item.url, action="add_pelicula_to_library", url=item.url
infoLabels={'title': item.fulltitle}, fulltitle=item.fulltitle, ))
extra="library"))
else: else:
itemlist.append(item.clone(title="No hay enlaces disponibles", action="", text_color=color3)) itemlist.append(item.clone(title="No hay enlaces disponibles", action="", text_color=color3))
@@ -319,34 +319,35 @@ def bloque_enlaces(data, filtro_idioma, dict_idiomas, type, item):
scrapedurl = match[0] scrapedurl = match[0]
scrapedserver = match[1] scrapedserver = match[1]
scrapedcalidad = match[2] scrapedcalidad = match[2]
scrapedlanguage = match[3] language = match[3]
scrapedtipo = match[4] scrapedtipo = match[4]
if t_tipo.upper() not in scrapedtipo.upper(): if t_tipo.upper() not in scrapedtipo.upper():
continue continue
title = " Mirror en %s (" + scrapedlanguage + ")" title = " Mirror en %s (" + language + ")"
if len(scrapedcalidad.strip()) > 0: if len(scrapedcalidad.strip()) > 0:
title += " (Calidad " + scrapedcalidad.strip() + ")" title += " (Calidad " + scrapedcalidad.strip() + ")"
if filtro_idioma == 3 or item.filtro: if filtro_idioma == 3 or item.filtro:
lista_enlaces.append(item.clone(title=title, action="play", text_color=color2, lista_enlaces.append(item.clone(title=title, action="play", text_color=color2,
url=scrapedurl, server=scrapedserver, idioma=scrapedlanguage, url=scrapedurl, server=scrapedserver,
extra=item.url, contentThumbnail = item.thumbnail, extra=item.url, contentThumbnail = item.thumbnail,
language=scrapedlanguage)) language=language))
else: else:
idioma = dict_idiomas[language] idioma = dict_idiomas[language]
if idioma == filtro_idioma: if idioma == filtro_idioma:
lista_enlaces.append(item.clone(title=title, text_color=color2, action="play", url=scrapedurl, lista_enlaces.append(item.clone(title=title, action="play", text_color=color2,
url=scrapedurl, server=scrapedserver,
extra=item.url, contentThumbnail = item.thumbnail, extra=item.url, contentThumbnail = item.thumbnail,
language=scrapedlanguage)) language=language))
else: else:
if language not in filtrados: if language not in filtrados:
filtrados.append(language) filtrados.append(language)
lista_enlaces = servertools.get_servers_itemlist(lista_enlaces, lambda i: i.title % i.server.capitalize())
if filtro_idioma != 3: if filtro_idioma != 3:
if len(filtrados) > 0: if len(filtrados) > 0:
title = "Mostrar enlaces filtrados en %s" % ", ".join(filtrados) title = "Mostrar también enlaces filtrados en %s" % ", ".join(filtrados)
lista_enlaces.append(item.clone(title=title, action="findvideos", url=item.url, text_color=color3, lista_enlaces.append(item.clone(title=title, action="findvideos", url=item.url, text_color=color3,
filtro=True)) filtro=True))
lista_enlaces = servertools.get_servers_itemlist(lista_enlaces, lambda i: i.title % i.server.capitalize())
return lista_enlaces return lista_enlaces
+8
View File
@@ -47,6 +47,14 @@
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
},
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - terror",
"default": true,
"enabled": true,
"visible": true
} }
] ]
} }
+2 -1
View File
@@ -206,7 +206,8 @@ def newest(categoria):
item.url = host +'peliculas/page/1' item.url = host +'peliculas/page/1'
elif categoria == 'infantiles': elif categoria == 'infantiles':
item.url = host + 'categoria/animacion/' item.url = host + 'categoria/animacion/'
elif categoria == 'terror':
item.url = host + '/categoria/terror/'
itemlist = lista(item) itemlist = lista(item)
if itemlist[-1].title == 'Siguiente >>>': if itemlist[-1].title == 'Siguiente >>>':
itemlist.pop() itemlist.pop()
@@ -69,6 +69,14 @@
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
},
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - Terror",
"default": true,
"enabled": true,
"visible": true
} }
] ]
} }
+4 -2
View File
@@ -459,10 +459,12 @@ def newest(categoria):
try: try:
if categoria == 'peliculas': if categoria == 'peliculas':
item.url = host item.url = host
item.extra = 'peliculas'
elif categoria == 'infantiles': elif categoria == 'infantiles':
item.url = host + 'search?q=animación' item.url = host + 'search?q=animación'
item.extra = 'peliculas' elif categoria == 'terror':
item.url = host + 'search?q=terror'
item.extra = 'peliculas'
itemlist = lista(item) itemlist = lista(item)
if itemlist[-1].title == 'Siguiente >>>': if itemlist[-1].title == 'Siguiente >>>':
itemlist.pop() itemlist.pop()
+1 -1
View File
@@ -313,7 +313,7 @@ def fichas(item):
for scrapedurl, scrapedthumbnail, scrapedlangs, scrapedrating, scrapedtitle, scrapedid in matches: for scrapedurl, scrapedthumbnail, scrapedlangs, scrapedrating, scrapedtitle, scrapedid in matches:
thumbnail = scrapedthumbnail.replace("/tthumb/130x190/", "/thumbs/") thumbnail = scrapedthumbnail.replace("/tthumb/130x190/", "/thumbs/")
language = ''
title = scrapedtitle.strip() title = scrapedtitle.strip()
show = title show = title
contentTitle = scrapedtitle.strip() contentTitle = scrapedtitle.strip()
@@ -42,6 +42,14 @@
"enabled": true, "enabled": true,
"visible": true "visible": true
}, },
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - terror",
"default": true,
"enabled": true,
"visible": true
},
{ {
"id": "modo_grafico", "id": "modo_grafico",
"type": "bool", "type": "bool",
+14 -4
View File
@@ -61,10 +61,14 @@ def newest(categoria):
item.url = "http://www.inkapelis.com/" item.url = "http://www.inkapelis.com/"
item.action = "entradas" item.action = "entradas"
item.extra = "Novedades" item.extra = "Novedades"
itemlist = entradas(item)
if itemlist[-1].action == "entradas": if categoria == "terror":
itemlist.pop() item.url = "https://www.inkapelis.com/genero/terror/"
item.action = "entradas"
itemlist = entradas(item)
if itemlist[-1].action == "entradas":
itemlist.pop()
# Se captura la excepción, para no interrumpir al canal novedades si un canal falla # Se captura la excepción, para no interrumpir al canal novedades si un canal falla
except: except:
@@ -278,9 +282,15 @@ def entradas(item):
title += " [Próximamente]" title += " [Próximamente]"
thumbnail = scrapedthumbnail.replace("w185", "original") thumbnail = scrapedthumbnail.replace("w185", "original")
filtro_thumb = scrapedthumbnail.replace("https://image.tmdb.org/t/p/w185", "")
filtro_list = {"poster_path": filtro_thumb}
filtro_list = filtro_list.items()
itemlist.append(item.clone(action="findvideos", title=title, url=url, contentTitle=scrapedtitle, itemlist.append(item.clone(action="findvideos", title=title, url=url, contentTitle=scrapedtitle,
fulltitle=scrapedtitle, thumbnail=thumbnail, context=["buscar_trailer"], fulltitle=scrapedtitle, thumbnail=thumbnail, context=["buscar_trailer"],
contentType="movie")) contentType="movie", infoLabels={'filtro': filtro_list}))
tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__)
# Extrae la marca de la siguiente página # Extrae la marca de la siguiente página
next_page = scrapertools.find_single_match(data, '<span class="current">.*?<\/span><a href="([^"]+)"') next_page = scrapertools.find_single_match(data, '<span class="current">.*?<\/span><a href="([^"]+)"')
+8
View File
@@ -47,6 +47,14 @@
"Perfil 2", "Perfil 2",
"Perfil 1" "Perfil 1"
] ]
},
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - terror",
"default": true,
"enabled": true,
"visible": true
} }
] ]
} }
+24
View File
@@ -260,3 +260,27 @@ def play(item):
itemlist.append(item.clone(action="play", server=enlaces[0][2], url=enlaces[0][1])) itemlist.append(item.clone(action="play", server=enlaces[0][2], url=enlaces[0][1]))
return itemlist return itemlist
def newest(categoria):
logger.info()
itemlist = []
item = Item()
try:
if categoria == "terror":
item.url = host +"/listado/terror/"
item.action = "updated"
item.page = 0
itemlist = updated(item)
if itemlist[-1].action == "updated":
itemlist.pop()
# Se captura la excepción, para no interrumpir al canal novedades si un canal falla
except:
import sys
for line in sys.exc_info():
logger.error("{0}".format(line))
return []
return itemlist
@@ -70,6 +70,14 @@
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
},
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - terror",
"default": true,
"enabled": true,
"visible": true
} }
] ]
} }
+3
View File
@@ -404,6 +404,9 @@ def newest(categoria):
elif categoria == 'infantiles': elif categoria == 'infantiles':
item.url = host + 'categoria/animacion-e-infantil/' item.url = host + 'categoria/animacion-e-infantil/'
item.extra = 'peliculas' item.extra = 'peliculas'
elif categoria == 'terror':
item.url = host + 'categoria/terror/'
item.extra = 'peliculas'
itemlist = todas(item) itemlist = todas(item)
if itemlist[-1].title == 'Siguiente >>>': if itemlist[-1].title == 'Siguiente >>>':
itemlist.pop() itemlist.pop()
+1 -2
View File
@@ -14,8 +14,7 @@
} }
], ],
"categories": [ "categories": [
"movie", "movie"
"adult"
], ],
"settings": [ "settings": [
{ {
+133 -95
View File
@@ -37,43 +37,49 @@ def mainlist(item):
logger.info() logger.info()
itemlist = [] itemlist = []
list_canales = get_channels_list() list_canales, any_active = get_channels_list()
if list_canales['peliculas']: #if list_canales['peliculas']:
thumbnail = get_thumb("channels_movie.png") thumbnail = get_thumb("channels_movie.png")
new_item = Item(channel=item.channel, action="novedades", extra="peliculas", title="Películas", new_item = Item(channel=item.channel, action="novedades", extra="peliculas", title="Películas",
thumbnail=thumbnail) thumbnail=thumbnail)
set_category_context(new_item) set_category_context(new_item)
itemlist.append(new_item) itemlist.append(new_item)
#if list_canales['terror']:
thumbnail = get_thumb("channels_horror.png")
new_item = Item(channel=item.channel, action="novedades", extra="terror", title="Peliculas de miedo!",
thumbnail=thumbnail)
set_category_context(new_item)
itemlist.append(new_item)
if list_canales['infantiles']: #if list_canales['infantiles']:
thumbnail = get_thumb("channels_children.png") thumbnail = get_thumb("channels_children.png")
new_item = Item(channel=item.channel, action="novedades", extra="infantiles", title="Para niños", new_item = Item(channel=item.channel, action="novedades", extra="infantiles", title="Para niños",
thumbnail=thumbnail) thumbnail=thumbnail)
set_category_context(new_item) set_category_context(new_item)
itemlist.append(new_item) itemlist.append(new_item)
if list_canales['series']: #if list_canales['series']:
thumbnail = get_thumb("channels_tvshow.png") thumbnail = get_thumb("channels_tvshow.png")
new_item = Item(channel=item.channel, action="novedades", extra="series", title="Episodios de series", new_item = Item(channel=item.channel, action="novedades", extra="series", title="Episodios de series",
thumbnail=thumbnail) thumbnail=thumbnail)
set_category_context(new_item) set_category_context(new_item)
itemlist.append(new_item) itemlist.append(new_item)
if list_canales['anime']: #if list_canales['anime']:
thumbnail = get_thumb("channels_anime.png") thumbnail = get_thumb("channels_anime.png")
new_item = Item(channel=item.channel, action="novedades", extra="anime", title="Episodios de anime", new_item = Item(channel=item.channel, action="novedades", extra="anime", title="Episodios de anime",
thumbnail=thumbnail) thumbnail=thumbnail)
set_category_context(new_item) set_category_context(new_item)
itemlist.append(new_item) itemlist.append(new_item)
if list_canales['documentales']: #if list_canales['documentales']:
thumbnail = get_thumb("channels_documentary.png") thumbnail = get_thumb("channels_documentary.png")
new_item = Item(channel=item.channel, action="novedades", extra="documentales", title="Documentales", new_item = Item(channel=item.channel, action="novedades", extra="documentales", title="Documentales",
thumbnail=thumbnail) thumbnail=thumbnail)
set_category_context(new_item) set_category_context(new_item)
itemlist.append(new_item) itemlist.append(new_item)
return itemlist return itemlist
@@ -89,8 +95,8 @@ def set_category_context(item):
def get_channels_list(): def get_channels_list():
logger.info() logger.info()
list_canales = {'peliculas': [], 'infantiles': [], 'series': [], 'anime': [], 'documentales': []} list_canales = {'peliculas': [], 'terror': [], 'infantiles': [], 'series': [], 'anime': [], 'documentales': []}
any_active = False
# Rellenar listas de canales disponibles # Rellenar listas de canales disponibles
channels_path = os.path.join(config.get_runtime_path(), "channels", '*.json') channels_path = os.path.join(config.get_runtime_path(), "channels", '*.json')
channel_language = config.get_setting("channel_language", default="all") channel_language = config.get_setting("channel_language", default="all")
@@ -113,13 +119,15 @@ def get_channels_list():
continue continue
# Incluir en cada categoria, si en su configuracion el canal esta activado para mostrar novedades # Incluir en cada categoria, si en su configuracion el canal esta activado para mostrar novedades
for categoria in list_canales: for categoria in list_canales:
include_in_newest = config.get_setting("include_in_newest_" + categoria, channel_id) include_in_newest = config.get_setting("include_in_newest_" + categoria, channel_id)
if include_in_newest: if include_in_newest:
channels_id_name[channel_id] = channel_parameters["title"] channels_id_name[channel_id] = channel_parameters["title"]
list_canales[categoria].append((channel_id, channel_parameters["title"])) list_canales[categoria].append((channel_id, channel_parameters["title"]))
any_active = True
return list_canales return list_canales, any_active
def novedades(item): def novedades(item):
@@ -142,75 +150,80 @@ def novedades(item):
multithread = True multithread = True
progreso = platformtools.dialog_progress(item.category, "Buscando canales...") progreso = platformtools.dialog_progress(item.category, "Buscando canales...")
list_canales = get_channels_list() list_canales, any_active = get_channels_list()
if any_active and len(list_canales[item.extra])>0:
import math
# fix float porque la division se hace mal en python 2.x
number_of_channels = float(100) / len(list_canales[item.extra])
import math for index, channel in enumerate(list_canales[item.extra]):
# fix float porque la division se hace mal en python 2.x channel_id, channel_title = channel
number_of_channels = float(100) / len(list_canales[item.extra]) percentage = int(math.ceil((index + 1) * number_of_channels))
for index, channel in enumerate(list_canales[item.extra]): # if progreso.iscanceled():
channel_id, channel_title = channel # progreso.close()
percentage = int(math.ceil((index + 1) * number_of_channels)) # logger.info("Búsqueda cancelada")
# return itemlist
# if progreso.iscanceled(): # Modo Multi Thread
# progreso.close() if multithread:
# logger.info("Búsqueda cancelada") t = Thread(target=get_newest, args=[channel_id, item.extra], name=channel_title)
# return itemlist t.start()
threads.append(t)
progreso.update(percentage, "", "Buscando en '%s'..." % channel_title)
# Modo Multi Thread # Modo single Thread
else:
logger.info("Obteniendo novedades de channel_id=" + channel_id)
progreso.update(percentage, "", "Buscando en '%s'..." % channel_title)
get_newest(channel_id, item.extra)
# Modo Multi Thread: esperar q todos los hilos terminen
if multithread: if multithread:
t = Thread(target=get_newest, args=[channel_id, item.extra], name=channel_title)
t.start()
threads.append(t)
progreso.update(percentage, "", "Buscando en '%s'..." % channel_title)
# Modo single Thread
else:
logger.info("Obteniendo novedades de channel_id=" + channel_id)
progreso.update(percentage, "", "Buscando en '%s'..." % channel_title)
get_newest(channel_id, item.extra)
# Modo Multi Thread: esperar q todos los hilos terminen
if multithread:
pendent = [a for a in threads if a.isAlive()]
t = float(100) / len(pendent)
while pendent:
index = (len(threads) - len(pendent)) + 1
percentage = int(math.ceil(index * t))
list_pendent_names = [a.getName() for a in pendent]
mensaje = "Buscando en %s" % (", ".join(list_pendent_names))
progreso.update(percentage, "Finalizado en %d/%d canales..." % (len(threads) - len(pendent), len(threads)),
mensaje)
logger.debug(mensaje)
if progreso.iscanceled():
logger.info("Busqueda de novedades cancelada")
break
time.sleep(0.5)
pendent = [a for a in threads if a.isAlive()] pendent = [a for a in threads if a.isAlive()]
t = float(100) / len(pendent)
while pendent:
index = (len(threads) - len(pendent)) + 1
percentage = int(math.ceil(index * t))
mensaje = "Resultados obtenidos: %s | Tiempo: %2.f segundos" % (len(list_newest), time.time() - start_time) list_pendent_names = [a.getName() for a in pendent]
progreso.update(100, mensaje, " ", " ") mensaje = "Buscando en %s" % (", ".join(list_pendent_names))
logger.info(mensaje) progreso.update(percentage, "Finalizado en %d/%d canales..." % (len(threads) - len(pendent), len(threads)),
start_time = time.time() mensaje)
# logger.debug(start_time) logger.debug(mensaje)
result_mode = config.get_setting("result_mode", "news") if progreso.iscanceled():
if result_mode == 0: # Agrupados por contenido logger.info("Busqueda de novedades cancelada")
ret = group_by_content(list_newest) break
elif result_mode == 1: # Agrupados por canales
ret = group_by_channel(list_newest)
else: # Sin agrupar
ret = no_group(list_newest)
while time.time() - start_time < 2: time.sleep(0.5)
# mostrar cuadro de progreso con el tiempo empleado durante almenos 2 segundos pendent = [a for a in threads if a.isAlive()]
time.sleep(0.5)
progreso.close() mensaje = "Resultados obtenidos: %s | Tiempo: %2.f segundos" % (len(list_newest), time.time() - start_time)
return ret progreso.update(100, mensaje, " ", " ")
logger.info(mensaje)
start_time = time.time()
# logger.debug(start_time)
result_mode = config.get_setting("result_mode", "news")
if result_mode == 0: # Agrupados por contenido
ret = group_by_content(list_newest)
elif result_mode == 1: # Agrupados por canales
ret = group_by_channel(list_newest)
else: # Sin agrupar
ret = no_group(list_newest)
while time.time() - start_time < 2:
# mostrar cuadro de progreso con el tiempo empleado durante almenos 2 segundos
time.sleep(0.5)
progreso.close()
return ret
else:
no_channels = platformtools.dialog_ok('Novedades - %s'%item.extra, 'No se ha definido ningun canal para la '
'busqueda.','Utilice el menu contextual '
'para agregar al menos uno')
return
def get_newest(channel_id, categoria): def get_newest(channel_id, categoria):
@@ -457,10 +470,35 @@ def setting_channel(item):
list_controls.append(control) list_controls.append(control)
caption = "Canales incluidos en Novedades " + item.title.replace("Canales incluidos en: ", "- ").strip() caption = "Canales incluidos en Novedades " + item.title.replace("Canales incluidos en: ", "- ").strip()
return platformtools.show_channel_settings(list_controls=list_controls, callback="save_settings", item=item, if config.get_setting("custom_button_value_news", item.channel):
caption=caption, custom_button={"visible": False}) custom_button_label = "Ninguno"
else:
custom_button_label = "Todos"
return platformtools.show_channel_settings(list_controls=list_controls,
caption="Canales incluidos en Novedades",
callback="save_settings", item=item,
custom_button={'visible': True,
'function': "cb_custom_button",
'close': False,
'label': custom_button_label})
def save_settings(item, dict_values): def save_settings(item, dict_values):
for v in dict_values: for v in dict_values:
config.set_setting("include_in_newest_" + item.extra, dict_values[v], v) config.set_setting("include_in_newest_" + item.extra, dict_values[v], v)
def cb_custom_button(item, dict_values):
value = config.get_setting("custom_button_value_news", item.channel)
if value == "":
value = False
for v in dict_values.keys():
dict_values[v] = not value
if config.set_setting("custom_button_value_news", not value, item.channel) == True:
return {"label": "Ninguno"}
else:
return {"label": "Todos"}
@@ -67,6 +67,14 @@
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
},
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - terror",
"default": true,
"enabled": true,
"visible": true
} }
] ]
} }
+2
View File
@@ -222,6 +222,8 @@ def newest(categoria):
item.url = host + 'movies/' item.url = host + 'movies/'
elif categoria == 'infantiles': elif categoria == 'infantiles':
item.url = host + "genre/animacion/" item.url = host + "genre/animacion/"
elif categoria == 'terror':
item.url = host + "genre/terror/"
else: else:
return [] return []
@@ -46,6 +46,14 @@
"enabled": true, "enabled": true,
"visible": true "visible": true
}, },
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - terror",
"default": true,
"enabled": true,
"visible": true
},
{ {
"id": "modo_grafico", "id": "modo_grafico",
"type": "bool", "type": "bool",
+7 -5
View File
@@ -78,12 +78,14 @@ def newest(categoria):
try: try:
if categoria == "peliculas": if categoria == "peliculas":
item.url = host item.url = host
item.from_newest = True elif categoria == "terror":
item.action = "entradas" item.url = host+"terror/"
itemlist = entradas(item) item.from_newest = True
item.action = "entradas"
itemlist = entradas(item)
if itemlist[-1].action == "entradas": if itemlist[-1].action == "entradas":
itemlist.pop() itemlist.pop()
# Se captura la excepción, para no interrumpir al canal novedades si un canal falla # Se captura la excepción, para no interrumpir al canal novedades si un canal falla
except: except:
+8
View File
@@ -49,6 +49,14 @@
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
},
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - terror",
"default": true,
"enabled": true,
"visible": true
} }
] ]
} }
+5 -4
View File
@@ -293,11 +293,12 @@ def newest(categoria):
try: try:
if categoria == 'peliculas': if categoria == 'peliculas':
item.url = host + '/estrenos/' item.url = host + '/estrenos/'
item.extra = 'peliculas'
elif categoria == 'infantiles': elif categoria == 'infantiles':
item.url = host + 'http://pelisfox.tv/peliculas/animacion/' item.url = host + '/peliculas/animacion/'
item.extra = 'peliculas' elif categoria == 'terror':
itemlist = todas(item) item.url = host + '/peliculas/terror/'
item.extra = 'peliculas'
itemlist = lista(item)
if itemlist[-1].title == 'Siguiente >>>': if itemlist[-1].title == 'Siguiente >>>':
itemlist.pop() itemlist.pop()
except: except:
@@ -40,6 +40,14 @@
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
},
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - terror",
"default": true,
"enabled": true,
"visible": true
} }
] ]
} }
@@ -254,6 +254,8 @@ def newest(categoria):
item.url = host + 'estrenos' item.url = host + 'estrenos'
elif categoria == 'infantiles': elif categoria == 'infantiles':
item.url = host + 'animacion' item.url = host + 'animacion'
elif categoria == 'terror':
item.url = host + 'terror'
itemlist = lista(item) itemlist = lista(item)
if itemlist[-1].title == 'Siguiente >>>': if itemlist[-1].title == 'Siguiente >>>':
itemlist.pop() itemlist.pop()
@@ -60,6 +60,14 @@
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
},
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - terror",
"default": true,
"enabled": true,
"visible": true
} }
] ]
} }
@@ -140,6 +140,8 @@ def newest(categoria):
item.url = host item.url = host
elif categoria == 'infantiles': elif categoria == 'infantiles':
item.url = host + "genero/animacion-e-infantil/" item.url = host + "genero/animacion-e-infantil/"
elif categoria == 'terror':
item.url = host + "genero/terror/"
else: else:
return [] return []
-8
View File
@@ -71,14 +71,6 @@
"enabled": true, "enabled": true,
"visible": true "visible": true
}, },
{
"id": "include_in_newest_infantiles",
"type": "bool",
"label": "Incluir en Novedades - Infantiles",
"default": false,
"enabled": true,
"visible": true
},
{ {
"id": "modo_grafico", "id": "modo_grafico",
"type": "bool", "type": "bool",
+9 -1
View File
@@ -259,7 +259,15 @@ def findvideos(item):
itemlist.append(Item(channel=item.channel, action="play", title=scrapedtitle, extra=title, url=url, itemlist.append(Item(channel=item.channel, action="play", title=scrapedtitle, extra=title, url=url,
fanart=item.thumbnail, thumbnail=item.thumbnail, plot=splot, language=scrapedlang, fanart=item.thumbnail, thumbnail=item.thumbnail, plot=splot, language=scrapedlang,
quality=scrapedquality, server=server)) quality=scrapedquality, server=server))
if itemlist:
itemlist.append(Item(channel=item.channel))
itemlist.append(item.clone(channel="trailertools", title="Buscar Tráiler", action="buscartrailer",
text_color="magenta"))
# Opción "Añadir esta película a la biblioteca de KODI"
if config.get_videolibrary_support():
itemlist.append(Item(channel=item.channel, title="Añadir pelicula a la videoteca", text_color="green",
action="add_pelicula_to_library", url=item.url, thumbnail=item.thumbnail,
fulltitle=item.fulltitle))
return itemlist return itemlist
@@ -28,6 +28,30 @@
"default": false, "default": false,
"enabled": false, "enabled": false,
"visible": false "visible": false
},
{
"id": "include_in_newest_peliculas",
"type": "bool",
"label": "Incluir en Novedades - Peliculas",
"default": true,
"enabled": true,
"visible": true
},
{
"id": "include_in_newest_infantiles",
"type": "bool",
"label": "Incluir en Novedades - Infantiles",
"default": true,
"enabled": true,
"visible": true
},
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - terror",
"default": true,
"enabled": true,
"visible": true
} }
] ]
} }
+27
View File
@@ -141,3 +141,30 @@ def play(item):
server=enlaces[0][2], thumbnail=thumbnail, folder=False)) server=enlaces[0][2], thumbnail=thumbnail, folder=False))
return itemlist return itemlist
def newest(categoria):
logger.info()
itemlist = []
item = Item()
try:
if categoria == 'peliculas':
item.url = host + '/cartelera/'
elif categoria == 'infantiles':
item.url = host + "/online/animacion"
elif categoria == 'terror':
item.url = host + "/online/terror/"
else:
return []
itemlist = lista(item)
if itemlist[-1].title == "» Siguiente »":
itemlist.pop()
# Se captura la excepción, para no interrumpir al canal novedades si un canal falla
except:
import sys
for line in sys.exc_info():
logger.error("{0}".format(line))
return []
return itemlist
+16
View File
@@ -28,6 +28,22 @@
"label": "Incluir en busqueda global", "label": "Incluir en busqueda global",
"type": "bool", "type": "bool",
"visible": true "visible": true
},
{
"id": "include_in_newest_peliculas",
"type": "bool",
"label": "Incluir en Novedades - Peliculas",
"default": true,
"enabled": true,
"visible": true
},
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - terror",
"default": true,
"enabled": true,
"visible": true
} }
] ]
} }
+27
View File
@@ -10,6 +10,7 @@ from core import tmdb
from core.item import Item from core.item import Item
from platformcode import config, logger from platformcode import config, logger
host = 'http://vepelis.com/'
def mainlist(item): def mainlist(item):
logger.info() logger.info()
@@ -250,3 +251,29 @@ def search(item, texto):
for line in sys.exc_info(): for line in sys.exc_info():
logger.error("%s" % line) logger.error("%s" % line)
return [] return []
def newest(categoria):
logger.info()
itemlist = []
item = Item()
try:
if categoria == 'peliculas':
item.url = host + 'ultimas-peliculas'
itemlist = listarpeliculas(item)
elif categoria == 'terror':
item.url = host + "categoria-terror/"
itemlist = listado2(item)
else:
return []
if itemlist[-1].title == "!Pagina Siguiente ->":
itemlist.pop()
# Se captura la excepción, para no interrumpir al canal novedades si un canal falla
except:
import sys
for line in sys.exc_info():
logger.error("{0}".format(line))
return []
return itemlist
+32 -16
View File
@@ -23,21 +23,37 @@
"direct" "direct"
], ],
"settings": [ "settings": [
{ {
"id": "modo_grafico", "id": "modo_grafico",
"type": "bool", "type": "bool",
"label": "Buscar información extra", "label": "Buscar información extra",
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
}, },
{ {
"id": "include_in_global_search", "id": "include_in_global_search",
"type": "bool", "type": "bool",
"label": "Incluir en busqueda global", "label": "Incluir en busqueda global",
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
} },
{
"id": "include_in_newest_peliculas",
"type": "bool",
"label": "Incluir en Novedades - Peliculas",
"default": true,
"enabled": true,
"visible": true
},
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - terror",
"default": true,
"enabled": true,
"visible": true
}
] ]
} }
+25
View File
@@ -198,3 +198,28 @@ def play(item):
)) ))
return itemlist return itemlist
def newest(categoria):
logger.info()
itemlist = []
item = Item()
try:
if categoria == 'peliculas':
item.url = host + '/ver/'
elif categoria == 'terror':
item.url = host + "/categoria/de-terror.htm"
else:
return []
itemlist = scraper(item)
if itemlist[-1].title == "» Siguiente »":
itemlist.pop()
# Se captura la excepción, para no interrumpir al canal novedades si un canal falla
except:
import sys
for line in sys.exc_info():
logger.error("{0}".format(line))
return []
return itemlist
+8
View File
@@ -70,6 +70,14 @@
"default": false, "default": false,
"enabled": true, "enabled": true,
"visible": true "visible": true
},
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - terror",
"default": true,
"enabled": true,
"visible": true
} }
] ]
} }
+2
View File
@@ -73,6 +73,8 @@ def newest(categoria):
item.url = HOST item.url = HOST
elif categoria == 'infantiles': elif categoria == 'infantiles':
item.url = HOST + "/genre/16/" item.url = HOST + "/genre/16/"
elif categoria == 'terror':
item.url = HOST + "/genre/27/"
else: else:
return [] return []
@@ -27,6 +27,30 @@
"default": true, "default": true,
"enabled": true, "enabled": true,
"visible": true "visible": true
},
{
"id": "include_in_newest_peliculas",
"type": "bool",
"label": "Incluir en Novedades - Peliculas",
"default": true,
"enabled": true,
"visible": true
},
{
"id": "include_in_newest_infantiles",
"type": "bool",
"label": "Incluir en Novedades - Infantiles",
"default": true,
"enabled": true,
"visible": true
},
{
"id": "include_in_newest_terror",
"type": "bool",
"label": "Incluir en Novedades - terror",
"default": true,
"enabled": true,
"visible": true
} }
] ]
} }
+36 -3
View File
@@ -123,7 +123,8 @@ def findvideos(item):
logger.info() logger.info()
itemlist = [] itemlist = []
language = ''
quality = ''
data = re.sub(r"\n|\r|\t|\s{2}|(<!--.*?-->)", "", httptools.downloadpage(item.url).data) data = re.sub(r"\n|\r|\t|\s{2}|(<!--.*?-->)", "", httptools.downloadpage(item.url).data)
data = re.sub(r"&quot;", '"', data) data = re.sub(r"&quot;", '"', data)
data = re.sub(r"&lt;", '<', data) data = re.sub(r"&lt;", '<', data)
@@ -134,7 +135,9 @@ def findvideos(item):
if len(titles) == len(urls): if len(titles) == len(urls):
for i in range(0, len(titles)): for i in range(0, len(titles)):
if i > 0: if i > 0:
title = "Online %s " % titles[i].strip() logger.debug('titles: %s' % titles[i].strip())
language, quality = titles[i].split(' - ')
title = "%s" % titles[i].strip()
else: else:
title = titles[0] title = titles[0]
@@ -143,8 +146,11 @@ def findvideos(item):
.headers.get("location", "") .headers.get("location", "")
videourl = servertools.findvideos(urls[i]) videourl = servertools.findvideos(urls[i])
if len(videourl) > 0: if len(videourl) > 0:
server = videourl[0][0].capitalize()
title = '%s %s' % (server, title)
itemlist.append(Item(channel=item.channel, action="play", title=title, url=videourl[0][1], itemlist.append(Item(channel=item.channel, action="play", title=title, url=videourl[0][1],
server=videourl[0][0], thumbnail=videourl[0][3], fulltitle=item.title)) server=server, thumbnail=videourl[0][3], fulltitle=item.title,
language=language, quality=quality ))
pattern = '<a[^>]+href="([^"]+)"[^<]+</a></td><td><span><img[^>]+>(.*?)</span></td><td><span><img[^>]+>(.*?)' \ pattern = '<a[^>]+href="([^"]+)"[^<]+</a></td><td><span><img[^>]+>(.*?)</span></td><td><span><img[^>]+>(.*?)' \
'</span></td><td><span>(.*?)</span>' '</span></td><td><span>(.*?)</span>'
@@ -157,3 +163,30 @@ def findvideos(item):
fulltitle=item.title, thumbnail=get_thumb("channels_torrent.png"))) fulltitle=item.title, thumbnail=get_thumb("channels_torrent.png")))
return itemlist return itemlist
def newest(categoria):
logger.info()
itemlist = []
item = Item()
try:
if categoria == 'peliculas':
item.url = HOST
elif categoria == 'infantiles':
item.url = HOST + "/animacion"
elif categoria == 'terror':
item.url = HOST + "/terror/"
else:
return []
itemlist = listado(item)
if itemlist[-1].title == ">> Página siguiente":
itemlist.pop()
# Se captura la excepción, para no interrumpir al canal novedades si un canal falla
except:
import sys
for line in sys.exc_info():
logger.error("{0}".format(line))
return []
return itemlist
Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB