Merge pull request #309 from Intel11/master

Actualizados
This commit is contained in:
Alfa
2018-06-14 12:37:52 -05:00
committed by GitHub
13 changed files with 392 additions and 126 deletions
+30
View File
@@ -0,0 +1,30 @@
{
"id": "animejl",
"name": "AnimeJL",
"active": true,
"adult": false,
"language": ["cast", "lat"],
"thumbnail": "https://www.animejl.net/img/Logo.png",
"banner": "",
"categories": [
"anime"
],
"settings": [
{
"id": "include_in_global_search",
"type": "bool",
"label": "Incluir en busqueda global",
"default": false,
"enabled": true,
"visible": true
},
{
"id": "include_in_newest_anime",
"type": "bool",
"label": "Incluir en Novedades - Episodios de anime",
"default": true,
"enabled": true,
"visible": true
}
]
}
+198
View File
@@ -0,0 +1,198 @@
# -*- coding: utf-8 -*-
# -*- Channel AnimeJL -*-
# -*- Created for Alfa-addon -*-
# -*- By the Alfa Develop Group -*-
import re
from core import httptools
from core import scrapertools
from core import servertools
from core.item import Item
from platformcode import logger
from channelselector import get_thumb
host = 'https://www.animejl.net/'
def mainlist(item):
logger.info()
itemlist = []
itemlist.append(Item(channel=item.channel, title="Nuevos Episodios", action="new_episodes",
thumbnail=get_thumb('new_episodes', auto=True), url=host))
itemlist.append(Item(channel=item.channel, title="Todas", action="list_all", thumbnail=get_thumb('all', auto=True),
url=host + 'animes'))
itemlist.append(Item(channel=item.channel, title="Series", action="list_all",
thumbnail=get_thumb('tvshows', auto=True), url=host+'animes?type%5B%5D=1&order=default'))
itemlist.append(Item(channel=item.channel, title="Películas", action="list_all",
thumbnail=get_thumb('movies',auto=True), url=host + 'animes?type%5B%5D=2&order=default'))
itemlist.append(
Item(channel=item.channel, title="Buscar", action="search", thumbnail=get_thumb('search', auto=True),
url=host + 'animes?q='))
return itemlist
def get_source(url):
logger.info()
data = httptools.downloadpage(url).data
data = re.sub(r'\n|\r|\t|&nbsp;|<br>|\s{2,}|"|\(|\)', "", data)
return data
def new_episodes(item):
logger.info()
itemlist = []
data = get_source(item.url)
data = scrapertools.find_single_match(data, "<h2>Últimos episodios</h2>.*?</ul>")
patron = "<li><a href='(.*?)' class.*?<img src='(.*?)' alt='(.*?)'></span><span class='Capi'>(.*?)</span>"
matches = re.compile(patron, re.DOTALL).findall(data)
for scrapedurl, scrapedthumbnail, scrapedtitle, scrapedepi in matches:
url = host+scrapedurl
thumbnail = host+scrapedthumbnail
title = '%s %s' % (scrapedtitle, scrapedepi)
itemlist.append(Item(channel=item.channel, action='findvideos',
title=title,
url=url,
thumbnail=thumbnail,
contentSerieName=scrapedtitle,
))
return itemlist
def list_all(item):
logger.info()
itemlist = []
data = get_source(item.url)
patron = "<article class='Anime alt B'><a href='(.*?)'>.*?class=.*?<img src='(.*?)' alt='(.*?)'>"
patron +="</figure><span class='Type .*?'>(.*?)</span>.*?star.*?<p>(.*?)</p>"
matches = re.compile(patron, re.DOTALL).findall(data)
for scrapedurl, scrapedthumbnail, scrapedtitle, type, plot in matches:
url = host + scrapedurl
thumbnail = host+scrapedthumbnail
title = scrapedtitle
type = type
season = ''
if 'season' in scrapedtitle.lower():
season = scrapertools.find_single_match(scrapedtitle, 'season (\d+)')
scrapedtitle = scrapertools.find_single_match(scrapedtitle, '(.*?) season')
new_item = Item(channel=item.channel, action='episodios',
title=title,
url=url,
thumbnail=thumbnail,
contentSerieName=scrapedtitle,
plot=plot,
type=item.type,
infoLabels={}
)
if type.lower() == 'anime':
new_item.contentSerieName = scrapedtitle
new_item.contentSeasonNumber = season
else:
new_item.contentTitle = scrapedtitle
itemlist.append(new_item)
# Paginacion
next_page = scrapertools.find_single_match(data,
"<li><a href='([^']+)'><span>&raquo;</span></a></li></ul>")
if next_page != '':
itemlist.append(Item(channel=item.channel,
action="list_all",
title=">> Página siguiente",
url=host+next_page,
thumbnail='https://s16.postimg.cc/9okdu7hhx/siguiente.png'
))
return itemlist
def episodios(item):
logger.info()
itemlist = []
base_data = get_source(item.url)
data = scrapertools.find_single_match(base_data, '<div class=Title>Lista de episodios</div>.*?</ul>')
if data == '':
data = scrapertools.find_single_match(base_data, '<div class=Title>Formatos disponibles</div>.*?</ul>')
if 'listepisodes' in data.lower():
patron = "<li><a href='(.*?)' class.*?>(.*?)<i class='fa-eye-slash'></i></a></li>"
elif 'listcaps' in data.lower():
patron = "<a href=(.*?)>.*?alt=(.*?)>"
matches = re.compile(patron, re.DOTALL).findall(data)
for scrapedurl, scrapedtitle in matches:
title = scrapedtitle.strip()
n=0
for char in title[::-1]:
n += 1
if char == ' ':
break
episode = title[-n:]
episode = scrapertools.find_single_match(episode, r' (\d+)')
url = host + scrapedurl
itemlist.append(Item(channel=item.channel, title='Episodio %s' % episode, thumbnail=item.thumbnail, url=url,
action='findvideos'))
if item.type.lower != 'anime' and len(itemlist)==1:
return findvideos(itemlist[0])
else:
return itemlist[::-1]
def findvideos(item):
logger.info()
itemlist = []
data = get_source(item.url)
itemlist.extend(servertools.find_video_items(data=data))
for videoitem in itemlist:
videoitem.title = '[%s]' % videoitem.server.capitalize()
return itemlist
def search(item, texto):
logger.info()
texto = texto.replace(" ", "+")
item.url = item.url + texto
try:
if texto != '':
return list_all(item)
else:
return []
except:
import sys
for line in sys.exc_info():
logger.error("%s" % line)
return []
def newest(categoria):
logger.info()
itemlist = []
item = Item()
try:
if categoria == 'anime':
item.url = host
itemlist = new_episodes(item)
if itemlist[-1].title == '>> Página siguiente':
itemlist.pop()
return itemlist
except:
import sys
for line in sys.exc_info():
logger.error("{0}".format(line))
return []
+33 -58
View File
@@ -11,6 +11,7 @@ from core.item import Item
from platformcode import platformtools, config, logger from platformcode import platformtools, config, logger
__modo_grafico__ = config.get_setting('modo_grafico', 'animemovil') __modo_grafico__ = config.get_setting('modo_grafico', 'animemovil')
__perfil__ = '' __perfil__ = ''
@@ -28,6 +29,7 @@ host = "http://animemovil.com"
def mainlist(item): def mainlist(item):
logger.info() logger.info()
itemlist = [] itemlist = []
itemlist.append(Item(channel=item.channel, action="recientes", title="Episodios Recientes", thumbnail=item.thumbnail, itemlist.append(Item(channel=item.channel, action="recientes", title="Episodios Recientes", thumbnail=item.thumbnail,
@@ -48,6 +50,8 @@ def mainlist(item):
itemlist.append(item.clone(title="Configurar canal", action="openconfig", text_color=color5, folder=False)) itemlist.append(item.clone(title="Configurar canal", action="openconfig", text_color=color5, folder=False))
if renumbertools.context: if renumbertools.context:
itemlist = renumbertools.show_option(item.channel, itemlist) itemlist = renumbertools.show_option(item.channel, itemlist)
return itemlist return itemlist
@@ -280,71 +284,42 @@ def findvideos(item):
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
data = re.sub(r'\n|\s{2,}', '', data) data = re.sub(r'\n|\s{2,}', '', data)
strm_id = scrapertools.find_single_match(data, '"id": (.*?),')
streams = scrapertools.find_single_match(data, '"stream": (.*?)};')
dict_strm = jsontools.load(streams)
akiba_url = scrapertools.find_single_match(data, '<div class="x-link"><a href="(.*?)"') base_url = 'http:%s%s/' % (dict_strm['accessPoint'], strm_id)
url = httptools.downloadpage('http:'+akiba_url, follow_redirects=False).headers.get('location') for server in dict_strm['servers']:
title = '%s (%s)' % (item.title, 'akiba') expire = dict_strm['expire']
itemlist.append(item.clone(title=title, url=url, action='play')) signature = dict_strm['signature']
last_modify = dict_strm['last_modify']
callback = 'playerWeb'
info = scrapertools.find_single_match(data, 'episodio_info=(.*?);') strm_url = base_url +'%s?expire=%s&callback=%s&signature=%s&last_modify=%s' % (server, expire, callback,
dict_info = jsontools.load(info) signature, last_modify)
servers = dict_info['stream']['servers']
id = dict_info['id']
access_point = dict_info['stream']['accessPoint']
expire = dict_info['stream']['expire']
callback = dict_info['stream']['callback']
signature = dict_info['stream']['signature']
last_modify = dict_info['stream']['last_modify']
for server in servers:
stream_info = 'http:%s/%s/%s?expire=%s&callback=%s&signature=%s&last_modify=%s' % \
(access_point, id, server, expire, callback, signature, last_modify)
try:
dict_stream = jsontools.load(httptools.downloadpage(stream_info).data)
if dict_stream['status']:
kind = dict_stream['result']['kind']
if kind == 'iframe':
url = dict_stream['result']['src']
title = '%s (%s)' % (item.title, server)
elif kind == 'jwplayer':
url_style = dict_stream['result']['setup']
if server != 'rin':
if 'playlist' in url_style:
part = 1
for media_list in url_style['playlist']:
url = media_list['file']
title = '%s (%s) - parte %s' % (item.title, server, part)
itemlist.append(item.clone(title=title, url=url, action='play'))
part += 1
else:
url = url_style['file']
title = '%s (%s)' % (item.title, server)
else:
src_list = url_style['sources']
for source in src_list:
url = source['file']
quality = source['label']
title = '%s [%s](%s)' % (item.title, quality, server)
itemlist.append(item.clone(title=title, url=url, action='play'))
elif kind == 'javascript':
if 'jsCode' in dict_stream['result']:
jscode = dict_stream['result']['jsCode']
url = scrapertools.find_single_match(jscode, 'xmlhttp.open\("GET", "(.*?)"')
title = '%s (%s)' % (item.title, server)
strm_data = httptools.downloadpage(strm_url).data
strm_data = scrapertools.unescape(strm_data)
title = '%s'
language = ''
if server not in ['fire', 'meph']:
urls = scrapertools.find_multiple_matches(strm_data, '"(?:file|src)"*?:.*?"(.*?)"')
for url in urls:
if url != '': if url != '':
itemlist.append(item.clone(title=title, url=url, action='play')) url = url.replace ('\\/','/')
except: itemlist.append(Item(channel=item.channel, title=title, url=url, action='play'))
pass elif server in ['fire', 'mpeh']:
itemlist = servertools.get_servers_itemlist(itemlist) url = scrapertools.find_single_match(strm_data, 'xmlhttp.open(\"GET\", \"(.*?)\"')
if url != '':
url = url.replace('\\/', '/')
itemlist.append(Item(channel=item.channel, title=url, url=url, action='play'))
else:
continue
servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server)
return itemlist return itemlist
def newest(categoria): def newest(categoria):
logger.info() logger.info()
item = Item() item = Item()
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"id": "bajui", "id": "bajui",
"name": "Bajui", "name": "Bajui",
"active": true, "active": false,
"adult": false, "adult": false,
"language": ["cast"], "language": ["cast"],
"thumbnail": "bajui.png", "thumbnail": "bajui.png",
+2 -2
View File
@@ -67,7 +67,7 @@ def mainlist(item):
itemlist.append( itemlist.append(
item.clone(title="CineCalidad Portugues", item.clone(title="CineCalidad Portugues",
action="submenu", action="submenu",
host="http://cinemaqualidade.to/", host="http://www.cinemaqualidade.to/",
thumbnail=thumbbr, thumbnail=thumbbr,
extra="filmes", extra="filmes",
)) ))
@@ -81,7 +81,7 @@ def submenu(item):
idioma = 'peliculas' idioma = 'peliculas'
idioma2 = "destacada" idioma2 = "destacada"
host = item.host host = item.host
if item.host == "http://cinemaqualidade.to/": if item.host == "http://www.cinemaqualidade.to/":
idioma = "filmes" idioma = "filmes"
idioma2 = "destacado" idioma2 = "destacado"
logger.info() logger.info()
+3 -4
View File
@@ -1,14 +1,13 @@
{ {
"id": "gmobi", "id": "gmobi",
"name": "gmobi", "name": "GNULA.mobi",
"active": true, "active": true,
"adult": false, "adult": false,
"language": ["cast", "lat"], "language": ["cast", "lat"],
"thumbnail": "http://gnula.mobi/wp-content/uploads/2016/08/Untitled-6.png", "thumbnail": "http://www.gnula.mobi/wp-content/uploads/2018/05/Captura-1.png?%3E",
"banner": "", "banner": "",
"categories": [ "categories": [
"movie", "movie"
"adult"
], ],
"settings": [ "settings": [
{ {
+14 -7
View File
@@ -12,7 +12,7 @@ from core import tmdb
from core.item import Item from core.item import Item
from platformcode import logger from platformcode import logger
host = 'http://gnula.mobi/' host = 'http://www.gnula.mobi/'
def mainlist(item): def mainlist(item):
logger.info() logger.info()
itemlist = list() itemlist = list()
@@ -68,17 +68,24 @@ def peliculas(item):
itemlist = [] itemlist = []
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
data = re.sub(r"\n|\r|\t|&nbsp;|<br>", "", data) data = re.sub(r"\n|\r|\t|&nbsp;|<br>", "", data)
patron = '<div class="col-mt-5 postsh">.*?href="(.*?)" title="(.*?)".*?under-title">(.*?)<.*?src="(.*?)"' patron = '<div class="col-mt-5 postsh">.*?href="(.*?)" title="(.*?)".*?<.*?src="(.*?)"'
matches = scrapertools.find_multiple_matches(data, patron) matches = scrapertools.find_multiple_matches(data, patron)
for scrapedurl, scrapedyear, scrapedtitle, scrapedthumbnail in matches: for scrapedurl, scrapedtitle, scrapedthumbnail in matches:
year = scrapertools.find_single_match(scrapedyear, r'.*?\((\d{4})\)') filter_thumb = scrapedthumbnail.replace("http://image.tmdb.org/t/p/w300", "")
itemlist.append(Item(channel=item.channel, action="findvideos", title=scrapedtitle, fulltitle = scrapedtitle, url=scrapedurl, filter_list = {"poster_path": filter_thumb}
thumbnail=scrapedthumbnail, infoLabels={'year': year})) filter_list = filter_list.items()
itemlist.append(Item(channel=item.channel,
action="findvideos",
title=scrapedtitle,
fulltitle = scrapedtitle,
url=scrapedurl,
thumbnail=scrapedthumbnail,
infoLabels={'filtro': filter_list}))
tmdb.set_infoLabels(itemlist, True) tmdb.set_infoLabels(itemlist, True)
next_page_url = scrapertools.find_single_match(data, '<link rel="next" href="(.*?)"') next_page_url = scrapertools.find_single_match(data, '<link rel="next" href="(.*?)"')
if next_page_url != "": if next_page_url != "":
next_page_url = item.url + next_page_url next_page_url = next_page_url
itemlist.append(item.clone(action="peliculas", title="Siguiente >>", text_color="yellow", itemlist.append(item.clone(action="peliculas", title="Siguiente >>", text_color="yellow",
url=next_page_url)) url=next_page_url))
+31 -1
View File
@@ -4,7 +4,7 @@
"active": true, "active": true,
"adult": false, "adult": false,
"language": ["cast", "lat"], "language": ["cast", "lat"],
"thumbnail": "http://i.imgur.com/I7MxHZI.png", "thumbnail": "https://www.inkapelis.com/wp-content/uploads/2016/07/logitoinkapelis-min.png",
"banner": "inkapelis.png", "banner": "inkapelis.png",
"categories": [ "categories": [
"movie", "movie",
@@ -35,6 +35,22 @@
"enabled": true, "enabled": true,
"visible": true "visible": true
}, },
{
"id": "include_in_newest_castellano",
"type": "bool",
"label": "Incluir en Novedades - castellano",
"default": true,
"enabled": true,
"visible": true
},
{
"id": "include_in_newest_latino",
"type": "bool",
"label": "Incluir en Novedades - latino",
"default": true,
"enabled": true,
"visible": true
},
{ {
"id": "modo_grafico", "id": "modo_grafico",
"type": "bool", "type": "bool",
@@ -56,6 +72,20 @@
"Perfil 1" "Perfil 1"
] ]
}, },
{
"id": "filter_languages",
"type": "list",
"label": "Mostrar enlaces en idioma...",
"default": 0,
"enabled": true,
"visible": true,
"lvalues": [
"No filtrar",
"LAT",
"CAST",
"VOSE"
]
},
{ {
"id": "filtro_defecto_peliculas", "id": "filtro_defecto_peliculas",
"type": "label", "type": "label",
+61 -8
View File
@@ -9,6 +9,10 @@ from core import tmdb
from core.item import Item from core.item import Item
from platformcode import config, logger from platformcode import config, logger
from channelselector import get_thumb from channelselector import get_thumb
from channels import filtertools
from channels import autoplay
__modo_grafico__ = config.get_setting("modo_grafico", "inkapelis") __modo_grafico__ = config.get_setting("modo_grafico", "inkapelis")
__perfil__ = config.get_setting("perfil", "inkapelis") __perfil__ = config.get_setting("perfil", "inkapelis")
@@ -19,14 +23,34 @@ perfil = [['0xFFFFE6CC', '0xFFFFCE9C', '0xFF994D00', '0xFFFE2E2E'],
color1, color2, color3, color4 = perfil[__perfil__] color1, color2, color3, color4 = perfil[__perfil__]
IDIOMAS = {'Latino': 'LAT', 'Español':'CAST', 'Subtitulado': 'VOSE'}
list_language = IDIOMAS.values()
list_quality = ['Cam', 'TSHQ', 'Dvdrip', 'Blurayrip', 'HD Rip 320p', 'hd rip 320p', 'HD Real 720p', 'Full HD 1080p']
list_servers = ['openload', 'gamovideo', 'streamplay', 'streamango', 'vidoza']
def mainlist(item): def mainlist(item):
logger.info() logger.info()
autoplay.init(item.channel, list_servers, list_quality)
itemlist = [] itemlist = []
itemlist.append(item.clone(title="Novedades", action="entradas", url="http://www.inkapelis.com/", itemlist.append(item.clone(title="Novedades", action="entradas", url="http://www.inkapelis.com/",
extra="Novedades", text_color=color1, thumbnail=get_thumb('newest', auto=True))) extra="Novedades", text_color=color1, thumbnail=get_thumb('newest', auto=True)))
itemlist.append(item.clone(title="Estrenos", action="entradas", url="http://www.inkapelis.com/genero/estrenos/", #itemlist.append(item.clone(title="Estrenos", action="entradas", url="http://www.inkapelis.com/genero/estrenos/",
text_color=color1, thumbnail=get_thumb('premieres', auto=True))) # text_color=color1, thumbnail=get_thumb('premieres', auto=True)))
itemlist.append(item.clone(title="Castellano", action="entradas",
url="https://www.inkapelis.com/?anio=&genero=&calidad=&idioma=Castellano&s=",
extra="Buscar", text_color=color1, thumbnail=get_thumb('espanolas', auto=True)))
itemlist.append(item.clone(title="Latino", action="entradas",
url="https://www.inkapelis.com/?anio=&genero=&calidad=&idioma=Latino&s=",
extra="Buscar", text_color=color1, thumbnail=get_thumb('latino', auto=True)))
itemlist.append(item.clone(title="VOSE", action="entradas",
url="https://www.inkapelis.com/?anio=&genero=&calidad=&idioma=Subtitulada&s=",
extra="Buscar", text_color=color1, thumbnail=get_thumb('newest', auto=True)))
itemlist.append(item.clone(title="Géneros", action="generos", url="http://www.inkapelis.com/", text_color=color1, itemlist.append(item.clone(title="Géneros", action="generos", url="http://www.inkapelis.com/", text_color=color1,
thumbnail=get_thumb('genres', auto=True),)) thumbnail=get_thumb('genres', auto=True),))
itemlist.append(item.clone(title="Buscar...", action="", text_color=color1)) itemlist.append(item.clone(title="Buscar...", action="", text_color=color1))
@@ -43,6 +67,9 @@ def mainlist(item):
itemlist.append( itemlist.append(
new_item.clone(action="filtro", title=title, url="http://www.inkapelis.com/?s=", text_color=color2)) new_item.clone(action="filtro", title=title, url="http://www.inkapelis.com/?s=", text_color=color2))
itemlist.append(item.clone(action="configuracion", title="Configurar canal...", text_color="gold", folder=False)) itemlist.append(item.clone(action="configuracion", title="Configurar canal...", text_color="gold", folder=False))
autoplay.show_option(item.channel, itemlist)
return itemlist return itemlist
@@ -66,6 +93,16 @@ def newest(categoria):
if categoria == "terror": if categoria == "terror":
item.url = "https://www.inkapelis.com/genero/terror/" item.url = "https://www.inkapelis.com/genero/terror/"
item.action = "entradas" item.action = "entradas"
if categoria == "castellano":
item.url = "https://www.inkapelis.com/?anio=&genero=&calidad=&idioma=Castellano&s="
item.extra = "Buscar"
item.action = "entradas"
if categoria == "latino":
item.url = "https://www.inkapelis.com/?anio=&genero=&calidad=&idioma=Latino&s="
item.extra = "Buscar"
item.action = "entradas"
itemlist = entradas(item) itemlist = entradas(item)
if itemlist[-1].action == "entradas": if itemlist[-1].action == "entradas":
@@ -246,8 +283,6 @@ def entradas(item):
thumbnail = scrapedthumbnail.replace("w185", "original") thumbnail = scrapedthumbnail.replace("w185", "original")
title = scrapedtitle title = scrapedtitle
calidad = calidad.strip() calidad = calidad.strip()
if calidad:
title += " [" + calidad + "]"
itemlist.append(item.clone(action="findvideos", title=title, url=scrapedurl, thumbnail=thumbnail, itemlist.append(item.clone(action="findvideos", title=title, url=scrapedurl, thumbnail=thumbnail,
contentTitle=scrapedtitle, fulltitle=scrapedtitle, contentTitle=scrapedtitle, fulltitle=scrapedtitle,
@@ -272,6 +307,10 @@ def entradas(item):
if category == "Eroticas +18": if category == "Eroticas +18":
continue continue
idioma = idioma.strip() idioma = idioma.strip()
if idioma in IDIOMAS:
idioma = IDIOMAS[idioma]
else:
idioma = IDIOMAS['Subtitulado']
calidad = calidad.strip() calidad = calidad.strip()
scrapedtitle = scrapedtitle.replace("Ver Pelicula ", "") scrapedtitle = scrapedtitle.replace("Ver Pelicula ", "")
title = scrapedtitle title = scrapedtitle
@@ -358,13 +397,17 @@ def findvideos(item):
patron = '<td><a href="([^"]+)".*?title="([^"]+)".*?<td>([^"]+)<\/td><td>([^"]+)<\/td>' patron = '<td><a href="([^"]+)".*?title="([^"]+)".*?<td>([^"]+)<\/td><td>([^"]+)<\/td>'
matches = scrapertools.find_multiple_matches(data, patron) matches = scrapertools.find_multiple_matches(data, patron)
for url, server, idioma, calidad in matches: for url, server, idioma, calidad in matches:
if idioma in IDIOMAS:
idioma= IDIOMAS[idioma]
else:
idioma = IDIOMAS['Subtitulado']
if server == "Embed": if server == "Embed":
server = "Nowvideo" server = "Nowvideo"
if server == "Ul": if server == "Ul":
server = "Uploaded" server = "Uploaded"
title = "%s [%s][%s]" % (server, idioma, calidad) title = "%s [%s][%s]" % (server, idioma, calidad)
itemlist.append(item.clone(action="play", title=title, url=url, language = idioma, quality = calidad, itemlist.append(item.clone(action="play", title=title, url=url, language=idioma, quality=calidad,
server = server)) server=server, infoLabels=item.infoLabels))
patron = 'id="(embed[0-9]*)".*?<div class="calishow">(.*?)<.*?src="([^"]+)"' patron = 'id="(embed[0-9]*)".*?<div class="calishow">(.*?)<.*?src="([^"]+)"'
matches = scrapertools.find_multiple_matches(data, patron) matches = scrapertools.find_multiple_matches(data, patron)
@@ -374,8 +417,15 @@ def findvideos(item):
title = "Directo" title = "Directo"
idioma = scrapertools.find_single_match(data, 'href="#%s".*?>([^<]+)<' % id_embed) idioma = scrapertools.find_single_match(data, 'href="#%s".*?>([^<]+)<' % id_embed)
title = "%s [%s][%s]" % (title.capitalize(), idioma, calidad) title = "%s [%s][%s]" % (title.capitalize(), idioma, calidad)
itemlist.append(item.clone(action="play", title=title, url=url, language = idioma, quality = calidad, itemlist.append(item.clone(action="play", title=title, url=url, language=idioma, quality=calidad,
server = server)) server=server))
# Requerido para FilterTools
itemlist = filtertools.get_links(itemlist, item, list_language)
# Requerido para AutoPlay
autoplay.start(itemlist, item)
if itemlist: if itemlist:
if not config.get_setting('menu_trailer', item.channel): if not config.get_setting('menu_trailer', item.channel):
@@ -402,4 +452,7 @@ def play(item):
else: else:
itemlist = servertools.find_video_items(data=item.url) itemlist = servertools.find_video_items(data=item.url)
for videoitem in itemlist:
videoitem.infoLabels=item.infoLabels
return itemlist return itemlist
+2 -2
View File
@@ -2,7 +2,7 @@
"id": "lacajita", "id": "lacajita",
"name": "LaCajita", "name": "LaCajita",
"language": ["cast", "lat"], "language": ["cast", "lat"],
"active": true, "active": false,
"adult": false, "adult": false,
"thumbnail": "http://i.imgur.com/LVdupxc.png", "thumbnail": "http://i.imgur.com/LVdupxc.png",
"categories": [ "categories": [
@@ -66,4 +66,4 @@
"visible": true "visible": true
} }
] ]
} }
+11 -40
View File
@@ -10,26 +10,8 @@ from core import tmdb
from core import jsontools from core import jsontools
from core.item import Item from core.item import Item
from platformcode import config, logger from platformcode import config, logger
from channelselector import get_thumb
tgenero = {"Comedia": "https://s7.postimg.cc/ne9g9zgwb/comedia.png",
"Suspense": "https://s13.postimg.cc/wmw6vl1cn/suspenso.png",
"Drama": "https://s16.postimg.cc/94sia332d/drama.png",
"Acción": "https://s3.postimg.cc/y6o9puflv/accion.png",
"Aventura": "https://s10.postimg.cc/6su40czih/aventura.png",
"Romance": "https://s15.postimg.cc/fb5j8cl63/romance.png",
"Animación": "https://s13.postimg.cc/5on877l87/animacion.png",
"Ciencia ficción": "https://s9.postimg.cc/diu70s7j3/cienciaficcion.png",
"Terror": "https://s7.postimg.cc/yi0gij3gb/terror.png",
"Documental": "https://s16.postimg.cc/7xjj4bmol/documental.png",
"Música": "https://s29.postimg.cc/bbxmdh9c7/musical.png",
"Fantasía": "https://s13.postimg.cc/65ylohgvb/fantasia.png",
"Misterio": "https://s1.postimg.cc/w7fdgf2vj/misterio.png",
"Crimen": "https://s4.postimg.cc/6z27zhirx/crimen.png",
"Familia": "https://s7.postimg.cc/6s7vdhqrf/familiar.png",
"Guerra": "https://s4.postimg.cc/n1h2jp2jh/guerra.png",
"Western": "https://s23.postimg.cc/lzyfbjzhn/western.png",
"Historia": "https://s15.postimg.cc/fmc050h1n/historia.png"
}
thumbletras = {'#': 'https://s32.postimg.cc/drojt686d/image.png', thumbletras = {'#': 'https://s32.postimg.cc/drojt686d/image.png',
'a': 'https://s32.postimg.cc/llp5ekfz9/image.png', 'a': 'https://s32.postimg.cc/llp5ekfz9/image.png',
@@ -73,53 +55,46 @@ def mainlist(item):
itemlist.append(item.clone(title="Estrenos", itemlist.append(item.clone(title="Estrenos",
action="lista", action="lista",
thumbnail='https://s21.postimg.cc/fy69wzm93/estrenos.png', thumbnail=get_thumb('premieres', auto=True),
fanart='https://s21.postimg.cc/fy69wzm93/estrenos.png',
url=host + 'estrenos' url=host + 'estrenos'
)) ))
itemlist.append(item.clone(title="Todas", itemlist.append(item.clone(title="Todas",
action="lista", action="lista",
thumbnail='https://s18.postimg.cc/fwvaeo6qh/todas.png', thumbnail=get_thumb('all', auto=True),
fanart='https://s18.postimg.cc/fwvaeo6qh/todas.png',
url=host url=host
)) ))
itemlist.append(item.clone(title="Generos", itemlist.append(item.clone(title="Generos",
action="seccion", action="seccion",
url=host, url=host,
thumbnail='https://s3.postimg.cc/5s9jg2wtf/generos.png', thumbnail=get_thumb('genres', auto=True),
fanart='https://s3.postimg.cc/5s9jg2wtf/generos.png',
extra='generos' extra='generos'
)) ))
itemlist.append(item.clone(title="Alfabetico", itemlist.append(item.clone(title="Alfabetico",
action="seccion", action="seccion",
url=host, url=host,
thumbnail='https://s17.postimg.cc/fwi1y99en/a-z.png', thumbnail=get_thumb('alphabet', auto=True),
fanart='https://s17.postimg.cc/fwi1y99en/a-z.png',
extra='a-z' extra='a-z'
)) ))
itemlist.append(item.clone(title="Mas Vistas", itemlist.append(item.clone(title="Mas Vistas",
action="lista", action="lista",
thumbnail='https://s9.postimg.cc/wmhzu9d7z/vistas.png', thumbnail=get_thumb('more watched', auto=True),
fanart='https://s9.postimg.cc/wmhzu9d7z/vistas.png',
url=host + 'peliculas-mas-vistas' url=host + 'peliculas-mas-vistas'
)) ))
itemlist.append(item.clone(title="Mas Votadas", itemlist.append(item.clone(title="Mas Votadas",
action="lista", action="lista",
thumbnail='https://s7.postimg.cc/9kg1nthzf/votadas.png', thumbnail=get_thumb('more voted', auto=True),
fanart='https://s7.postimg.cc/9kg1nthzf/votadas.png',
url=host + 'peliculas-mas-votadas' url=host + 'peliculas-mas-votadas'
)) ))
itemlist.append(item.clone(title="Buscar", itemlist.append(item.clone(title="Buscar",
action="search", action="search",
url=host + '?s=', url=host + '?s=',
thumbnail='https://s30.postimg.cc/pei7txpa9/buscar.png', thumbnail=get_thumb('search', auto=True)
fanart='https://s30.postimg.cc/pei7txpa9/buscar.png'
)) ))
return itemlist return itemlist
@@ -178,7 +153,7 @@ def seccion(item):
itemlist = [] itemlist = []
data = get_source(item.url) data = get_source(item.url)
if item.extra == 'generos': if item.extra == 'generos':
patron = '<li class=cat-item cat-item-.*?><a href=(.*?)>(.*?)<\/li>' patron = '<li class=cat-item cat-item-.*?><a href=(.*?)>(.*?)</a><\/li>'
elif item.extra == 'a-z': elif item.extra == 'a-z':
patron = '<li><a href=(.*?)>(\w|#)<\/a><\/li>' patron = '<li><a href=(.*?)>(\w|#)<\/a><\/li>'
matches = re.compile(patron, re.DOTALL).findall(data) matches = re.compile(patron, re.DOTALL).findall(data)
@@ -187,12 +162,8 @@ def seccion(item):
url = scrapedurl url = scrapedurl
thumbnail = '' thumbnail = ''
if item.extra == 'generos': if item.extra == 'generos':
title = re.sub(r'<\/a> \(\d+\)', '', scrapedtitle) #cantidad = re.findall(r'.*?<\/a> \((\d+)\)', scrapedtitle)
cantidad = re.findall(r'.*?<\/a> \((\d+)\)', scrapedtitle) title = scrapedtitle
th_title = title
title = title + ' (' + cantidad[0] + ')'
if th_title in tgenero:
thumbnail = tgenero[th_title]
else: else:
title = scrapedtitle title = scrapedtitle
if title.lower() in thumbletras: if title.lower() in thumbletras:
+4 -1
View File
@@ -434,6 +434,7 @@ def nuevos_cap(item):
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
data = jsontools.load(data) data = jsontools.load(data)
logger.debug(data)
capitulos = [] capitulos = []
if "Nuevas" in item.title: if "Nuevas" in item.title:
for child in data["b"]: for child in data["b"]:
@@ -455,13 +456,15 @@ def nuevos_cap(item):
infoLabels['season'] = int(season) infoLabels['season'] = int(season)
except: except:
infoLabels['season'] = 0 infoLabels['season'] = 0
if "Nuevos" in item.title: if "Nuevos" in item.title:
if not child['episode']: if not child['episode']:
episode = scrapertools.find_single_match(child['name'], '\d+x(\d+)') episode = scrapertools.find_single_match(child['name'], '\d+x(\d+)')
if not episode: if not episode:
episode = "0" episode = "0"
infoLabels['episode'] = int(episode) infoLabels['episode'] = int(episode)
elif "al" in child['episode']:
episode = "0"
infoLabels['episode'] = int(episode)
else: else:
infoLabels['episode'] = int(child['episode']) infoLabels['episode'] = int(child['episode'])
infoLabels['mediatype'] = "episode" infoLabels['mediatype'] = "episode"
+2 -2
View File
@@ -162,14 +162,14 @@ def seasons(item):
title='[COLOR yellow]Añadir esta serie a la videoteca[/COLOR]', title='[COLOR yellow]Añadir esta serie a la videoteca[/COLOR]',
url=item.url, url=item.url,
action="add_serie_to_library", action="add_serie_to_library",
extra="all_episodes", extra="episodios",
contentSerieName=item.contentSerieName, contentSerieName=item.contentSerieName,
)) ))
return itemlist return itemlist
def epidodios(item): def episodios(item):
logger.info() logger.info()
itemlist = [] itemlist = []
templist = seasons(item) templist = seasons(item)