Actualizados

- allcalidad: Cambio de dominio
- animeflv: Correción
- streamcloud
- Actualización interna
This commit is contained in:
Intel1
2019-04-03 10:55:58 -05:00
parent c00e776cae
commit 45cbccbc6b
144 changed files with 78567 additions and 400 deletions
+7 -1
View File
@@ -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)))
+7 -5
View File
@@ -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)
-22
View File
@@ -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
}
]
}
-146
View File
@@ -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
+1 -1
View File
@@ -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)
+1 -1
View File
@@ -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:
+8 -8
View File
@@ -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] + "\"")
+2 -2
View File
@@ -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|&nbsp;|<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>'
+9 -8
View File
@@ -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')
+2 -2
View File
@@ -86,7 +86,7 @@ def mas_vistas(item):
data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;|<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}|&nbsp;|<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)
+2 -2
View File
@@ -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="([^"]+)".*?'
+11 -63
View File
@@ -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}|&nbsp;", "", 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