Actualizados
- allcalidad: Cambio de dominio - animeflv: Correción - streamcloud - Actualización interna
This commit is contained in:
@@ -19,7 +19,7 @@ list_servers = ['rapidvideo', 'streamango', 'fastplay', 'flashx', 'openload', 'v
|
||||
|
||||
__channel__='allcalidad'
|
||||
|
||||
host = "https://allcalidad.net/"
|
||||
host = "https://allcalidad.io/"
|
||||
|
||||
try:
|
||||
__modo_grafico__ = config.get_setting('modo_grafico', __channel__)
|
||||
@@ -29,6 +29,12 @@ except:
|
||||
|
||||
def mainlist(item):
|
||||
logger.info()
|
||||
import ast
|
||||
from core import jsontools
|
||||
data = '{"country_code":"PE","country_name":"Peru","city":null,"postal":null,"latitude":-12.0433,"longitude":-77.0283,"IPv4":"190.41.210.15","state":null}'
|
||||
data = data.replace("null",'"null"')
|
||||
logger.info("Intel22 %s" %data)
|
||||
user_loc = ast.literal_eval(data)
|
||||
autoplay.init(item.channel, list_servers, list_quality)
|
||||
itemlist = []
|
||||
itemlist.append(Item(channel = item.channel, title = "Novedades", action = "peliculas", url = host, thumbnail = get_thumb("newest", auto = True)))
|
||||
|
||||
@@ -215,16 +215,18 @@ def findvideos(item):
|
||||
itemlist = []
|
||||
data = re.sub(r"\n|\r|\t|\s{2}|-\s", "", httptools.downloadpage(item.url).data)
|
||||
videos = scrapertools.find_single_match(data, 'var videos = (.*?);')
|
||||
|
||||
videos_json = jsontools.load(videos)
|
||||
for video_lang in videos_json.items():
|
||||
language = video_lang[0]
|
||||
matches = scrapertools.find_multiple_matches(str(video_lang[1]), 'src="([^"]+)"')
|
||||
for source in matches:
|
||||
new_data = httptools.downloadpage(source).data
|
||||
if 'redirector' in source:
|
||||
matches = scrapertools.find_multiple_matches(str(video_lang[1]), "code': '(.*?)'")
|
||||
|
||||
for source in matches:
|
||||
url = source
|
||||
if 'redirector' in source:
|
||||
new_data = httptools.downloadpage(source).data
|
||||
url = scrapertools.find_single_match(new_data, 'window.location.href = "([^"]+)"')
|
||||
elif 'embed' in source:
|
||||
elif 'animeflv.net/embed' in source:
|
||||
source = source.replace('embed', 'check')
|
||||
new_data = httptools.downloadpage(source).data
|
||||
json_data = jsontools.load(new_data)
|
||||
|
||||
@@ -1,22 +0,0 @@
|
||||
{
|
||||
"id": "beeg",
|
||||
"name": "Beeg",
|
||||
"active": true,
|
||||
"adult": true,
|
||||
"language": ["*"],
|
||||
"thumbnail": "beeg.png",
|
||||
"banner": "beeg.png",
|
||||
"categories": [
|
||||
"adult"
|
||||
],
|
||||
"settings": [
|
||||
{
|
||||
"id": "include_in_global_search",
|
||||
"type": "bool",
|
||||
"label": "Incluir en busqueda global",
|
||||
"default": true,
|
||||
"enabled": true,
|
||||
"visible": true
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,146 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import re
|
||||
import urllib
|
||||
|
||||
from core import jsontools as json, httptools
|
||||
from core import scrapertools
|
||||
from core.item import Item
|
||||
from platformcode import logger
|
||||
|
||||
url_api = ""
|
||||
beeg_salt = ""
|
||||
Host = "https://beeg.com"
|
||||
|
||||
|
||||
def get_api_url():
|
||||
global url_api
|
||||
global beeg_salt
|
||||
data = scrapertools.downloadpage(Host)
|
||||
version = re.compile('<script src="/static/cpl/([\d]+).js"').findall(data)[0]
|
||||
js_url = Host + "/static/cpl/" + version + ".js"
|
||||
url_api = Host + "/api/v6/" + version
|
||||
data = scrapertools.downloadpage(js_url)
|
||||
beeg_salt = re.compile('beeg_salt="([^"]+)"').findall(data)[0]
|
||||
|
||||
|
||||
def decode(key):
|
||||
a = beeg_salt
|
||||
e = unicode(urllib.unquote(key), "utf8")
|
||||
t = len(a)
|
||||
o = ""
|
||||
for n in range(len(e)):
|
||||
r = ord(e[n:n + 1])
|
||||
i = n % t
|
||||
s = ord(a[i:i + 1]) % 21
|
||||
o += chr(r - s)
|
||||
|
||||
n = []
|
||||
for x in range(len(o), 0, -3):
|
||||
if x >= 3:
|
||||
n.append(o[(x - 3):x])
|
||||
else:
|
||||
n.append(o[0:x])
|
||||
|
||||
return "".join(n)
|
||||
|
||||
|
||||
get_api_url()
|
||||
|
||||
|
||||
def mainlist(item):
|
||||
logger.info()
|
||||
get_api_url()
|
||||
itemlist = []
|
||||
itemlist.append(Item(channel=item.channel, action="videos", title="Útimos videos", url=url_api + "/index/main/0/pc",
|
||||
viewmode="movie"))
|
||||
# itemlist.append(Item(channel=item.channel, action="listcategorias", title="Listado categorias Populares",
|
||||
# url=url_api + "/index/main/0/pc", extra="popular"))
|
||||
itemlist.append(Item(channel=item.channel, action="listcategorias", title="Listado categorias completo",
|
||||
url=url_api + "/index/main/0/pc", extra="nonpopular"))
|
||||
itemlist.append(
|
||||
Item(channel=item.channel, action="search", title="Buscar", url=url_api + "/index/search/0/pc?query=%s"))
|
||||
return itemlist
|
||||
|
||||
|
||||
def videos(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
data = httptools.downloadpage(item.url).data
|
||||
JSONData = json.load(data)
|
||||
|
||||
for Video in JSONData["videos"]:
|
||||
thumbnail = "http://img.beeg.com/236x177/" + Video["id"] + ".jpg"
|
||||
url = url_api + "/video/" + Video["id"]
|
||||
title = Video["title"]
|
||||
itemlist.append(
|
||||
Item(channel=item.channel, action="play", title=title, url=url, thumbnail=thumbnail, plot="", show="",
|
||||
folder=True, contentType="movie"))
|
||||
|
||||
# Paginador
|
||||
Actual = int(scrapertools.get_match(item.url, url_api + '/index/[^/]+/([0-9]+)/pc'))
|
||||
if JSONData["pages"] - 1 > Actual:
|
||||
scrapedurl = item.url.replace("/" + str(Actual) + "/", "/" + str(Actual + 1) + "/")
|
||||
itemlist.append(
|
||||
Item(channel=item.channel, action="videos", title="Página Siguiente", url=scrapedurl, thumbnail="",
|
||||
folder=True, viewmode="movie"))
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def listcategorias(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
data = httptools.downloadpage(item.url).data
|
||||
JSONData = json.load(data)
|
||||
|
||||
# for Tag in JSONData["tags"][item.extra]:
|
||||
for Tag in JSONData["tags"]:
|
||||
url = url_api + "/index/tag/0/pc?tag=" + Tag["tag"]
|
||||
title = '%s - %s' % (str(Tag["tag"]), str(Tag["videos"]))
|
||||
# title = title[:1].upper() + title[1:]
|
||||
itemlist.append(
|
||||
Item(channel=item.channel, action="videos", title=title, url=url, folder=True, viewmode="movie"))
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
def search(item, texto):
|
||||
logger.info()
|
||||
|
||||
texto = texto.replace(" ", "+")
|
||||
item.url = item.url % (texto)
|
||||
|
||||
try:
|
||||
return videos(item)
|
||||
# Se captura la excepción, para no interrumpir al buscador global si un canal falla
|
||||
except:
|
||||
import sys
|
||||
for line in sys.exc_info():
|
||||
logger.error("%s" % line)
|
||||
return []
|
||||
|
||||
|
||||
def play(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
data = scrapertools.downloadpage(item.url)
|
||||
|
||||
JSONData = json.load(data)
|
||||
for key in JSONData:
|
||||
videourl = re.compile("([0-9]+p)", re.DOTALL).findall(key)
|
||||
if videourl:
|
||||
videourl = videourl[0]
|
||||
if not JSONData[videourl] == None:
|
||||
url = JSONData[videourl]
|
||||
url = url.replace("{DATA_MARKERS}", "data=pc.ES")
|
||||
viedokey = re.compile("key=(.*?)%2Cend=", re.DOTALL).findall(url)[0]
|
||||
|
||||
url = url.replace(viedokey, decode(viedokey))
|
||||
if not url.startswith("https:"):
|
||||
url = "https:" + url
|
||||
title = videourl
|
||||
itemlist.append(["%s %s [directo]" % (title, url[-4:]), url])
|
||||
|
||||
itemlist.sort(key=lambda item: item[0])
|
||||
return itemlist
|
||||
@@ -69,7 +69,7 @@ def agregadas(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
data = httptools.downloadpage(item.url).data
|
||||
fichas = re.sub(r"\n|\s{2}","",scrapertools.get_match(data,'<div class="review-box-container">(.*?)wp-pagenavi'))
|
||||
fichas = re.sub(r"\n|\s{2}","",scrapertools.find_single_match(data,'<div class="review-box-container">(.*?)wp-pagenavi'))
|
||||
patron = '<div class="post-thumbnail"><a href="([^"]+)".*?' # url
|
||||
patron+= 'title="([^"]+)".*?' # title
|
||||
patron+= 'src="([^"]+).*?' # thumbnail
|
||||
|
||||
@@ -158,7 +158,7 @@ def findvideos(item):
|
||||
|
||||
# Descarga la página
|
||||
data = httptools.downloadpage(item.url).data
|
||||
data = scrapertools.get_match(data, "<div class='post-body entry-content'(.*?)<div class='post-footer'>")
|
||||
data = scrapertools.find_single_match(data, "<div class='post-body entry-content'(.*?)<div class='post-footer'>")
|
||||
|
||||
# Busca los enlaces a los videos
|
||||
listavideos = servertools.findvideos(data)
|
||||
|
||||
@@ -68,7 +68,7 @@ def categorias(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
data = httptools.downloadpage(item.url).data
|
||||
data = scrapertools.get_match(data,'<a>CATEGORÍAS</a>(.*?)</ul>')
|
||||
data = scrapertools.find_single_match(data,'<a>CATEGORÍAS</a>(.*?)</ul>')
|
||||
patron = '<a href="([^"]+)">([^"]+)</a>'
|
||||
matches = re.compile(patron,re.DOTALL).findall(data)
|
||||
for scrapedurl,scrapedtitle in matches:
|
||||
|
||||
@@ -162,8 +162,8 @@ def items_usuario(item):
|
||||
## Fichas usuario
|
||||
url = item.url.split("?")[0]
|
||||
post = item.url.split("?")[1]
|
||||
old_start = scrapertools.get_match(post, 'start=([^&]+)&')
|
||||
limit = scrapertools.get_match(post, 'limit=(\d+)')
|
||||
old_start = scrapertools.find_single_match(post, 'start=([^&]+)&')
|
||||
limit = scrapertools.find_single_match(post, 'limit=(\d+)')
|
||||
start = "%s" % (int(old_start) + int(limit))
|
||||
post = post.replace("start=" + old_start, "start=" + start)
|
||||
next_page = url + "?" + post
|
||||
@@ -243,7 +243,7 @@ def fichas(item):
|
||||
|
||||
if item.title == "Buscar...":
|
||||
data = agrupa_datos(httptools.downloadpage(item.url, post=item.extra).data)
|
||||
s_p = scrapertools.get_match(data, '<h3 class="section-title">(.*?)<div id="footer-wrapper">').split(
|
||||
s_p = scrapertools.find_single_match(data, '<h3 class="section-title">(.*?)<div id="footer-wrapper">').split(
|
||||
'<h3 class="section-title">')
|
||||
if len(s_p) == 1:
|
||||
data = s_p[0]
|
||||
@@ -332,7 +332,7 @@ def episodios(item):
|
||||
data = agrupa_datos(httptools.downloadpage(item.url).data)
|
||||
if id == "0":
|
||||
## Se saca el id de la serie de la página cuando viene de listado_series
|
||||
id = scrapertools.get_match(data, "<script>var sid = '([^']+)';</script>")
|
||||
id = scrapertools.find_single_match(data, "<script>var sid = '([^']+)';</script>")
|
||||
url_targets = url_targets.replace('###0', '###' + id)
|
||||
str = get_status(status, "shows", id)
|
||||
if str != "" and account and item.category != "Series" and "XBMC" not in item.title:
|
||||
@@ -357,8 +357,8 @@ def episodios(item):
|
||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||
for scrapedurl in matches:
|
||||
data = agrupa_datos(httptools.downloadpage(scrapedurl).data)
|
||||
sid = scrapertools.get_match(data, "<script>var sid = '(\d+)'")
|
||||
ssid = scrapertools.get_match(scrapedurl, "temporada-(\d+)")
|
||||
sid = scrapertools.find_single_match(data, "<script>var sid = '(\d+)'")
|
||||
ssid = scrapertools.find_single_match(scrapedurl, "temporada-(\d+)")
|
||||
post = "action=season&start=0&limit=0&show=%s&season=%s" % (sid, ssid)
|
||||
url = host + "/a/episodes"
|
||||
data = httptools.downloadpage(url, post=post).data
|
||||
@@ -413,7 +413,7 @@ def novedades_episodios(item):
|
||||
## Episodios
|
||||
url = item.url.split("?")[0]
|
||||
post = item.url.split("?")[1]
|
||||
old_start = scrapertools.get_match(post, 'start=([^&]+)&')
|
||||
old_start = scrapertools.find_single_match(post, 'start=([^&]+)&')
|
||||
start = "%s" % (int(old_start) + 24)
|
||||
post = post.replace("start=" + old_start, "start=" + start)
|
||||
next_page = url + "?" + post
|
||||
@@ -703,7 +703,7 @@ def jhexdecode(t):
|
||||
else:
|
||||
return ""
|
||||
r = re.sub(r'(?:\\|)x(\w{2})', to_hx, r).replace('var ', '')
|
||||
f = eval(scrapertools.get_match(r, '\s*var_0\s*=\s*([^;]+);'))
|
||||
f = eval(scrapertools.find_single_match(r, '\s*var_0\s*=\s*([^;]+);'))
|
||||
for i, v in enumerate(f):
|
||||
r = r.replace('[[var_0[%s]]' % i, "." + f[i])
|
||||
r = r.replace(':var_0[%s]' % i, ":\"" + f[i] + "\"")
|
||||
|
||||
@@ -37,7 +37,7 @@ def categorias(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
data = httptools.downloadpage(item.url).data
|
||||
data = scrapertools.get_match(data,'<ul class="cf">(.*?)</ul>')
|
||||
data = scrapertools.find_single_match(data,'<ul class="cf">(.*?)</ul>')
|
||||
data = re.sub(r"\n|\r|\t| |<br>", "", data)
|
||||
patron = '<li>.*?<a href="([^"]+)".*?'
|
||||
patron += '<img class="thumb" src="([^"]+)" alt="([^"]+)".*?'
|
||||
@@ -57,7 +57,7 @@ def lista(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
data = httptools.downloadpage(item.url).data
|
||||
data = scrapertools.get_match(data,'<ul class="cf">(.*?)<h2>Advertisement</h2>')
|
||||
data = scrapertools.find_single_match(data,'<ul class="cf">(.*?)<h2>Advertisement</h2>')
|
||||
patron = '<li>.*?<a href="([^"]+)".*?'
|
||||
patron += 'src="([^"]+)" alt="([^"]+)".*?'
|
||||
patron += '<span class="time">(.*?)</span>'
|
||||
|
||||
@@ -8,6 +8,7 @@ from threading import Thread
|
||||
|
||||
import xbmc
|
||||
import xbmcgui
|
||||
from core import httptools
|
||||
from core import scrapertools
|
||||
from core import tmdb
|
||||
from core.item import Item
|
||||
@@ -15,6 +16,7 @@ from core.scrapertools import decodeHtmlentities as dhe
|
||||
from platformcode import config, logger
|
||||
from platformcode import platformtools
|
||||
|
||||
global mainWindow
|
||||
mainWindow = list()
|
||||
ActoresWindow = None
|
||||
TrailerWindow = None
|
||||
@@ -43,7 +45,6 @@ if xinfoplus_set == config.get_localized_string(70130):
|
||||
set_animation = True
|
||||
|
||||
def start(item, recomendaciones=[], from_window=False):
|
||||
global mainWindow
|
||||
if from_window:
|
||||
global relatedWindow, ActorInfoWindow, ActoresWindow, BusquedaWindow, TrailerWindow, imagesWindow
|
||||
create = [relatedWindow, ActorInfoWindow, ActoresWindow, BusquedaWindow, TrailerWindow, imagesWindow]
|
||||
@@ -192,13 +193,13 @@ class main(xbmcgui.WindowDialog):
|
||||
titulo = re.sub("'", "", titulo)
|
||||
url_tvthemes = "http://televisiontunes.com/search.php?q=%s" % titulo.replace(' ', '+')
|
||||
|
||||
data = scrapertools.downloadpage(url_tvthemes)
|
||||
data = httptools.downloadpage(url_tvthemes).data
|
||||
page_theme = scrapertools.find_single_match(data, '<!-- sond design -->.*?<li><a href="([^"]+)"')
|
||||
|
||||
if page_theme:
|
||||
page_theme = "http://televisiontunes.com" + page_theme
|
||||
data = scrapertools.downloadpage(page_theme)
|
||||
song = scrapertools.get_match(data, '<form name="song_name_form">.*?type="hidden" value="(.*?)"')
|
||||
data = httptools.downloadpage(page_theme).data
|
||||
song = scrapertools.find_single_match(data, '<form name="song_name_form">.*?type="hidden" value="(.*?)"')
|
||||
song = song.replace(" ", "%20")
|
||||
pl = xbmc.PlayList(xbmc.PLAYLIST_MUSIC)
|
||||
pl.clear()
|
||||
@@ -1515,7 +1516,7 @@ class ActorInfo(xbmcgui.WindowDialog):
|
||||
|
||||
actor_tmdb = tmdb.Tmdb(discover=search)
|
||||
if not actor_tmdb.result.get("biography") and actor_tmdb.result.get("imdb_id"):
|
||||
data = scrapertools.downloadpage("http://www.imdb.com/name/%s/bio" % actor_tmdb.result["imdb_id"])
|
||||
data = httptools.downloadpage("http://www.imdb.com/name/%s/bio" % actor_tmdb.result["imdb_id"]).data
|
||||
info = scrapertools.find_single_match(data, '<div class="soda odd">.*?<p>(.*?)</p>')
|
||||
if info:
|
||||
bio = dhe(scrapertools.htmlclean(info.strip()))
|
||||
@@ -2267,7 +2268,7 @@ def get_filmaf(item, infoLabels):
|
||||
year = str(infoLabels.get("year", ""))
|
||||
url = "http://www.filmaffinity.com/es/advsearch.php?stext={0}&stype%5B%5D=title&country=&genre=&fromyear={1}&toyear={1}".format(
|
||||
title, year)
|
||||
data = scrapertools.downloadpage(url)
|
||||
data = httptools.downloadpage(url).data
|
||||
|
||||
tipo = "película"
|
||||
if item.contentType != "movie":
|
||||
@@ -2275,7 +2276,7 @@ def get_filmaf(item, infoLabels):
|
||||
url_filmaf = scrapertools.find_single_match(data, '<div class="mc-poster">\s*<a title="[^"]*" href="([^"]+)"')
|
||||
if url_filmaf:
|
||||
url_filmaf = "http://www.filmaffinity.com%s" % url_filmaf
|
||||
data = scrapertools.downloadpage(url_filmaf)
|
||||
data = httptools.downloadpage(url_filmaf).data
|
||||
|
||||
rating = scrapertools.find_single_match(data, 'itemprop="ratingValue" content="([^"]+)"')
|
||||
if not rating:
|
||||
@@ -2318,7 +2319,7 @@ def fanartv(item, infoLabels, images={}):
|
||||
% infoLabels['tmdb_id']
|
||||
else:
|
||||
url = "http://webservice.fanart.tv/v3/tv/%s?api_key=cab16e262d72fea6a6843d679aa10300" % id_search
|
||||
data = jsontools.load(scrapertools.downloadpage(url, headers=headers))
|
||||
data = jsontools.load(httptools.downloadpage(url, headers=headers).data)
|
||||
if data and not "error message" in data:
|
||||
for key, value in data.items():
|
||||
if key not in ["name", "tmdb_id", "imdb_id", "thetvdb_id"]:
|
||||
|
||||
@@ -222,7 +222,7 @@ def findvideos(item):
|
||||
calidad = re.sub(r'ts', 'ts-hq', calidad)
|
||||
url = host + "/goto/"
|
||||
url_post = urllib.urlencode({'id': id})
|
||||
server_name = scrapertools.get_match(server, '(\w+)\.').replace("waaw","netutv")
|
||||
server_name = scrapertools.find_single_match(server, '(\w+)\.').replace("waaw","netutv")
|
||||
server_parameters = servertools.get_server_parameters(server_name)
|
||||
icon_server = server_parameters.get("thumbnail", "")
|
||||
extra = "online"
|
||||
@@ -250,7 +250,7 @@ def findvideos(item):
|
||||
idioma = "[COLOR brown]" + idioma + "[/COLOR]"
|
||||
url = host + "/goto/"
|
||||
data_post = urllib.urlencode({'id': id})
|
||||
server_name = scrapertools.get_match(server, '(.*?)\.').strip()
|
||||
server_name = scrapertools.find_single_match(server, '(.*?)\.').strip()
|
||||
icon_server = os.path.join(config.get_runtime_path(), "resources", "images", "servers",
|
||||
"server_" + server_name + ".png")
|
||||
icon_server = icon_server.replace('streamin', 'streaminto')
|
||||
|
||||
@@ -86,7 +86,7 @@ def mas_vistas(item):
|
||||
data = re.sub(r"\n|\r|\t|\s{2}| |<Br>|<BR>|<br>|<br/>|<br />|-\s", "", data)
|
||||
data = re.sub(r"<!--.*?-->", "", data)
|
||||
patron = "<div class='widget HTML' id='HTML3'.+?<div class='widget-content'>(.*?)</div>"
|
||||
data = scrapertools.get_match(data, patron)
|
||||
data = scrapertools.find_single_match(data, patron)
|
||||
item.data = data
|
||||
item.first = 0
|
||||
return series_seccion(item)
|
||||
@@ -99,7 +99,7 @@ def listado_completo(item):
|
||||
data = re.sub(r"\n|\r|\t|\s{2}| |<Br>|<BR>|<br>|<br/>|<br />|-\s", "", data)
|
||||
data = re.sub(r"<!--.*?-->", "", data)
|
||||
patron = '<div class="widget HTML" id="HTML10".+?<div class="widget-content">(.*?)</div>'
|
||||
data = scrapertools.get_match(data, patron)
|
||||
data = scrapertools.find_single_match(data, patron)
|
||||
item.first = 0
|
||||
item.data = data
|
||||
return series_seccion(item)
|
||||
|
||||
@@ -81,7 +81,7 @@ def videos(item):
|
||||
def chicas(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
data = scrapertools.downloadpage(item.url)
|
||||
data = httptools.downloadpage(item.url).data
|
||||
patron = '<div class="box-chica">.*?'
|
||||
patron += '<a href="([^"]+)" title="">.*?'
|
||||
patron += '<img class="img" src=\'([^"]+)\' width="175" height="150" border=\'0\' alt="[^"]+" />.*?'
|
||||
@@ -110,7 +110,7 @@ def chicas(item):
|
||||
def categorias(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
data = scrapertools.downloadpage(item.url)
|
||||
data = httptools.downloadpage(item.url).data
|
||||
patron = '<div class="wrap-box-escena.*?'
|
||||
patron += 'href="([^"]+)"><img src="([^"]+)".*?'
|
||||
patron += '<h4.*?<a href="[^"]+">([^<]+)</a></h4>'
|
||||
|
||||
@@ -37,7 +37,7 @@ def search(item, texto):
|
||||
def videos(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
data = scrapertools.downloadpageGzip(item.url)
|
||||
data = httptools.downloadpage(item.url).data
|
||||
patron = '<div class="item-block item-normal col".*?'
|
||||
patron += '<a href="([^"]+)" title="([^"]+)">.*?'
|
||||
patron += 'data-src="([^"]+)".*?'
|
||||
|
||||
@@ -7,6 +7,7 @@ import re
|
||||
import urllib
|
||||
import urlparse
|
||||
|
||||
from core import httptools
|
||||
from core import jsontools
|
||||
from core import scrapertools
|
||||
from core import servertools
|
||||
@@ -94,8 +95,6 @@ def buscartrailer(item, trailers=[]):
|
||||
if not item.show and not item.infoLabels['tvshowtitle']:
|
||||
itemlist.append(item.clone(title=title % config.get_localized_string(70508),
|
||||
action="abandomoviez_search", text_color="green"))
|
||||
itemlist.append(item.clone(title=title % config.get_localized_string(70509),
|
||||
action="jayhap_search", text_color="green"))
|
||||
|
||||
if item.contextual:
|
||||
global window_select, result
|
||||
@@ -120,8 +119,6 @@ def manual_search(item):
|
||||
return youtube_search(item.clone(contentTitle=texto, page=""))
|
||||
elif item.extra == "filmaffinity":
|
||||
return filmaffinity_search(item.clone(contentTitle=texto, page="", year=""))
|
||||
elif item.extra == "jayhap":
|
||||
return jayhap_search(item.clone(contentTitle=texto))
|
||||
|
||||
|
||||
def tmdb_trailers(item, tipo="movie"):
|
||||
@@ -153,11 +150,11 @@ def youtube_search(item):
|
||||
titulo += " trailer"
|
||||
# Comprueba si es una búsqueda de cero o viene de la opción Siguiente
|
||||
if item.page != "":
|
||||
data = scrapertools.downloadpage(item.page)
|
||||
data = httptools.downloadpage(item.page).data
|
||||
else:
|
||||
titulo = urllib.quote(titulo)
|
||||
titulo = titulo.replace("%20", "+")
|
||||
data = scrapertools.downloadpage("https://www.youtube.com/results?sp=EgIQAQ%253D%253D&q=" + titulo)
|
||||
data = httptools.downloadpage("https://www.youtube.com/results?sp=EgIQAQ%253D%253D&q=" + titulo).data
|
||||
data = re.sub(r"\n|\r|\t|\s{2}| ", "", data)
|
||||
patron = """"thumbnails":\[\{"url":"(https://i.ytimg.com/vi[^"]+).*?"""
|
||||
patron += """simpleText":"([^"]+).*?"""
|
||||
@@ -200,18 +197,18 @@ def abandomoviez_search(item):
|
||||
|
||||
# Comprueba si es una búsqueda de cero o viene de la opción Siguiente
|
||||
if item.page != "":
|
||||
data = scrapertools.downloadpage(item.page)
|
||||
data = httptools.downloadpage(item.page).data
|
||||
else:
|
||||
titulo = item.contentTitle.decode('utf-8').encode('iso-8859-1')
|
||||
post = urllib.urlencode({'query': titulo, 'searchby': '1', 'posicion': '1', 'orden': '1',
|
||||
'anioin': item.year, 'anioout': item.year, 'orderby': '1'})
|
||||
url = "http://www.abandomoviez.net/db/busca_titulo_advance.php"
|
||||
item.prefix = "db/"
|
||||
data = scrapertools.downloadpage(url, post=post)
|
||||
data = httptools.downloadpage(url, post=post).data
|
||||
if "No hemos encontrado ninguna" in data:
|
||||
url = "http://www.abandomoviez.net/indie/busca_titulo_advance.php"
|
||||
item.prefix = "indie/"
|
||||
data = scrapertools.downloadpage(url, post=post).decode("iso-8859-1").encode('utf-8')
|
||||
data = httptools.downloadpage(url, post=post).data.decode("iso-8859-1").encode('utf-8')
|
||||
|
||||
itemlist = []
|
||||
patron = '(?:<td width="85"|<div class="col-md-2 col-sm-2 col-xs-3">).*?<img src="([^"]+)"' \
|
||||
@@ -253,7 +250,7 @@ def abandomoviez_search(item):
|
||||
def search_links_abando(item):
|
||||
logger.info()
|
||||
|
||||
data = scrapertools.downloadpage(item.url)
|
||||
data = httptools.downloadpage(item.url).data
|
||||
itemlist = []
|
||||
if "Lo sentimos, no tenemos trailer" in data:
|
||||
itemlist.append(item.clone(title=config.get_localized_string(70503), action="", text_color=""))
|
||||
@@ -288,7 +285,7 @@ def search_links_abando(item):
|
||||
progreso.update(10 + (90 * i / len(matches)), message)
|
||||
scrapedtitle = "[COLOR white]%s[/COLOR]" % scrapedtitle
|
||||
|
||||
data_trailer = scrapertools.downloadpage(scrapedurl)
|
||||
data_trailer = httptools.downloadpage(scrapedurl).data
|
||||
trailer_url = scrapertools.find_single_match(data_trailer, 'iframe.*?src="([^"]+)"')
|
||||
trailer_url = trailer_url.replace("embed/", "watch?v=")
|
||||
code = scrapertools.find_single_match(trailer_url, 'v=([A-z0-9\-_]+)')
|
||||
@@ -318,12 +315,12 @@ def filmaffinity_search(item):
|
||||
|
||||
# Comprueba si es una búsqueda de cero o viene de la opción Siguiente
|
||||
if item.page != "":
|
||||
data = scrapertools.downloadpage(item.page)
|
||||
data = httptools.downloadpage(item.page).data
|
||||
else:
|
||||
params = urllib.urlencode([('stext', item.contentTitle), ('stype%5B%5D', 'title'), ('country', ''),
|
||||
('genre', ''), ('fromyear', item.year), ('toyear', item.year)])
|
||||
url = "http://www.filmaffinity.com/es/advsearch.php?%s" % params
|
||||
data = scrapertools.downloadpage(url)
|
||||
data = httptools.downloadpage(url).data
|
||||
|
||||
itemlist = []
|
||||
patron = '<div class="mc-poster">.*?<img.*?src="([^"]+)".*?' \
|
||||
@@ -371,7 +368,7 @@ def search_links_filmaff(item):
|
||||
logger.info()
|
||||
|
||||
itemlist = []
|
||||
data = scrapertools.downloadpage(item.url)
|
||||
data = httptools.downloadpage(item.url).data
|
||||
if not '<a class="lnkvvid"' in data:
|
||||
itemlist.append(item.clone(title=config.get_localized_string(70503), action="", text_color=""))
|
||||
else:
|
||||
@@ -408,55 +405,6 @@ def search_links_filmaff(item):
|
||||
return itemlist
|
||||
|
||||
|
||||
def jayhap_search(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
|
||||
if item.extra != "jayhap":
|
||||
item.contentTitle += " trailer"
|
||||
texto = item.contentTitle
|
||||
post = urllib.urlencode({'q': texto, 'yt': 'true', 'vm': 'true', 'dm': 'true',
|
||||
'v': 'all', 'l': 'all', 'd': 'all'})
|
||||
|
||||
# Comprueba si es una búsqueda de cero o viene de la opción Siguiente
|
||||
if item.page != "":
|
||||
post += urllib.urlencode(item.page)
|
||||
data = scrapertools.downloadpage("https://www.jayhap.com/load_more.php", post=post)
|
||||
else:
|
||||
data = scrapertools.downloadpage("https://www.jayhap.com/get_results.php", post=post)
|
||||
data = jsontools.load(data)
|
||||
for video in data['videos']:
|
||||
url = video['url']
|
||||
server = video['source'].lower()
|
||||
duration = " (" + video['duration'] + ")"
|
||||
title = video['title'].decode("utf-8") + duration + " [" + server.capitalize() + "]"
|
||||
thumbnail = video['thumbnail']
|
||||
if item.contextual:
|
||||
title = "[COLOR white]%s[/COLOR]" % title
|
||||
itemlist.append(item.clone(action="play", server=server, title=title, url=url, thumbnail=thumbnail,
|
||||
text_color="white"))
|
||||
|
||||
if not itemlist:
|
||||
itemlist.append(item.clone(title=config.get_localized_string(70501) % item.contentTitle,
|
||||
action="", thumbnail="", text_color=""))
|
||||
else:
|
||||
tokens = data['tokens']
|
||||
tokens['yt_token'] = tokens.pop('youtube')
|
||||
tokens['vm_token'] = tokens.pop('vimeo')
|
||||
tokens['dm_token'] = tokens.pop('dailymotion')
|
||||
itemlist.append(item.clone(title=config.get_localized_string(70502), page=tokens, action="jayhap_search", extra="jayhap",
|
||||
thumbnail="", text_color=""))
|
||||
|
||||
if keyboard:
|
||||
if item.contextual:
|
||||
title = "[COLOR green]%s[/COLOR]"
|
||||
else:
|
||||
title = "%s"
|
||||
itemlist.append(item.clone(title=title % config.get_localized_string(70514), action="manual_search",
|
||||
text_color="green", thumbnail="", extra="jayhap"))
|
||||
|
||||
return itemlist
|
||||
|
||||
|
||||
try:
|
||||
import xbmcgui
|
||||
|
||||
Reference in New Issue
Block a user