Merge pull request #119 from Alfa-beto/halloween

Halloween month update
This commit is contained in:
Alfa
2017-10-03 23:51:37 +02:00
committed by GitHub
41 changed files with 569 additions and 145 deletions
@@ -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
} }
] ]
} }
+11
View File
@@ -7,8 +7,16 @@ 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 = []
@@ -29,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()
@@ -99,6 +109,7 @@ def peliculas(item):
)) ))
tmdb.set_infoLabels(itemlist, True) 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))
@@ -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()
+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",
@@ -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