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
} }
] ]
} }
+20 -10
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,7 +95,9 @@ 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, if year:
item.infoLabels['year'] = int(year)
itemlist.append(item.clone(channel = item.channel,
action = "findvideos", action = "findvideos",
title = mtitulo, title = mtitulo,
fulltitle = titulo, fulltitle = titulo,
@@ -93,11 +106,10 @@ def peliculas(item):
contentTitle = titulo, contentTitle = titulo,
contentType="movie", contentType="movie",
language = idioma language = idioma
) ))
if year: tmdb.set_infoLabels(itemlist, True)
new_item.infoLabels['year'] = int(year)
itemlist.append(new_item)
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",
@@ -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,6 +83,8 @@ def newest(categoria):
try: try:
if categoria == 'peliculas': if categoria == 'peliculas':
item.url = host + "archivos/peliculas" item.url = host + "archivos/peliculas"
elif categoria == 'terror':
item.url = host + "genero/terror"
item.action = "peliculas" item.action = "peliculas"
itemlist = peliculas(item) itemlist = peliculas(item)
@@ -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
} }
] ]
} }
+3 -1
View File
@@ -459,9 +459,11 @@ 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'
elif categoria == 'terror':
item.url = host + 'search?q=terror'
item.extra = 'peliculas' item.extra = 'peliculas'
itemlist = lista(item) itemlist = lista(item)
if itemlist[-1].title == 'Siguiente >>>': if itemlist[-1].title == 'Siguiente >>>':
+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",
+11 -1
View File
@@ -61,6 +61,10 @@ 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"
if categoria == "terror":
item.url = "https://www.inkapelis.com/genero/terror/"
item.action = "entradas"
itemlist = entradas(item) itemlist = entradas(item)
if itemlist[-1].action == "entradas": if itemlist[-1].action == "entradas":
@@ -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": [
{ {
+51 -13
View File
@@ -37,38 +37,44 @@ 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)
@@ -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,8 +150,8 @@ 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 import math
# fix float porque la division se hace mal en python 2.x # fix float porque la division se hace mal en python 2.x
number_of_channels = float(100) / len(list_canales[item.extra]) number_of_channels = float(100) / len(list_canales[item.extra])
@@ -211,6 +219,11 @@ def novedades(item):
progreso.close() progreso.close()
return ret 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",
@@ -78,6 +78,8 @@ def newest(categoria):
try: try:
if categoria == "peliculas": if categoria == "peliculas":
item.url = host item.url = host
elif categoria == "terror":
item.url = host+"terror/"
item.from_newest = True item.from_newest = True
item.action = "entradas" item.action = "entradas"
itemlist = entradas(item) itemlist = entradas(item)
+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
} }
] ]
} }
+4 -3
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/'
elif categoria == 'terror':
item.url = host + '/peliculas/terror/'
item.extra = 'peliculas' item.extra = 'peliculas'
itemlist = todas(item) 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
+16
View File
@@ -38,6 +38,22 @@
"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