Merge remote-tracking branch 'alfa-addon/master'

This commit is contained in:
unknown
2017-09-08 17:37:09 -03:00
47 changed files with 1741 additions and 2273 deletions

View File

@@ -233,9 +233,12 @@ def get_localized_string(code):
translationsfile = open(TRANSLATION_FILE_PATH, "r")
translations = translationsfile.read()
translationsfile.close()
cadenas = re.findall('<string id="%s">([^<]+)<' % code, translations)
cadenas = re.findall('msgctxt\s*"#%s"\nmsgid\s*"(.*?)"\nmsgstr\s*"(.*?)"' % code, translations)
if len(cadenas) > 0:
dev = cadenas[0]
dev = cadenas[0][1]
if not dev:
dev = cadenas[0][0]
else:
dev = "%d" % code
@@ -366,7 +369,7 @@ configfilepath = os.path.join(get_data_path(), "settings.xml")
if not os.path.exists(get_data_path()):
os.mkdir(get_data_path())
# Literales
TRANSLATION_FILE_PATH = os.path.join(get_runtime_path(), "resources", "language", "Spanish", "strings.xml")
TRANSLATION_FILE_PATH = os.path.join(get_runtime_path(), "resources", "language", "resource.language.es_es", "strings.po")
load_settings()
# modo adulto:

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.alfa" name="Alfa" version="1.9.5" provider-name="Alfa Addon">
<addon id="plugin.video.alfa" name="Alfa" version="2.0.0" provider-name="Alfa Addon">
<requires>
<import addon="xbmc.python" version="2.1.0"/>
<import addon="script.module.libtorrent" optional="true"/>
@@ -19,18 +19,12 @@
</assets>
<news>[B]Estos son los cambios para esta versión:[/B]
[COLOR green][B]Canales agregados y arreglos[/B][/COLOR]
[I]- allcalidad
- cinetux
- seriesdanko
- allpeliculas
- animeshd
- areadocumental
- cinefox
- cinefoxtv
- divxatope
- menu de acceso directo
[I]- animeflv
- descargasmix
- newpct1
- openload
- fix internos[/I]
[COLOR green]Gracias a [COLOR yellow]dan83[/COLOR] por su colaboración en esta versión[/COLOR]
[COLOR green]Gracias a [COLOR yellow]msdos[/COLOR] y [COLOR yellow]danielr460[/COLOR] por su colaboración en esta versión[/COLOR]
</news>
<description lang="es">Navega con Kodi por páginas web para ver sus videos de manera fácil.</description>
<summary lang="en">Browse web pages using Kodi</summary>

View File

@@ -11,7 +11,7 @@ from core import jsontools
from core import servertools
from core import scrapertools
from core.item import Item
from platformcode import logger
from platformcode import config, logger
HOST = "https://animeflv.net/"
@@ -242,7 +242,7 @@ def episodios(item):
else:
season, episode = renumbertools.numbered_for_tratk(item.channel, item.show, 1, episode)
title = "%s: %sx%s" % (item.title, season, str(episode).zfill(2))
title = "%sx%s : %s" % (season, str(episode).zfill(2), item.title)
itemlist.append(item.clone(action="findvideos", title=title, url=url, thumbnail=thumb, fulltitle=title,
fanart=item.thumbnail, contentType="episode"))
@@ -263,11 +263,15 @@ def episodios(item):
else:
season, episode = renumbertools.numbered_for_tratk(item.channel, item.show, 1, episode)
title = "%s: %sx%s" % (item.title, season, str(episode).zfill(2))
title = "%sx%s : %s" % (season, str(episode).zfill(2), item.title)
itemlist.append(item.clone(action="findvideos", title=title, url=url, thumbnail=thumb, fulltitle=title,
fanart=item.thumbnail, contentType="episode"))
if config.get_videolibrary_support() and len(itemlist) > 0:
itemlist.append(Item(channel=item.channel, title="Añadir esta serie a la videoteca",
action="add_serie_to_library", extra="episodios"))
return itemlist
@@ -317,10 +321,8 @@ def findvideos(item):
video_urls=video_urls))
else:
if e.startswith("https://cldup.com") and cldup == False:
itemlist.append(item.clone(title="Enlace encontrado en Cldup",
action="play",
url = e))
if e.startswith("https://cldup.com") and not cldup:
itemlist.append(item.clone(title="Enlace encontrado en Cldup", action="play", url=e))
cldup = True
aux_url.append(e)

View File

@@ -8,6 +8,7 @@ from channels import renumbertools
from core import filetools
from core import httptools
from core import scrapertools
from core import servertools
from core.item import Item
from platformcode import config, logger
@@ -23,7 +24,7 @@ REGEX_TITLE = r'(?:bigChar_a" href=.+?>)(.+?)(?:</a>)'
REGEX_THUMB = r'src="(http://media.animeflv\.me/uploads/thumbs/[^"]+?)"'
REGEX_PLOT = r'<span class="info">Línea de historia:</span><p><span>(.*?)</span>'
REGEX_URL = r'href="(http://animeflv\.me/Anime/[^"]+)">'
REGEX_SERIE = r'{0}.+?{1}([^<]+?)</a><p>(.+?)</p>'.format(REGEX_THUMB, REGEX_URL)
REGEX_SERIE = r'%s.+?%s([^<]+?)</a><p>(.+?)</p>' % (REGEX_THUMB, REGEX_URL)
REGEX_EPISODE = r'href="(http://animeflv\.me/Ver/[^"]+?)">(?:<span.+?</script>)?(.+?)</a></td><td>(\d+/\d+/\d+)</td></tr>'
REGEX_GENERO = r'<a href="(http://animeflv\.me/genero/[^\/]+/)">([^<]+)</a>'
@@ -157,20 +158,13 @@ def letras(item):
base_url = 'http://animeflv.me/ListadeAnime?c='
itemlist = []
itemlist.append(Item(channel=item.channel, action="series", title="#",
url=base_url + "#", viewmode="movies_with_plot"))
itemlist = list()
itemlist.append(Item(channel=item.channel, action="series", title="#", url=base_url + "#"))
# Itera sobre las posiciones de las letras en la tabla ascii
# 65 = A, 90 = Z
for i in xrange(65, 91):
letter = chr(i)
for letter in "ABCDEFGHIJKLMNOPQRSTUVWXYZ":
logger.debug("title=[%s], url=[%s], thumbnail=[]" % (letter, base_url + letter))
logger.debug("title=[{0}], url=[{1}], thumbnail=[]".format(
letter, base_url + letter))
itemlist.append(Item(channel=item.channel, action="series", title=letter,
url=base_url + letter, viewmode="movies_with_plot"))
itemlist.append(Item(channel=item.channel, action="series", title=letter, url=base_url + letter))
return itemlist
@@ -182,14 +176,12 @@ def generos(item):
html = get_url_contents(item.url)
generos = re.findall(REGEX_GENERO, html)
list_genre = re.findall(REGEX_GENERO, html)
for url, genero in generos:
logger.debug(
"title=[{0}], url=[{1}], thumbnail=[]".format(genero, url))
for url, genero in list_genre:
logger.debug("title=[%s], url=[%s], thumbnail=[]" % (genero, url))
itemlist.append(Item(channel=item.channel, action="series", title=genero, url=url,
plot='', viewmode="movies_with_plot"))
itemlist.append(Item(channel=item.channel, action="series", title=genero, url=url))
return itemlist
@@ -198,28 +190,26 @@ def search(item, texto):
logger.info()
texto = texto.replace(" ", "%20")
item.url = "{0}{1}".format(item.url, texto)
item.url = "%s%s" % (item.url, texto)
html = get_url_contents(item.url)
try:
# Se encontro un solo resultado y se redicciono a la página de la serie
if html.find('<title>Ver') >= 0:
series = [__extract_info_from_serie(html)]
show_list = [__extract_info_from_serie(html)]
# Se obtuvo una lista de resultados
else:
series = __find_series(html)
show_list = __find_series(html)
items = []
for serie in series:
title, url, thumbnail, plot = serie
for show in show_list:
title, url, thumbnail, plot = show
logger.debug("title=[{0}], url=[{1}], thumbnail=[{2}]".format(
title, url, thumbnail))
logger.debug("title=[%s], url=[%s], thumbnail=[%s]" % (title, url, thumbnail))
items.append(Item(channel=item.channel, action="episodios", title=title,
url=url, thumbnail=thumbnail, plot=plot,
show=title, viewmode="movies_with_plot", context=renumbertools.context(item)))
items.append(Item(channel=item.channel, action="episodios", title=title, url=url, thumbnail=thumbnail,
plot=plot, show=title, viewmode="movies_with_plot", context=renumbertools.context(item)))
except:
import sys
for line in sys.exc_info():
@@ -234,25 +224,21 @@ def series(item):
page_html = get_url_contents(item.url)
series = __find_series(page_html)
show_list = __find_series(page_html)
items = []
for serie in series:
title, url, thumbnail, plot = serie
for show in show_list:
title, url, thumbnail, plot = show
logger.debug("title=[{0}], url=[{1}], thumbnail=[{2}]".format(
title, url, thumbnail))
logger.debug("title=[%s], url=[%s], thumbnail=[%s]" % (title, url, thumbnail))
items.append(Item(channel=item.channel, action="episodios", title=title, url=url,
thumbnail=thumbnail, plot=plot, show=title, viewmode="movies_with_plot",
context=renumbertools.context(item)))
items.append(Item(channel=item.channel, action="episodios", title=title, url=url, thumbnail=thumbnail,
plot=plot, show=title, viewmode="movies_with_plot", context=renumbertools.context(item)))
url_next_page = __find_next_page(page_html)
if url_next_page:
items.append(Item(channel=item.channel, action="series", title=">> Página Siguiente",
url=url_next_page, thumbnail="", plot="", folder=True,
viewmode="movies_with_plot"))
items.append(Item(channel=item.channel, action="series", title=">> Página Siguiente", url=url_next_page))
return items
@@ -265,7 +251,10 @@ def episodios(item):
html_serie = get_url_contents(item.url)
info_serie = __extract_info_from_serie(html_serie)
plot = info_serie[3] if info_serie else ''
if info_serie[3]:
plot = info_serie[3]
else:
plot = ''
episodes = re.findall(REGEX_EPISODE, html_serie, re.DOTALL)
@@ -280,21 +269,17 @@ def episodios(item):
season, episode = renumbertools.numbered_for_tratk(
item.channel, item.show, season, episode)
title = "{0}x{1:02d} {2} ({3})".format(
season, episode, "Episodio " + str(episode), date)
title = "%sx%s %s (%s)" % (season, str(episode).zfill(2), "Episodio %s" % episode, date)
# El enlace pertenece a una pelicula
else:
title = "{0} ({1})".format(title, date)
title = "%s (%s)" % (title, date)
item.url = url
es_pelicula = True
logger.debug("title=[{0}], url=[{1}], thumbnail=[{2}]".format(
title, url, item.thumbnail))
logger.debug("title=[%s], url=[%s], thumbnail=[%s]" % (title, url, item.thumbnail))
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, url=url,
thumbnail=item.thumbnail, plot=plot, show=item.show,
fulltitle="{0} {1}".format(item.show, title),
viewmode="movies_with_plot", folder=True))
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, url=url, thumbnail=item.thumbnail,
plot=plot, show=item.show, fulltitle="%s %s" % (item.show, title)))
# El sistema soporta la videoteca y se encontro por lo menos un episodio
# o pelicula
@@ -315,7 +300,6 @@ def episodios(item):
itemlist.append(Item(channel=item.channel, title="Descargar todos los episodios",
url=item.url, action="download_all_episodes", extra="episodios",
show=item.show))
return itemlist
@@ -325,22 +309,27 @@ def findvideos(item):
itemlist = []
page_html = get_url_contents(item.url)
regex_api = r'http://player\.animeflv\.me/[^\"]+'
iframe_url = scrapertools.find_single_match(page_html, regex_api)
iframe_html = get_url_contents(iframe_url)
itemlist.extend(servertools.find_video_items(data=iframe_html))
qualities = ["360", "480", "720", "1080"]
for videoitem in itemlist:
videoitem.fulltitle = item.fulltitle
videoitem.title = "%s en calidad [%s]" % (videoitem.server, qualities[1])
videoitem.channel = item.channel
videoitem.thumbnail = item.thumbnail
regex_video_list = r'var part = \[([^\]]+)'
videos_html = scrapertools.find_single_match(iframe_html, regex_video_list)
videos = re.findall('"([^"]+)"', videos_html, re.DOTALL)
qualities = ["360", "480", "720", "1080"]
for quality_id, video_url in enumerate(videos):
itemlist.append(Item(channel=item.channel, action="play", url=video_url, show=re.escape(item.show),
title="Ver en calidad [{0}]".format(qualities[quality_id]), plot=item.plot,
folder=True, fulltitle=item.title, viewmode="movies_with_plot"))
title="Ver en calidad [%s]" % (qualities[quality_id]), plot=item.plot,
fulltitle=item.title))
return __sort_by_quality(itemlist)

View File

@@ -19,6 +19,7 @@
],
"categories": [
"tvshow",
"latino"
"latino",
"anime"
]
}

View File

@@ -1,4 +1,4 @@
# -*- coding: utf-8 -*-
# -*- coding: utf-8 -*-
import re
@@ -106,19 +106,15 @@ def episodios(item):
season, episode = renumbertools.numbered_for_tratk(
item.channel, item.show, season, episode)
date = name
title = "{0}x{1:02d} {2} ({3})".format(
season, episode, "Episodio " + str(episode), date)
title = "%sx%s %s (%s)" % (season, str(episode).zfill(2), "Episodio %s" % episode, date)
# title = str(temp)+"x"+cap+" "+name
url = host + "/" + link
if "NO DISPONIBLE" in name:
name = name
else:
if "NO DISPONIBLE" not in name:
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, thumbnail=scrapedthumbnail,
plot=scrapedplot, url=url, show=show))
if config.get_videolibrary_support() and len(itemlist) > 0:
itemlist.append(Item(channel=item.channel, title="Añadir esta serie a la videoteca", url=item.url,
action="add_serie_to_library", extra="episodios", show=show))
return itemlist
@@ -132,6 +128,7 @@ def findvideos(item):
data = httptools.downloadpage(item.url).data
data1 = re.sub(r"\n|\r|\t|\s{2}|&nbsp;", "", data)
data_vid = scrapertools.find_single_match(data1, '<div class="videos">(.+?)<\/div><div .+?>')
# name = scrapertools.find_single_match(data,'<span>Titulo.+?<\/span>([^<]+)<br>')
scrapedplot = scrapertools.find_single_match(data, '<br><span>Descrip.+?<\/span>([^<]+)<br>')
scrapedthumbnail = scrapertools.find_single_match(data, '<div class="caracteristicas"><img src="([^<]+)">')
@@ -139,13 +136,14 @@ def findvideos(item):
for server, quality, url in itemla:
if "Calidad Alta" in quality:
quality = quality.replace("Calidad Alta", "HQ")
server = server.lower()
server = server.strip()
if "ok" in server:
server = server.lower().strip()
if "ok" == server:
server = 'okru'
itemlist.append(
item.clone(url=url, action="play", server=server, contentQuality=quality, thumbnail=scrapedthumbnail,
plot=scrapedplot, title="Enlace encontrado en %s: [%s ]" % (server.capitalize(), quality)))
if "netu" == server:
continue
itemlist.append(item.clone(url=url, action="play", server=server, contentQuality=quality,
thumbnail=scrapedthumbnail, plot=scrapedplot,
title="Enlace encontrado en %s: [%s]" % (server.capitalize(), quality)))
return itemlist
@@ -155,18 +153,15 @@ def play(item):
itemlist = []
# Buscamos video por servidor ...
devuelve = servertools.findvideosbyserver(item.url, item.server)
if not devuelve:
# ...sino lo encontramos buscamos en todos los servidores disponibles
devuelve = servertools.findvideos(item.url, skip=True)
if devuelve:
# logger.debug(devuelve)
itemlist.append(Item(channel=item.channel, title=item.contentTitle, action="play", server=devuelve[0][2],
url=devuelve[0][1], thumbnail=item.thumbnail, folder=False))
url=devuelve[0][1], thumbnail=item.thumbnail))
return itemlist

3
plugin.video.alfa/channels/descargasmix.py Executable file → Normal file
View File

@@ -220,7 +220,7 @@ def episodios(item):
itemlist = []
data = get_data(item.url)
patron = '(<ul class="menu" id="seasons-list">.*?<div class="section-box related-posts">)'
patron = '(<ul class="menu ses" id="seasons-list">.*?<div class="section-box related-posts">)'
bloque = scrapertools.find_single_match(data, patron)
matches = scrapertools.find_multiple_matches(bloque, '<div class="polo".*?>(.*?)</div>')
for scrapedtitle in matches:
@@ -261,6 +261,7 @@ def epienlaces(item):
data = get_data(item.url)
data = data.replace("\n", "").replace("\t", "")
# Bloque de enlaces
patron = '<div class="polo".*?>%s(.*?)(?:<div class="polo"|</li>)' % item.extra.strip()
bloque = scrapertools.find_single_match(data, patron)

8
plugin.video.alfa/channels/estrenosgo.py Executable file → Normal file
View File

@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
import re
from channelselector import get_thumb
from core import channeltools
from core import httptools
from core import scrapertools
@@ -166,7 +166,8 @@ def findvideos(item):
title="Ver %s en %s%s" % (
capitulo.strip(), s[0][2].capitalize(), idioma),
thumbnail2=item.thumbnail,
thumbnail=config.get_thumb("server_" + s[0][2] + ".png")))
thumbnail=get_thumb("server_" + s[0][2] + ".png"),
language = idioma))
else:
import os
for s in servertools.findvideos(data):
@@ -174,7 +175,8 @@ def findvideos(item):
title="Ver en %s%s" % (s[2].capitalize(), idioma),
thumbnail2=item.thumbnail,
thumbnail=os.path.join(config.get_runtime_path(), "resources", "media",
"servers", "server_" + s[2] + ".png")))
"servers", "server_" + s[2] + ".png"),
language = idioma))
# Insertar items "Buscar trailer" y "Añadir a la videoteca"
if itemlist and item.extra == "movie":

4
plugin.video.alfa/channels/hdfull.py Executable file → Normal file
View File

@@ -348,7 +348,8 @@ def fichas(item):
itemlist.append(
Item(channel=item.channel, action=action, title=title, url=url, fulltitle=title, thumbnail=thumbnail,
show=show, folder=True, contentType=contentType, contentTitle=contentTitle))
show=show, folder=True, contentType=contentType, contentTitle=contentTitle,
language =textoidiomas+'x'))
## Paginación
next_page_url = scrapertools.find_single_match(data, '<a href="([^"]+)">.raquo;</a>')
@@ -610,7 +611,6 @@ def findvideos(item):
itemlist = []
## Carga estados
status = jsontools.load(httptools.downloadpage(host + '/a/status/all').data)
url_targets = item.url
## Vídeos

6
plugin.video.alfa/channels/inkapelis.py Executable file → Normal file
View File

@@ -352,7 +352,8 @@ def findvideos(item):
if server == "Ul":
server = "Uploaded"
title = "%s [%s][%s]" % (server, idioma, calidad)
itemlist.append(item.clone(action="play", title=title, url=url))
itemlist.append(item.clone(action="play", title=title, url=url, language = idioma, quality = calidad,
server = server))
patron = 'id="(embed[0-9]*)".*?<div class="calishow">(.*?)<.*?src="([^"]+)"'
matches = scrapertools.find_multiple_matches(data, patron)
@@ -362,7 +363,8 @@ def findvideos(item):
title = "Directo"
idioma = scrapertools.find_single_match(data, 'href="#%s".*?>([^<]+)<' % id_embed)
title = "%s [%s][%s]" % (title.capitalize(), idioma, calidad)
itemlist.append(item.clone(action="play", title=title, url=url))
itemlist.append(item.clone(action="play", title=title, url=url, language = idioma, quality = calidad,
server = server))
if itemlist:
if not config.get_setting('menu_trailer', item.channel):

View File

@@ -3,7 +3,9 @@
import re
import urlparse
from core import httptools
from core import scrapertools
from core import servertools
from core.item import Item
from platformcode import logger
@@ -11,7 +13,7 @@ from platformcode import logger
def mainlist(item):
logger.info()
itemlist = []
itemlist = list()
itemlist.append(
Item(channel=item.channel, action="ultimos_capitulos", title="Últimos Capitulos", url="http://jkanime.net/"))
itemlist.append(Item(channel=item.channel, action="ultimos", title="Últimos", url="http://jkanime.net/"))
@@ -25,7 +27,7 @@ def mainlist(item):
def ultimos_capitulos(item):
logger.info()
itemlist = []
data = scrapertools.cache_page(item.url)
data = httptools.downloadpage(item.url).data
data = scrapertools.get_match(data, '<ul class="ratedul">.+?</ul>')
data = data.replace('\t', '')
@@ -43,7 +45,8 @@ def ultimos_capitulos(item):
logger.debug("title=[" + title + "], url=[" + url + "], thumbnail=[" + thumbnail + "]")
itemlist.append(
Item(channel=item.channel, action="findvideos", title=title, url=url, thumbnail=thumbnail, plot=plot))
Item(channel=item.channel, action="findvideos", title=title, url=url, thumbnail=thumbnail, plot=plot,
show=scrapedtitle.strip(), fulltitle=title))
return itemlist
@@ -67,7 +70,7 @@ def search(item, texto):
def ultimos(item):
logger.info()
itemlist = []
data = scrapertools.cache_page(item.url)
data = httptools.downloadpage(item.url).data
data = scrapertools.get_match(data, '<ul class="latestul">(.*?)</ul>')
patron = '<a href="([^"]+)">([^<]+)<'
@@ -90,7 +93,7 @@ def generos(item):
logger.info()
itemlist = []
data = scrapertools.cache_page(item.url)
data = httptools.downloadpage(item.url).data
data = scrapertools.get_match(data, '<div class="genres">(.*?)</div>')
patron = '<a href="([^"]+)">([^<]+)</a>'
@@ -114,7 +117,7 @@ def letras(item):
logger.info()
itemlist = []
data = scrapertools.cache_page(item.url)
data = httptools.downloadpage(item.url).data
data = scrapertools.get_match(data, '<ul class="animelet">(.*?)</ul>')
patron = '<a href="([^"]+)">([^<]+)</a>'
@@ -138,24 +141,9 @@ def series(item):
logger.info()
# Descarga la pagina
data = scrapertools.cache_page(item.url)
data = httptools.downloadpage(item.url).data
# Extrae las entradas
'''
<table class="search">
<tr>
<td rowspan="2">
<a href="http://jkanime.net/basilisk-kouga-ninpou-chou/"><img src="http://jkanime.net/assets/images/animes/thumbnail/basilisk-kouga-ninpou-chou.jpg" width="50" /></a>
</td>
<td><a class="titl" href="http://jkanime.net/basilisk-kouga-ninpou-chou/">Basilisk: Kouga Ninpou Chou</a></td>
<td rowspan="2" style="width:50px; text-align:center;">Serie</td>
<td rowspan="2" style="width:50px; text-align:center;" >24 Eps</td>
</tr>
<tr>
<td><p>Basilisk, considerada una de las mejores series del genero ninja, nos narra la historia de dos clanes ninja separados por el odio entre dos familias. Los actuales representantes, Kouga Danjo del clan Kouga y Ogen del clan&#8230; <a class="next" href="http://jkanime.net/basilisk-kouga-ninpou-chou/">seguir leyendo</a></p></td>
</tr>
</table>
'''
patron = '<table class="search[^<]+'
patron += '<tr[^<]+'
patron += '<td[^<]+'
@@ -181,7 +169,7 @@ def series(item):
itemlist.append(
Item(channel=item.channel, action="episodios", title=title, url=url, thumbnail=thumbnail, fanart=thumbnail,
plot=plot, extra=extra))
plot=plot, extra=extra, show=scrapedtitle.strip()))
try:
siguiente = scrapertools.get_match(data, '<a class="listsiguiente" href="([^"]+)" >Resultados Siguientes')
@@ -198,7 +186,7 @@ def series(item):
return itemlist
def getPagesAndEpisodes(data):
def get_pages_and_episodes(data):
results = re.findall('href="#pag([0-9]+)">[0-9]+ - ([0-9]+)', data)
if results:
return int(results[-1][0]), int(results[-1][1])
@@ -210,37 +198,30 @@ def episodios(item):
itemlist = []
# Descarga la pagina
data = scrapertools.cache_page(item.url)
data = httptools.downloadpage(item.url).data
scrapedplot = scrapertools.get_match(data, '<meta name="description" content="([^"]+)"/>')
scrapedthumbnail = scrapertools.find_single_match(data, '<div class="separedescrip">.*?src="([^"]+)"')
idserie = scrapertools.get_match(data, "ajax/pagination_episodes/(\d+)/")
logger.info("idserie=" + idserie)
if " Eps" in item.extra and not "Desc" in item.extra:
if " Eps" in item.extra and "Desc" not in item.extra:
caps_x = item.extra
caps_x = caps_x.replace(" Eps", "")
capitulos = int(caps_x)
paginas = capitulos / 10 + (capitulos % 10 > 0)
else:
paginas, capitulos = getPagesAndEpisodes(data)
paginas, capitulos = get_pages_and_episodes(data)
logger.info("idserie=" + idserie)
for numero in range(1, paginas + 1):
for num_pag in range(1, paginas + 1):
numero_pagina = str(numero)
headers = []
headers.append(
["User-Agent", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:16.0) Gecko/20100101 Firefox/16.0"])
headers.append(["Referer", item.url])
data2 = scrapertools.cache_page(
"http://jkanime.net/ajax/pagination_episodes/" + idserie + "/" + numero_pagina + "/")
logger.info("data2=" + data2)
numero_pagina = str(num_pag)
headers = {"Referer": item.url}
data2 = scrapertools.cache_page("http://jkanime.net/ajax/pagination_episodes/%s/%s/" % (idserie, numero_pagina),
headers=headers)
# logger.info("data2=" + data2)
'''
[{"number":"1","title":"Rose of Versailles - 1"},{"number":"2","title":"Rose of Versailles - 2"},{"number":"3","title":"Rose of Versailles - 3"},{"number":"4","title":"Rose of Versailles - 4"},{"number":"5","title":"Rose of Versailles - 5"},{"number":"6","title":"Rose of Versailles - 6"},{"number":"7","title":"Rose of Versailles - 7"},{"number":"8","title":"Rose of Versailles - 8"},{"number":"9","title":"Rose of Versailles - 9"},{"number":"10","title":"Rose of Versailles - 10"}]
[{"id":"14199","title":"GetBackers - 1","number":"1","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14200","title":"GetBackers - 2","number":"2","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14201","title":"GetBackers - 3","number":"3","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14202","title":"GetBackers - 4","number":"4","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14203","title":"GetBackers - 5","number":"5","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14204","title":"GetBackers - 6","number":"6","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14205","title":"GetBackers - 7","number":"7","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14206","title":"GetBackers - 8","number":"8","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14207","title":"GetBackers - 9","number":"9","animes_id":"122","timestamp":"2012-01-04 16:59:30"},{"id":"14208","title":"GetBackers - 10","number":"10","animes_id":"122","timestamp":"2012-01-04 16:59:30"}]
'''
patron = '"number"\:"(\d+)","title"\:"([^"]+)"'
matches = re.compile(patron, re.DOTALL).findall(data2)
@@ -253,12 +234,12 @@ def episodios(item):
logger.debug("title=[" + title + "], url=[" + url + "], thumbnail=[" + thumbnail + "]")
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, url=url, thumbnail=thumbnail,
fanart=thumbnail, plot=plot))
fanart=thumbnail, plot=plot, fulltitle=title))
if len(itemlist) == 0:
try:
porestrenar = scrapertools.get_match(data,
'<div[^<]+<span class="labl">Estad[^<]+</span[^<]+<span[^>]+>Por estrenar</span>')
# porestrenar = scrapertools.get_match(data,
# '<div[^<]+<span class="labl">Estad[^<]+</span[^<]+<span[^>]+>Por estrenar</span>')
itemlist.append(Item(channel=item.channel, action="findvideos", title="Serie por estrenar", url="",
thumbnail=scrapedthumbnail, fanart=scrapedthumbnail, plot=scrapedplot,
server="directo", folder=False))
@@ -266,3 +247,34 @@ def episodios(item):
pass
return itemlist
def findvideos(item):
logger.info()
itemlist = []
data = re.sub(r"\n|\r|\t|\s{2}|-\s", "", httptools.downloadpage(item.url).data)
list_videos = scrapertools.find_multiple_matches(data, '<iframe class="player_conte" src="([^"]+)"')
aux_url = []
index = 1
for e in list_videos:
if e.startswith("https://jkanime.net/jk.php?"):
headers = {"Referer": item.url}
data = httptools.downloadpage(e, headers=headers).data
url = scrapertools.find_single_match(data, '<embed class="player_conte".*?&file=([^\"]+)\"')
if url:
itemlist.append(item.clone(title="Enlace encontrado en server #%s" % index, url=url, action="play"))
index += 1
else:
aux_url.append(e)
itemlist.extend(servertools.find_video_items(data=",".join(aux_url)))
for videoitem in itemlist:
videoitem.fulltitle = item.fulltitle
videoitem.channel = item.channel
videoitem.thumbnail = item.thumbnail
return itemlist

6
plugin.video.alfa/channels/lacajita.py Executable file → Normal file
View File

@@ -103,7 +103,8 @@ def entradas(item):
filtro = {"poster_path": filtro_thumb}.items()
itemlist.append(Item(channel=item.channel, action="findvideos", url=scrapedurl, title=titulo,
contentTitle=scrapedtitle, infoLabels={'filtro': filtro}, text_color=color2,
thumbnail=scrapedthumbnail, contentType="movie", fulltitle=scrapedtitle))
thumbnail=scrapedthumbnail, contentType="movie", fulltitle=scrapedtitle, language =
idiomas))
tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__)
if len(matches) > item.page + 20:
@@ -233,7 +234,8 @@ def findvideos(item):
if detalle:
title += " (%s)" % detalle
itemlist.append(item.clone(action="play", url=url, title=title, server=servidor, text_color=color3))
itemlist.append(item.clone(action="play", url=url, title=title, server=servidor, text_color=color3,
language = idioma, quality = calidad))
if item.extra != "findvideos" and config.get_videolibrary_support():
itemlist.append(item.clone(title="Añadir película a la videoteca", action="add_pelicula_to_library",

View File

@@ -127,9 +127,12 @@ def findvideos(item):
patron = '<tr><td> <a class="link_a" href="([^"]+)".*?<td> (.*?)</td><td> (.*?)</td><td> (.*?)</td>'
matches = scrapertools.find_multiple_matches(data, patron)
for url, server, idioma, calidad in matches:
title = server + " [" + idioma + "] [" + calidad + "]"
itemlist.append(item.clone(action="play", title=title, fulltitle = item.title, url=url))
for url, server, calidad, idioma in matches:
title = item.contentTitle
server = servertools.get_server_from_url(url)
itemlist.append(item.clone(action="play", title=title, fulltitle = item.title, url=url, language = idioma,
contentTitle = item.contentTitle, quality = calidad, server = server))
if config.get_videolibrary_support() and len(itemlist) > 0 and item.extra !='findvideos' :
itemlist.append(Item(channel=item.channel, title='[COLOR yellow]Agregar esta pelicula a la Videoteca[/COLOR]',
@@ -137,13 +140,14 @@ def findvideos(item):
contentTitle = item.contentTitle))
return itemlist
def play(item):
logger.info()
itemlist = servertools.find_video_items(data=item.url)
for videoitem in itemlist:
videoitem.title = item.title
videoitem.fulltitle = item.fulltitle
videoitem.thumbnail = item.thumbnail
videoitem.channel = item.channel
return itemlist
# def play(item):
# logger.info()
# itemlist = servertools.find_video_items(data=item.url)
#
# for videoitem in itemlist:
# videoitem.title = item.title
# videoitem.fulltitle = item.fulltitle
# videoitem.thumbnail = item.thumbnail
# videoitem.channel = item.channel
# videoitem.
# return itemlist

View File

@@ -1,92 +0,0 @@
# -*- coding: utf-8 -*-
#------------------------------------------------------------
# XBMC Plugin
#------------------------------------------------------------
import xbmcgui
import xbmc
from platformcode import config
from core import filetools
main = None
MAIN_MENU = {
"news" : {"label" : "Novedades", "icon" : filetools.join(config.get_runtime_path(),"resources","media","general","default","thumb_news.png"), "order": 0},
"channels" : {"label" : "Canales", "icon" : filetools.join(config.get_runtime_path(),"resources","media","general","default","thumb_channels.png"), "order": 1},
"search" : {"label" : "Buscador", "icon" : filetools.join(config.get_runtime_path(),"resources","media","general","default","thumb_search.png"), "order": 2},
"favorites" : {"label" : "Favoritos", "icon" : filetools.join(config.get_runtime_path(),"resources","media","general","default","thumb_favorites.png"), "order": 3},
"videolibrary" : {"label" : "Videoteca", "icon" : filetools.join(config.get_runtime_path(),"resources","media","general","default","thumb_videolibrary.png"), "order": 4},
"downloads" : {"label" : "Descargas", "icon" : filetools.join(config.get_runtime_path(),"resources","media","general","default","thumb_downloads.png"), "order": 5},
"settings" : {"label" : "Configuración", "icon" : filetools.join(config.get_runtime_path(),"resources","media","general","default","thumb_setting_0.png"), "order": 6},
}
class Main(xbmcgui.WindowXMLDialog):
def __init__( self, *args, **kwargs ):
self.items = []
self.open = kwargs.get("open")
def onInit(self):
self.setCoordinateResolution(2)
if self.open:
for menuentry in MAIN_MENU.keys():
item = xbmcgui.ListItem(MAIN_MENU[menuentry]["label"])
item.setProperty("thumb",str(MAIN_MENU[menuentry]["icon"]))
item.setProperty("identifier",str(menuentry))
item.setProperty("order", str(MAIN_MENU[menuentry]["order"]))
self.items.append(item)
self.items.sort(key=lambda it:int(it.getProperty("order")))
self.getControl(32500).addItems(self.items)
self.setFocusId(32500)
self.open = False
def onClick(self,controlId):
if controlId == 32500:
identifier = self.getControl(32500).getSelectedItem().getProperty("identifier")
if identifier == "news":
self.close()
xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJuZXdzIg0KfQ==")')
elif identifier == "channels":
self.close()
xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAiZ2V0Y2hhbm5lbHR5cGVzIiwgDQogICAgImNoYW5uZWwiOiAiY2hhbm5lbHNlbGVjdG9yIg0KfQ==")')
elif identifier == "search":
self.close()
xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJzZWFyY2giDQp9")')
elif identifier == "favorites":
self.close()
xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJmYXZvcml0ZXMiDQp9")')
elif identifier == "videolibrary":
self.close()
xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJ2aWRlb2xpYnJhcnkiDQp9")')
elif identifier == "downloads":
self.close()
xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJkb3dubG9hZHMiDQp9")')
elif identifier == "settings":
self.close()
xbmc.executebuiltin('ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJzZXR0aW5nIg0KfQ==")')
def onAction(self,action):
#exit
global main
if action.getId() == 92 or action.getId() == 10:
main.close()
del main
if action.getId() == 117:
config.open_settings()
def start(item):
global main
main = Main('script-shortcut-menu.xml',config.get_runtime_path(),open=True)
main.doModal()

View File

@@ -31,34 +31,6 @@ def mainlist(item):
return itemlist
def search(item, texto):
logger.info("search:" + texto)
texto = texto.replace(" ", "+")
item.url = "http://www.newpct1.com/index.php?page=buscar&q=%27" + texto + "%27&ordenar=Fecha&inon=Descendente"
item.extra = "buscar-list"
try:
itemlist = completo(item)
# Esta pagina coloca a veces contenido duplicado, intentamos descartarlo
dict_aux = {}
for i in itemlist:
if not i.url in dict_aux:
dict_aux[i.url] = i
else:
itemlist.remove(i)
return itemlist
# 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 submenu(item):
logger.info()
itemlist = []
@@ -107,7 +79,6 @@ def alfabeto(item):
def listado(item):
logger.info()
# logger.info("[newpct1.py] listado url=" + item.url)
itemlist = []
url_next_page =''
@@ -127,7 +98,6 @@ def listado(item):
fichas = data
page_extra = item.extra
# <li><a href="http://www.newpct1.com/pelicula/x-men-dias-del-futuro-pasado/ts-screener/" title="Descargar XMen Dias Del Futuro gratis"><img src="http://www.newpct1.com/pictures/f/58066_x-men-dias-del-futuro--blurayrip-ac3-5.1.jpg" width="130" height="180" alt="Descargar XMen Dias Del Futuro gratis"><h2>XMen Dias Del Futuro </h2><span>BluRayRip AC3 5.1</span></a></li>
patron = '<li><a href="([^"]+).*?' # url
patron += 'title="([^"]+).*?' # titulo
patron += '<img src="([^"]+)"[^>]+>.*?' # thumbnail
@@ -169,7 +139,6 @@ def listado(item):
title = scrapertools.find_single_match(title, '([^-]+)')
title = title.replace("Ver online", "", 1).replace("Descarga Serie HD", "", 1).replace("Ver en linea", "",
1).strip()
# logger.info("[newpct1.py] titulo="+title)
else:
title = title.replace("Descargar", "", 1).strip()
@@ -181,7 +150,6 @@ def listado(item):
context = ""
context_title = scrapertools.find_single_match(url, "http://(?:www.)?newpct1.com/(.*?)/(.*?)/")
#logger.debug('context_title[0]: %s' % context_title[0])
if context_title:
try:
context = context_title[0].replace("descargar-", "").replace("pelicula", "movie").replace("series",
@@ -215,15 +183,6 @@ def listado(item):
url=url_next_page, next_page=next_page, folder=True,
text_color='yellow', text_bold=True, modo = modo, plot = extra,
extra = page_extra))
# if "pagination" in data:
# patron = '<ul class="pagination">(.*?)</ul>'
# paginacion = scrapertools.get_match(data, patron)
#
# if "Next" in paginacion:
# url_next_page = scrapertools.get_match(paginacion, '<a href="(http[^>]+)>Next</a>')[:-1].replace(" ", "%20")
# itemlist.append(Item(channel=item.channel, action="listado", title=">> Página siguiente", url=url_next_page,
# extra=item.extra))
# logger.info("[newpct1.py] listado items:" + str(len(itemlist)))
return itemlist
def listado2(item):
@@ -231,77 +190,47 @@ def listado2(item):
itemlist = []
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(item.url, post=item.post).data)
data = unicode(data, "iso-8859-1", errors="replace").encode("utf-8")
logger.debug(data)
list_chars = [["ñ", "ñ"]]
for el in list_chars:
data = re.sub(r"%s" % el[0], el[1], data)
try:
# logger.debug("data %s " % data)
get, post = scrapertools.find_single_match(data, '<ul class="pagination">.*?<a class="current" href.*?'
'<a\s*href="([^"]+)"(?:\s*onClick=".*?\'([^"]+)\'.*?")')
except:
post = False
if post:
# logger.debug("post %s" % post)
# logger.debug("item.post %s" % item.post)
if "pg" in item.post:
item.post = re.sub(r"pg=(\d+)", "pg=%s" % post, item.post)
# logger.debug("item.post %s" % item.post)
else:
item.post += "&pg=%s" % post
# logger.debug("item.post %s" % item.post)
# logger.debug("data %s " % next_page)
pattern = '<ul class="%s">(.*?)</ul>' % item.pattern
data = scrapertools.get_match(data, pattern)
# logger.debug("data %s " % data)
pattern = '<li><a href="(?P<url>[^"]+)".*?<img src="(?P<img>[^"]+)"[^>]+>.*?<h2.*?>\s*(?P<title>.*?)\s*</h2>'
matches = re.compile(pattern, re.DOTALL).findall(data)
for url, thumb, title in matches:
# fix encoding for title
real_title = scrapertools.find_single_match(title, r'font color.*?font.*?><b>(.*?)<\/b><\/font>')
title = scrapertools.htmlclean(title)
title = title.replace("�", "ñ")
# logger.debug("\n\nu %s " % url)
# logger.debug("\nb %s " % thumb)
# logger.debug("\nt %s " % title)
# title is the clean way but it doesn't work if it's a long, so we have to use title_to_fix
# title_fix = False
# if title.endswith(".."):
# title = title_to_fix
# title_fix = True
# no mostramos lo que no sean videos
if "/juego/" in url or "/varios/" in url:
continue
if ".com/series" in url:
# title = scrapertools.find_single_match(title, '([^-]+)')
# title = title.replace("Ver online", "", 1).replace("Ver en linea", "", 1). \
# replace("Descarga Serie HD", "", 1).strip()
show = title
# if quality:
# title = "%s [%s]" % (title, quality)
show = real_title
itemlist.append(Item(channel=item.channel, action="episodios", title=title, url=url, thumbnail=thumb,
context=["buscar_trailer"], show=show))
context=["buscar_trailer"], contentSerieName=show))
else:
# title = title.replace("Descargar", "", 1).strip()
# if title.endswith("gratis"):
# title = title[:-6].strip()
# if quality:
# title = "%s [%s]" % (title, quality)
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, url=url, thumbnail=thumb,
context=["buscar_trailer"]))
@@ -312,113 +241,6 @@ def listado2(item):
return itemlist
def completo(item):
logger.info()
itemlist = []
categoryID = ""
# Guarda el valor por si son etiquetas para que lo vea 'listadofichas'
item_extra = item.extra
item_show = item.show
item_title = item.title
infoLabels = item.infoLabels
# Lee las entradas
if item_extra.startswith("serie"):
ultimo_action = "get_episodios"
if item.extra != "serie_add":
'''
# Afinar mas la busqueda
if item_extra=="serie-hd":
categoryID=buscar_en_subcategoria(item.show,'1469')
elif item_extra=="serie-vo":
categoryID=buscar_en_subcategoria(item.show,'775')
elif item_extra=="serie-tv":
categoryID=buscar_en_subcategoria(item.show,'767')
if categoryID !="":
item.url=item.url.replace("categoryID=","categoryID="+categoryID)
#Fanart
oTvdb= TvDb()
serieID=oTvdb.get_serieId_by_title(item.show)
fanart = oTvdb.get_graphics_by_serieId(serieID)
if len(fanart)>0:
item.fanart = fanart[0]'''
# try:
# from core.tmdb import Tmdb
# oTmdb = Tmdb(texto_buscado=item.show, tipo="tv", idioma_busqueda="es")
# item.fanart = oTmdb.get_backdrop()
# item.plot = oTmdb.get_sinopsis()
# print item.plot
# except:
# pass
else:
item_title = item.show
items_programas = get_episodios(item)
else:
ultimo_action = "listado"
items_programas = listado(item)
if len(items_programas) == 0:
return itemlist # devolver lista vacia
salir = False
while not salir:
# Saca la URL de la siguiente página
ultimo_item = items_programas[len(items_programas) - 1]
# Páginas intermedias
if ultimo_item.action == ultimo_action:
# Quita el elemento de "Página siguiente"
ultimo_item = items_programas.pop()
# Añade las entradas de la página a la lista completa
itemlist.extend(items_programas)
# Carga la siguiente página
ultimo_item.extra = item_extra
ultimo_item.show = item_show
ultimo_item.title = item_title
logger.debug("url=" + ultimo_item.url)
if item_extra.startswith("serie"):
items_programas = get_episodios(ultimo_item)
else:
items_programas = listado(ultimo_item)
# Última página
else:
# Añade a la lista completa y sale
itemlist.extend(items_programas)
salir = True
if (config.get_videolibrary_support() and len(itemlist) > 0 and item.extra.startswith("serie")):
itemlist.append(Item(channel=item.channel, title="Añadir esta serie a la biblioteca", url=item.url,
action="add_serie_to_library", extra="completo###serie_add", show=item.show))
logger.debug("items=" + str(len(itemlist)))
return itemlist
def buscar_en_subcategoria(titulo, categoria):
data = httptools.downloadpage("http://www.newpct1.com/pct1/library/include/ajax/get_subcategory.php",
post="categoryIDR=" + categoria).data
data = data.replace("</option>", " </option>")
patron = '<option value="(\d+)">(' + titulo.replace(" ", "\s").replace("(", "/(").replace(")",
"/)") + '\s[^<]*)</option>'
logger.debug("data=" + data)
logger.debug("patron=" + patron)
matches = re.compile(patron, re.DOTALL | re.IGNORECASE).findall(data)
if len(matches) == 0: matches = [('', '')]
logger.debug("resultado=" + matches[0][0])
return matches[0][0]
def findvideos(item):
logger.info()
itemlist = []
@@ -438,7 +260,7 @@ def findvideos(item):
# <a href="http://tumejorjuego.com/download/index.php?link=descargar-torrent/058310_yo-frankenstein-blurayrip-ac3-51.html" title="Descargar torrent de Yo Frankenstein " class="btn-torrent" target="_blank">Descarga tu Archivo torrent!</a>
patron = '<a href="([^"]+)" title="[^"]+" class="btn-torrent" target="_blank">'
patron = 'openTorrent.*?"title=".*?" class="btn-torrent">.*?function openTorrent.*?href = "(.*?)";'
# escraped torrent
url = scrapertools.find_single_match(data, patron)
@@ -511,23 +333,15 @@ def findvideos(item):
return itemlist
# def episodios(item):
# # Necesario para las actualizaciones automaticas
# infoLabels= item.infoLabels
# infoLabels['show']=item.show
# return completo(Item(item.clone(url=item.url, extra="serie_add", infoLabels=infoLabels)))
def episodios(item):
logger.info()
itemlist = []
infoLabels = item.infoLabels
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(item.url).data)
data = unicode(data, "iso-8859-1", errors="replace").encode("utf-8")
# logger.debug("data %s " % data)
logger.debug('data: %s'%data)
pattern = '<ul class="%s">(.*?)</ul>' % "pagination" # item.pattern
pagination = scrapertools.find_single_match(data, pattern)
# logger.debug("pagination %s" % pagination)
if pagination:
pattern = '<li><a href="([^"]+)">Last<\/a>'
full_url = scrapertools.find_single_match(pagination, pattern)
@@ -535,11 +349,10 @@ def episodios(item):
list_pages = []
for x in range(1, int(last_page) + 1):
list_pages.append("%s%s" % (url, x))
# logger.debug("data %s%s" % (url, x))
# logger.debug("list_pages %s" % list_pages)
else:
list_pages = [item.url]
logger.debug ('pattern: %s'%pattern)
for index, page in enumerate(list_pages):
logger.debug("Loading page %s/%s url=%s" % (index, len(list_pages), page))
data = re.sub(r"\n|\r|\t|\s{2,}", "", httptools.downloadpage(page).data)
@@ -547,14 +360,11 @@ def episodios(item):
pattern = '<ul class="%s">(.*?)</ul>' % "buscar-list" # item.pattern
data = scrapertools.get_match(data, pattern)
# logger.debug("data %s " % data)
pattern = '<li[^>]*><a href="(?P<url>[^"]+).*?<img src="(?P<thumb>[^"]+)".*?<h2[^>]+>(?P<info>.*?)</h2>'
matches = re.compile(pattern, re.DOTALL).findall(data)
# logger.debug("data %s " % matches)
for url, thumb, info in matches:
# logger.debug("info %s" % info)
if "<span" in info: # new style
pattern = ".*?[^>]+>.*?Temporada\s*(?P<season>\d+)\s*Capitulo(?:s)?\s*(?P<episode>\d+)" \

6
plugin.video.alfa/channels/peliculasaudiolatino.py Executable file → Normal file
View File

@@ -153,10 +153,10 @@ def findvideos(item):
matches = re.compile(patron, re.DOTALL).findall(data)
for servidor, idioma, calidad, scrapedurl in matches:
url = scrapedurl
title = "Ver en " + servidor + " [" + idioma + "][" + calidad + "]"
server = servertools.get_server_name(servidor)
title = item.title
itemlist.append(Item(channel=item.channel, action="play", title=title, fulltitle=item.fulltitle, url=url,
thumbnail=scrapedthumbnail, folder=False))
thumbnail=scrapedthumbnail, language=idioma, quality=calidad, server=server))
return itemlist

47
plugin.video.alfa/channels/peliculasdk.py Executable file → Normal file
View File

@@ -6,7 +6,9 @@ from core import scrapertools
from core import servertools
from core.item import Item
from core.scrapertools import decodeHtmlentities as dhe
from platformcode import config, logger
from platformcode import logger
from platformcode import config
from core import tmdb
try:
import xbmc
@@ -172,7 +174,6 @@ def peliculas(item):
patron += 'Calidad:(.*?)</br>.*?'
patron += 'Género:.*?tag">(.*?)</a>'
matches = re.compile(patron, re.DOTALL).findall(data)
scrapertools.printMatches(matches)
for scrapedurl, scrapedtitle, scrapedthumbnail, scrapedlenguaje, scrapedcalidad, scrapedgenero in matches:
@@ -184,20 +185,22 @@ def peliculas(item):
scrapedtitle = re.sub(r"\(\d+\)", "", scrapedtitle).strip()
scrapedcalidad = re.sub(r"<a href.*?>|</a>", "", scrapedcalidad).strip()
scrapedlenguaje = re.sub(r"<a href.*?>|</a>", "", scrapedlenguaje).strip()
scrapedcalidad = scrapedcalidad.replace(scrapedcalidad,
bbcode_kodi2html("[COLOR orange]" + scrapedcalidad + "[/COLOR]"))
scrapedlenguaje = scrapedlenguaje.split(',')
if not "Adultos" in scrapedgenero and not "Adultos" in scrapedlenguaje and not "Adultos" in scrapedcalidad:
scrapedlenguaje = scrapedlenguaje.replace(scrapedlenguaje,
bbcode_kodi2html("[COLOR orange]" + scrapedlenguaje + "[/COLOR]"))
scrapedtitle = scrapedtitle + "-(Idioma: " + scrapedlenguaje + ")" + "-(Calidad: " + scrapedcalidad + ")"
scrapedtitle = scrapedtitle.replace(scrapedtitle,
bbcode_kodi2html("[COLOR white]" + scrapedtitle + "[/COLOR]"))
scrapedtitle = scrapedtitle
extra = year + "|" + title_fan
itemlist.append(Item(channel=item.channel, title=scrapedtitle, url=scrapedurl, action="fanart",
thumbnail=scrapedthumbnail, extra=extra,
fanart="http://s18.postimg.org/h9kb22mnt/pdkfanart.jpg", library=True, folder=True))
new_item = Item(channel=item.channel, title=scrapedtitle, url=scrapedurl, action="fanart",
thumbnail=scrapedthumbnail, extra=extra,
fanart="http://s18.postimg.org/h9kb22mnt/pdkfanart.jpg", library=True, folder=True,
language=scrapedlenguaje, quality=scrapedcalidad, contentTitle= scrapedtitle, infoLabels={
'year':year})
#TODO Dividir los resultados antes
#if year:
# tmdb.set_infoLabels_item(new_item)
itemlist.append(new_item)
## Paginación
next_page = scrapertools.get_match(data, '<span class="current">.*?<a href="(.*?)".*?>Siguiente &raquo;</a></div>')
@@ -453,7 +456,7 @@ def fanart(item):
else:
category = item.extra
itemlist.append(Item(channel=item.channel, title=item.title, action="findvideos", url=item.url,
server="torrent", thumbnail=logo, fanart=item.extra, extra=extra, show=show,
thumbnail=logo, fanart=item.extra, extra=extra, show=show,
category=category, library=item.library, fulltitle=fulltitle, folder=True))
title_info = "Info"
@@ -540,17 +543,19 @@ def findvideos(item):
continue
servertitle = scrapertools.get_match(video_url, 'http.*?://(.*?)/')
servertitle = servertitle.replace(servertitle,
bbcode_kodi2html("[COLOR red]" + servertitle + "[/COLOR]"))
servertitle = servertitle.replace("embed.", "")
servertitle = servertitle.replace("player.", "")
servertitle = servertitle.replace("api.video.", "")
servertitle = re.sub(r"hqq.tv|hqq.watch", "netu.tv", servertitle)
servertitle = servertitle.replace("anonymouse.org", "netu.tv")
title = bbcode_kodi2html("[COLOR orange]Ver en --[/COLOR]") + servertitle + " " + idioma + " " + calidad
servertitle = re.sub(r"hqq.tv|hqq.watch", "netutv", servertitle)
servertitle = servertitle.replace("anonymouse.org", "netu")
title = servertitle
logger.debug('servertitle: %s' % servertitle)
server = servertools.get_server_name(servertitle)
logger.debug('server: %s'%server)
itemlist.append(
Item(channel=item.channel, title=title, url=video_url, action="play", thumbnail=item.category,
plot=scrapedplot, fanart=item.show))
Item(channel=item.channel, title=title, url=video_url, action="play",
thumbnail=item.category,
plot=scrapedplot, fanart=item.show, server=server, language=idioma, quality=calidad))
if item.library and config.get_videolibrary_support() and len(itemlist) > 0:
infoLabels = {'tmdb_id': item.infoLabels['tmdb_id'],
'title': item.fulltitle}

54
plugin.video.alfa/channels/peliculasgratis.py Executable file → Normal file
View File

@@ -34,7 +34,7 @@ CALIDADES = {"micro1080p": "[COLOR plum]Micro1080p[/COLOR]", "dvds": "[COLOR lim
"hdtv-rip": "[COLOR black]Hdtv-rip[/COLOR]", "micro720p": "[COLOR yellow]Micro720p[/COLOR]",
"ts-hq": "[COLOR mediumspringgreen]Ts-Hq[/COLOR]", "camrip": "[COLOR royalblue]Camp-Rip[/COLOR]",
"webs": "[COLOR lightsalmon]Webs[/COLOR]", "hd": "[COLOR mediumseagreen]HD[/COLOR]"}
IDIOMAS = {"castellano": "[COLOR yellow]Castelllano[/COLOR]", "latino": "[COLOR orange]Latino[/COLOR]",
IDIOMAS = {"castellano": "[COLOR yellow]Castellano[/COLOR]", "latino": "[COLOR orange]Latino[/COLOR]",
"vose": "[COLOR lightsalmon]Subtitulada[/COLOR]", "vo": "[COLOR crimson]Ingles[/COLOR]",
"en": "[COLOR crimson]Ingles[/COLOR]"}
IDIOMASP = {"es": "[COLOR yellow]CAST[/COLOR]", "la": "[COLOR orange]LAT[/COLOR]",
@@ -147,10 +147,13 @@ def scraper(item):
matches = scrapertools.find_multiple_matches(bloque_enlaces,
'<a class="i" href="([^"]+)".*?src="([^"]+)".*?">([^<]+)<.*?<div class="l">(.*?)<\/a><h3>.*?title[^<]+>([^<]+)<\/a><\/h3> <span>(.*?)<')
for url, thumb, quality, check_idioma, title, check_year in matches:
logger.debug('check_idioma: %s' % check_idioma)
title_fan = title
title_item = "[COLOR cornflowerblue][B]" + title + "[/B][/COLOR]"
if item.contentType != "movie":
title = "[COLOR cornflowerblue][B]" + title + "[/B][/COLOR]"
title = title
idiomas = ''
else:
if quality == "ts":
quality = re.sub(r'ts', 'ts-hq', quality)
@@ -158,37 +161,14 @@ def scraper(item):
quality = CALIDADES.get(quality)
else:
quality = quality
idiomas = scrapertools.find_multiple_matches(check_idioma, '<div class="id (.*?)">')
if len(idiomas) == 1:
idioma1 = idiomas[0].strip()
if IDIOMASP.get(idioma1):
idiomas = "-" + IDIOMASP.get(idioma1)
elif len(idiomas) == 2:
idioma1, idioma2 = idiomas[0], idiomas[1]
if IDIOMASP.get(idioma1, idioma2):
idioma1 = IDIOMASP.get(idioma1)
idioma2 = IDIOMASP.get(idioma2)
idiomas = "-" + idioma1 + "|" + idioma2
elif len(idiomas) == 3:
idioma1, idioma2, idioma3 = idiomas[0], idiomas[1], idiomas[2]
idioma1 = IDIOMASP.get(idioma1)
idioma2 = IDIOMASP.get(idioma2)
idioma3 = IDIOMASP.get(idioma3)
idiomas = "-" + idioma1 + "|" + idioma2 + "|" + idioma3
elif len(idiomas) >= 4:
idioma1, idioma2, idioma3, idioma4 = idiomas[0], idiomas[1], idiomas[2], idiomas[3]
idioma1 = IDIOMASP.get(idioma1)
idioma2 = IDIOMASP.get(idioma2)
idioma3 = IDIOMASP.get(idioma3)
idioma4 = IDIOMASP.get(idioma4)
idiomas = "-" + idioma1 + "|" + idioma2 + "|" + idioma3 + "|" + idioma4
title = "[COLOR cornflowerblue][B]" + title + "[/B][/COLOR]" + " " + quality + " " + idiomas
idiomas = scrapertools.find_multiple_matches(check_idioma, '<div class="id (.*?)">')
title = title
itemlist.append(
Item(channel=item.channel, title=title, url=urlparse.urljoin(host, url), action="fanart", thumbnail=thumb,
fanart="http://imgur.com/nqmJozd.jpg", extra=title_fan + "|" + title_item + "|" + check_year.strip(),
contentType=item.contentType, folder=True))
contentType=item.contentType, folder=True, language = idiomas))
## Paginación
if check_year:
next = scrapertools.find_single_match(data, 'href="([^"]+)" title="Siguiente página">')
@@ -631,20 +611,14 @@ def findvideos(item):
icon_server = icon_server.replace('streamin', 'streaminto')
if not os.path.exists(icon_server):
icon_server = thumb
if CALIDADES.get(calidad):
calidad = CALIDADES.get(calidad)
else:
calidad = "[COLOR brown]" + calidad + "[/COLOR]"
if IDIOMAS.get(idioma):
idioma = IDIOMAS.get(idioma)
else:
idioma = "[COLOR brown]" + idioma + "[/COLOR]"
#calidad = calidad
#idioma = idioma
server = servertools.get_server_name(server_name)
extra = "online"
itemlist.append(Item(channel=item.channel,
title="[COLOR lightcyan][B]" + server + "[/B][/COLOR] " + calidad + " " + idioma,
url=url, action="play", thumbnail=icon_server, fanart="", contentType=item.contentType,
folder=True, id=url_post))
title="server", url=url, action="play", fanart="",
contentType=item.contentType, folder=True, id=url_post, language=idioma,
quality=calidad, server = server))
else:
bloque_dd = scrapertools.find_single_match(data, '<\/i>Descargar(.*?)<div class="enlaces">')
links_dd = scrapertools.find_multiple_matches(bloque_dd,

28
plugin.video.alfa/channels/peliculasmx.py Executable file → Normal file
View File

@@ -4,10 +4,14 @@ import re
import urlparse
from core import scrapertools
from core import httptools
from core import tmdb
from core.item import Item
from platformcode import logger
def mainlist(item):
logger.info()
@@ -25,8 +29,8 @@ def generos(item):
itemlist = []
# Descarga la página
data = scrapertools.cachePage(item.url)
data = httptools.downloadpage(item.url).data
logger.debug(data)
# <li class="cat-item cat-item-3"><a href="http://peliculasmx.net/category/accion/" >Accion</a> <span>246</span>
patron = '<li class="cat-item cat-item-.*?'
patron += '<a href="([^"]+)".*?'
@@ -51,24 +55,26 @@ def peliculas(item):
itemlist = []
# Descarga la página
data = scrapertools.cachePage(item.url)
data = httptools.downloadpage(item.url).data
patron = '<div id="mt-.*?'
patron += '<a href="([^"]+)".*?'
patron += '<img src="([^"]+)".*?'
patron += '<span class="tt">([^<]+).*?'
patron += '<span class="year">(\d{4})</span>.*?'
patron += '<span class="calidad2">([^<]+)'
matches = re.compile(patron, re.DOTALL).findall(data)
for match in matches:
scrapedurl = match[0] # urlparse.urljoin("",match[0])
scrapedtitle = match[2] + ' [' + match[3] + ']'
scrapedthumbnail = match[1]
itemlist.append(
Item(channel=item.channel, action="findvideos", title=scrapedtitle, fulltitle=scrapedtitle, url=scrapedurl,
thumbnail=scrapedthumbnail, folder=True))
for scrapedurl, scrapedthumbnail, scrapedtitle, year, quality in matches:
url =scrapedurl
title = scrapedtitle
thumbnail = scrapedthumbnail
itemlist.append(
Item(channel=item.channel, action="findvideos", title=title, contentTitle=title, url=url,
thumbnail=thumbnail, quality=quality, infoLabels={'year':year}))
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
# Extrae la marca de siguiente página
paginador = scrapertools.find_single_match(data, "<div class='paginado'>.*?lateral")

8
plugin.video.alfa/channels/peliculasnu.py Executable file → Normal file
View File

@@ -124,7 +124,8 @@ def entradas(item):
infolabels = {'year': year}
itemlist.append(Item(channel=item.channel, action="findvideos", url=scrapedurl, title=titulo,
contentTitle=scrapedtitle, infoLabels=infolabels, text_color=color2,
thumbnail=scrapedthumbnail, contentType="movie", fulltitle=scrapedtitle))
thumbnail=scrapedthumbnail, contentType="movie", fulltitle=scrapedtitle,
language=idiomas, quality=calidad))
if not item.from_newest:
tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__)
@@ -214,12 +215,13 @@ def findvideos(item):
url = url + '|' + item.url
title = "%s - %s" % ('%s', title)
itemlist.append(item.clone(action="play", url=url, title=title, text_color=color3))
itemlist.append(Item (channel=item.channel, action="play", url=url, title=title, text_color=color3))
itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize())
if item.extra != "findvideos" and config.get_videolibrary_support():
itemlist.append(item.clone(title="Añadir película a la videoteca", action="add_pelicula_to_library",
itemlist.append(Item (channel=item.channel, title="Añadir película a la videoteca", \
action="add_pelicula_to_library",
extra="findvideos", text_color="green"))
return itemlist

View File

@@ -11,7 +11,7 @@ from core import servertools
from core.item import Item
from platformcode import config, logger
HOST = "http://seriesblanco.com/"
HOST = "https://seriesblanco.com/"
IDIOMAS = {'es': 'Español', 'en': 'Inglés', 'la': 'Latino', 'vo': 'VO', 'vos': 'VOS', 'vosi': 'VOSI', 'otro': 'OVOS'}
list_idiomas = IDIOMAS.values()
CALIDADES = ['SD', 'HDiTunes', 'Micro-HD-720p', 'Micro-HD-1080p', '1080p', '720p']
@@ -40,7 +40,7 @@ def mainlist(item):
itemlist.append(Item(channel=item.channel, title="Series por género", action="generos",
url=HOST, thumbnail=thumb_series))
itemlist.append(
Item(channel=item.channel, title="Buscar...", action="search", url="https://seriesblanco.com/finder.php",
Item(channel=item.channel, title="Buscar...", action="search", url=urlparse.urljoin(HOST, "finder.php"),
thumbnail=thumb_buscar))
itemlist = filtertools.show_option(itemlist, item.channel, list_idiomas, CALIDADES)

View File

@@ -10,7 +10,7 @@ from core import servertools
from core.item import Item
from platformcode import config, logger
HOST = 'http://seriesdanko.info/'
HOST = 'https://seriesdanko.info/'
IDIOMAS = {'es': 'Español', 'la': 'Latino', 'vos': 'VOS', 'vo': 'VO'}
list_idiomas = IDIOMAS.values()
CALIDADES = ['SD', 'MicroHD', 'HD/MKV']

View File

@@ -24,7 +24,7 @@ def mainlist(item):
itemlist.append(Item(channel=item.channel, action="lista_gen", title="Novedades", url=host,
thumbnail=thumb_series))
itemlist.append(Item(channel=item.channel, action="lista", title="Series", url=urlparse.urljoin(host, "/lista"),
itemlist.append(Item(channel=item.channel, action="lista", title="Listado Completo de Series", url=urlparse.urljoin(host, "/lista"),
thumbnail=thumb_series))
itemlist.append(Item(channel=item.channel, action="categorias", title="Categorias", url=host,
thumbnail=thumb_series))
@@ -121,7 +121,7 @@ def lista_gen(item):
patron = '<article id=.+? class=.+?><div.+?>'
patron += '<a href="([^"]+)" title="([^"]+)' # scrapedurl, # scrapedtitle
patron += ' Capítulos Completos ([^"]+)">' # scrapedlang
patron += '<img.+? data-src=.+? data-lazy-src="([^"]+)"' # scrapedthumbnail
patron += '<img src=".+?" data-lazy-src="([^"]+)"' # scrapedthumbnail
matches = scrapertools.find_multiple_matches(data, patron)
i = 0
for scrapedurl, scrapedtitle, scrapedlang, scrapedthumbnail in matches:
@@ -134,13 +134,14 @@ def lista_gen(item):
show=scrapedtitle, context=renumbertools.context(item)))
tmdb.set_infoLabels(itemlist)
# Paginacion
patron_pag = '<a class="nextpostslink" rel="next" href="([^"]+)">'
next_page_url = scrapertools.find_single_match(data, patron_pag)
if next_page_url != "" and i != 1:
item.url = next_page_url
itemlist.append(Item(channel=item.channel, action="lista_gen", title=">> Página siguiente", url=next_page_url,
thumbnail='https://s32.postimg.org/4zppxf5j9/siguiente.png'))
#patron_pag='<a class="nextpostslink" rel="next" href="([^"]+)">'
patron_pag='<li class="next right"><a href="([^"]+)" >([^"]+)<\/a><\/li>'
next_page_url = scrapertools.find_single_match(data,patron_pag)
if next_page_url!="" and i!=1:
item.url=next_page_url[0]
itemlist.append(Item(channel = item.channel,action = "lista_gen",title = ">> Página siguiente", url = next_page_url[0], thumbnail='https://s32.postimg.org/4zppxf5j9/siguiente.png'))
return itemlist
@@ -171,7 +172,6 @@ def episodios(item):
matches = scrapertools.find_multiple_matches(data, patron_caps)
show = scrapertools.find_single_match(data, '<h3><strong>.+?de (.+?)<\/strong>')
scrapedplot = scrapertools.find_single_match(data, '<strong>Sinopsis<\/strong><strong>([^"]+)<\/strong><\/pre>')
logger.info("epibla " + data)
for link, cap, name in matches:
if 'x' in cap:
title = cap + " - " + name

View File

@@ -1,73 +0,0 @@
# -*- coding: utf-8 -*-
import xbmcgui
import xbmcaddon
from platformcode import config
from core import filetools
from threading import Timer
class KeyListener(xbmcgui.WindowXMLDialog):
TIMEOUT = 10
def __new__(cls):
gui_api = tuple(map(int, xbmcaddon.Addon('xbmc.gui').getAddonInfo('version').split('.')))
file_name = "DialogNotification.xml" if gui_api >= (5, 11, 0) else "DialogKaiToast.xml"
return super(KeyListener, cls).__new__(cls, file_name, "")
def __init__(self):
self.key = None
def onInit(self):
try:
self.getControl(401).addLabel("Presiona la tecla a usar para abrir la ventana")
self.getControl(402).addLabel("Tienes %s segundos" % self.TIMEOUT)
except AttributeError:
self.getControl(401).setLabel("Presiona la tecla a usar para abrir la ventana")
self.getControl(402).setLabel("Tienes %s segundos" % self.TIMEOUT)
self.getControl(400).setImage(filetools.join(config.get_runtime_path(),"resources","images","matchcenter","matchcenter.png"))
def onAction(self, action):
code = action.getButtonCode()
self.key = None if code == 0 else str(code)
self.close()
@staticmethod
def record_key():
dialog = KeyListener()
timeout = Timer(KeyListener.TIMEOUT, dialog.close)
timeout.start()
dialog.doModal()
timeout.cancel()
key = dialog.key
del dialog
return key
def start():
tecla_guardada = config.get_setting("keymap_edit", "editor_keymap")
nuevakey = KeyListener().record_key()
if nuevakey and tecla_guardada != nuevakey:
from core import filetools
from platformcode import platformtools
import xbmc
file_xml = "special://profile/keymaps/alfa.xml"
data = '<keymap><global><keyboard><key id="%s">' % nuevakey + 'runplugin(plugin://' \
'plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAic3RhcnQiLCANCiAgICAiY2hhbm5lbCI6ICJtaW5pbWVudSIsIA0KICAgICJpbmZvTGFiZWxzIjoge30NCn0=)</key></keyboard></global></keymap>'
filetools.write(xbmc.translatePath(file_xml), data)
platformtools.dialog_notification("Tecla guardada", "Reinicia Kodi para que se apliquen los cambios")
from core import scrapertools
config.set_setting("keymap_edit", nuevakey, "editor_keymap")
file_idioma = filetools.join(config.get_runtime_path(), 'resources', 'language', 'Spanish', 'strings.xml')
data = filetools.read(file_idioma)
value_xml = scrapertools.find_single_match(data, '<string id="31100">([^<]+)<')
if "tecla" in value_xml:
data = data.replace(value_xml, 'Cambiar tecla/botón para abrir la ventana (Guardada: %s)' % nuevakey)
elif "key" in value_xml:
data = data.replace(value_xml, 'Change key/button to open the window (Saved: %s)' % nuevakey)
else:
data = data.replace(value_xml, 'Cambiamento di chiave/pulsante per aprire la finestra (Salvato: %s)' % nuevakey)
filetools.write(file_idioma, data)
return

View File

@@ -0,0 +1,173 @@
# -*- coding: utf-8 -*-
from threading import Timer
import xbmc
import xbmcaddon
import xbmcgui
from core import filetools
from platformcode import config
class KeyListener(xbmcgui.WindowXMLDialog):
TIMEOUT = 10
def __new__(cls):
gui_api = tuple(map(int, xbmcaddon.Addon('xbmc.gui').getAddonInfo('version').split('.')))
if gui_api >= (5, 11, 0):
filenname = "DialogNotification.xml"
else:
filenname = "DialogKaiToast.xml"
return super(KeyListener, cls).__new__(cls, filenname, "")
def __init__(self):
self.key = None
def onInit(self):
try:
self.getControl(401).addLabel("Presiona la tecla a usar para abrir la ventana")
self.getControl(402).addLabel("Tienes %s segundos" % self.TIMEOUT)
except AttributeError:
self.getControl(401).setLabel("Presiona la tecla a usar para abrir la ventana")
self.getControl(402).setLabel("Tienes %s segundos" % self.TIMEOUT)
def onAction(self, action):
code = action.getButtonCode()
if code == 0:
self.key = None
else:
self.key = str(code)
self.close()
@staticmethod
def record_key():
dialog = KeyListener()
timeout = Timer(KeyListener.TIMEOUT, dialog.close)
timeout.start()
dialog.doModal()
timeout.cancel()
key = dialog.key
del dialog
return key
def set_key():
saved_key = config.get_setting("shortcut_key")
new_key = KeyListener().record_key()
if new_key and saved_key != new_key:
from core import filetools
from platformcode import platformtools
import xbmc
file_xml = "special://profile/keymaps/alfa.xml"
data = '<keymap><global><keyboard><key id="%s">' % new_key + 'runplugin(plugin://' \
'plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAia2V5bWFwIiwNCiAgICAib3BlbiI6IHRydWUNCn0=)</key></keyboard></global></keymap>'
filetools.write(xbmc.translatePath(file_xml), data)
platformtools.dialog_notification("Tecla guardada", "Reinicia Kodi para que se apliquen los cambios")
config.set_setting("shortcut_key", new_key)
# file_idioma = filetools.join(config.get_runtime_path(), 'resources', 'language', 'Spanish', 'strings.xml')
# data = filetools.read(file_idioma)
# value_xml = scrapertools.find_single_match(data, '<string id="31100">([^<]+)<')
# if "tecla" in value_xml:
# data = data.replace(value_xml, 'Cambiar tecla/botón para abrir la ventana (Guardada: %s)' % new_key)
# elif "key" in value_xml:
# data = data.replace(value_xml, 'Change key/button to open the window (Saved: %s)' % new_key)
# else:
# data = data.replace(value_xml,
# 'Cambiamento di chiave/pulsante per aprire la finestra (Salvato: %s)' % new_key)
# filetools.write(file_idioma, data)
return
MAIN_MENU = {
"news": {"label": "Novedades",
"icon": filetools.join(config.get_runtime_path(), "resources", "media", "general", "default",
"thumb_news.png"), "order": 0},
"channels": {"label": "Canales",
"icon": filetools.join(config.get_runtime_path(), "resources", "media", "general", "default",
"thumb_channels.png"), "order": 1},
"search": {"label": "Buscador",
"icon": filetools.join(config.get_runtime_path(), "resources", "media", "general", "default",
"thumb_search.png"), "order": 2},
"favorites": {"label": "Favoritos",
"icon": filetools.join(config.get_runtime_path(), "resources", "media", "general", "default",
"thumb_favorites.png"), "order": 3},
"videolibrary": {"label": "Videoteca",
"icon": filetools.join(config.get_runtime_path(), "resources", "media", "general", "default",
"thumb_videolibrary.png"), "order": 4},
"downloads": {"label": "Descargas",
"icon": filetools.join(config.get_runtime_path(), "resources", "media", "general", "default",
"thumb_downloads.png"), "order": 5},
"settings": {"label": "Configuración",
"icon": filetools.join(config.get_runtime_path(), "resources", "media", "general", "default",
"thumb_setting_0.png"), "order": 6},
}
class Main(xbmcgui.WindowXMLDialog):
def __init__(self, *args, **kwargs):
self.items = []
def onInit(self):
self.setCoordinateResolution(2)
for menuentry in MAIN_MENU.keys():
item = xbmcgui.ListItem(MAIN_MENU[menuentry]["label"])
item.setProperty("thumb", str(MAIN_MENU[menuentry]["icon"]))
item.setProperty("identifier", str(menuentry))
item.setProperty("order", str(MAIN_MENU[menuentry]["order"]))
self.items.append(item)
self.items.sort(key=lambda it: it.getProperty("order"))
self.getControl(32500).addItems(self.items)
self.setFocusId(32500)
def onClick(self, control_id):
if control_id == 32500:
identifier = self.getControl(32500).getSelectedItem().getProperty("identifier")
if identifier == "news":
xbmc.executebuiltin('Dialog.Close(all,true)')
xbmc.executebuiltin(
'ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJuZXdzIg0KfQ==")')
elif identifier == "channels":
xbmc.executebuiltin('Dialog.Close(all,true)')
xbmc.executebuiltin(
'ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAiZ2V0Y2hhbm5lbHR5cGVzIiwgDQogICAgImNoYW5uZWwiOiAiY2hhbm5lbHNlbGVjdG9yIg0KfQ==")')
elif identifier == "search":
xbmc.executebuiltin('Dialog.Close(all,true)')
xbmc.executebuiltin(
'ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJzZWFyY2giDQp9")')
elif identifier == "favorites":
xbmc.executebuiltin('Dialog.Close(all,true)')
xbmc.executebuiltin(
'ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJmYXZvcml0ZXMiDQp9")')
elif identifier == "videolibrary":
xbmc.executebuiltin('Dialog.Close(all,true)')
xbmc.executebuiltin(
'ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJ2aWRlb2xpYnJhcnkiDQp9")')
elif identifier == "downloads":
xbmc.executebuiltin('Dialog.Close(all,true)')
xbmc.executebuiltin(
'ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJkb3dubG9hZHMiDQp9")')
elif identifier == "settings":
xbmc.executebuiltin('Dialog.Close(all,true)')
xbmc.executebuiltin(
'ActivateWindow(10025, "plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAibWFpbmxpc3QiLCANCiAgICAiY2hhbm5lbCI6ICJzZXR0aW5nIg0KfQ==")')
def onAction(self, action):
# exit
if action.getId() in [xbmcgui.ACTION_PREVIOUS_MENU, xbmcgui.ACTION_NAV_BACK]:
# main.close()
xbmc.executebuiltin('Dialog.Close(all,true)')
if action.getId() == xbmcgui.ACTION_CONTEXT_MENU:
config.open_settings()
def open_shortcut_menu():
main = Main('ShortCutMenu.xml', config.get_runtime_path())
main.doModal()
del main

View File

@@ -42,17 +42,13 @@ def run(item=None):
logger.info(item.tostring())
try:
if item.action == "editor_keymap":
from platformcode import editor_keymap
return editor_keymap.start()
# If item has no action, stops here
if item.action == "":
logger.info("Item sin accion")
return
# Action for main menu in channelselector
if item.action == "getmainlist":
elif item.action == "getmainlist":
import channelselector
# # Check for updates only on first screen
@@ -124,6 +120,13 @@ def run(item=None):
play_from_library(item)
return
elif item.action == "keymap":
from platformcode import keymaptools
if item.open:
return keymaptools.open_shortcut_menu()
else:
return keymaptools.set_key()
# Action in certain channel specified in "action" and "channel" parameters
else:

View File

@@ -1,263 +0,0 @@
<?xml reprodueixsion="1.0" encoding="UTF-8" standalone="yes"?>
<strings>
<!-- Los id disponibles son de 30000 a 30999 -->
<!-- ======================================= -->
<!-- De 30000 a 30049: Configuració -->
<!-- ======================================= -->
<!-- Comunes -->
<string id="30000"></string>
<string id="30001">Comprova actualitzacions:</string>
<string id="30004">Actualitza automàticament els canals:</string>
<string id="30201">Actualitza la videoteca en obrir l'XBMC</string>
<string id="30002">Activa el mode per adults:</string>
<string id="30003">Genera un log detallat:</string>
<string id="30043">Força el mode de vista:</string>
<!-- Acció por defecte quan tries un vídeo -->
<string id="30005">Acció quan es selecciona un vídeo:</string>
<string id="30006">Demana què fer</string>
<string id="30007">Reprodueix</string>
<string id="30008">Reprodueix en qualitat alta</string>
<string id="30009"></string>
<!-- Tipus de logos para els canals -->
<string id="30010">Logos dels canals:</string>
<string id="30011">Pòster (vertical)</string>
<string id="30012">Bàner (horitzontal)</string>
<string id="30200">Quadrat</string>
<!-- Compte premium -->
<string id="30014">Usuari:</string>
<string id="30015">Contrasenya:</string>
<string id="30031">Qualitat de vídeos (FLV)</string>
<string id="30032">Qualitat Normal (SD)</string>
<string id="30033">Qualitat Alta (HD)(si existeix)</string>
<string id="30034">Usuari pàgines privades:</string>
<string id="30035">Contrasenya pàgines privades:</string>
<!-- Altres -->
<string id="30017">Directori de descàrregues:</string>
<string id="30018">Directori de la llista descàrregues:</string>
<string id="30030">Directori de preferits:</string>
<string id="30067">Directori de la videoteca:</string>
<string id="30020">Tria Qualitat més alta (Youtube)</string>
<string id="30021">Activa els subtítols:</string>
<string id="30022"></string>
<string id="30066"></string>
<string id="30024">Nom de cerques a desar:</string>
<string id="30019">Filtrar canals per idioma:</string>
<string id="30025">Qualsevol idioma</string>
<string id="30026">Espanyol</string>
<string id="30027">Anglès</string>
<string id="30028">Italià</string>
<string id="30029">Portuguès</string>
<string id="30016">Català</string>
<string id="30023">Eusquera</string>
<string id="30036">Gallec</string>
<string id="30037">Valencià</string>
<string id="30038">Mode de memòria cau:</string>
<string id="30039">Automàtic</string>
<string id="30040">Tot a la memòria cau</string>
<string id="30041">Res a la memòria cau</string>
<string id="30042">Directori de la memòria cau:</string>
<string id="30043">Tria la millor vista (Només Confluence):</string>
<string id="30044">Mode de reproducció:</string>
<string id="30013"></string>
<string id="30048">Nom del canal</string>
<string id="30049">Logo del canal</string>
<string id="30045">URL/fitxer amb els vídeos</string>
<string id="30047">Elements per pàgina</string>
<!-- Filtros -->
<string id="30068">Filtrar per servidors: </string>
<string id="30069">Llista Blanca: </string>
<string id="30070">Llista Negra: </string>
<string id="30071">Per posar diversos servidors utilitza "," com a separador </string>
<!-- =============================================================== -->
<!-- De 30050 a 30099: Mensajes informativos - error -->
<!-- =============================================================== -->
<string id="30050">No es pot connectar amb el servidor</string>
<string id="30051">El lloc web no funciona correctament (error http %d)</string>
<string id="30052">Megavídeo té un límit de reproducció de 72 minuts</string>
<string id="30053">Per evitar que els vídeos es tallin en aquest temps</string>
<string id="30054">necessites un compte Premium</string>
<string id="30055">Vídeo no disponible</string>
<string id="30056">No s'han pogut localitzar vídeos a la pàgina del lloc web</string>
<string id="30057">El vídeo ja no està a %s</string>
<string id="30058">Prova a un altre servidor o a un altre canal</string>
<string id="30059">Error al lloc web</string>
<string id="30060">No es pot accedir per un error en el lloc web</string>
<string id="30061">La qualitat triada no està disponible o el vídeo ha estat esborrat</string>
<string id="30062">Prova a reproduir en una altra qualitat</string>
<string id="30063">Canal descarregat i actualitzat!</string>
<string id="30064">Llista de canals actualitzada!</string>
<string id="30065">Servidor no suportat</string>
<!-- =============================================================== -->
<!-- De 30100 a 30149: Canals genéricos (buscatr, descargas, etc.) -->
<!-- =============================================================== -->
<string id="30100">Configuració</string>
<string id="30101">Descàrregues</string>
<string id="30102">Preferits</string>
<string id="30103">Cerca</string>
<string id="30104">Ajuda</string>
<string id="30105">S'ha tret de preferits</string>
<string id="30106">S'ha tret de la llista de les descàrregues</string>
<string id="30107">Ha tornat a la llista de les descàrregues</string>
<string id="30108">S'ha afegit a preferits</string>
<string id="30109">S'ha afegit a la llista de les descàrregues</string>
<string id="30110">Cerca tràiler per a</string>
<string id="30111">Torna a fer la cerca de tràiler per a</string>
<string id="30112">Introdueix el títol a cercar</string>
<string id="30113">Modifica el títol actual per a refinar la cerca</string>
<string id="30114">No s'ha trobat el tràiler</string>
<string id="30115">El tràiler per a %s</string>
<string id="30116">no s'ha pogut localitzar.</string>
<string id="30117">vols refinar la cerca amb el teclat?</string>
<string id="30135">s'ha afegit a la videoteca</string>
<string id="30130">Novetats</string>
<string id="30118">Canals</string>
<string id="30119">Selecciona una Categoria</string>
<string id="30120">Selecciona un Idioma</string>
<string id="30121">Tots</string>
<string id="30122">Pel·lícules</string>
<string id="30123">Sèries</string>
<string id="30124">Anime</string>
<string id="30125">Documentals</string>
<string id="30126">Adults</string>
<string id="30137">Directos</string>
<string id="30127">Llatí</string>
<string id="30128">Cerca de tràilers</string>
<string id="30129">Adult</string>
<string id="30131">Videoteca</string>
<string id="30132">Temàtics</string>
<string id="30133">Infantil</string>
<string id="30134">Els nous</string>
<!-- =============================================================== -->
<!-- De 30150 a 30199: Menú acción / contextual -->
<!-- =============================================================== -->
<string id="30150">Reprodueix en qualitat alta</string>
<string id="30151">Reprodueix el vídeo</string>
<string id="30152">Reprodueix en qualitat baixa</string>
<string id="30153">Descarrega</string>
<string id="30154">Treu de preferits</string>
<string id="30155">Afegeix a preferits</string>
<string id="30156">Treu de la llista de descàrregues</string>
<string id="30157">Afegeix a llista de descàrregues</string>
<string id="30158"></string>
<string id="30159">Esborra la descàrrega definitivament</string>
<string id="30160">Passa de nou a llista de descàrregues</string>
<string id="30161">Afegeix a la videoteca</string>
<string id="30162">Cerca el tràiler</string>
<string id="30163">Tria una opció</string>
<string id="30164">Esborra aquest fitxer</string>
<!-- =============================================================== -->
<!-- De 30200 a 30999: Canals individuals -->
<!-- =============================================================== -->
<!-- Context menú strings -->
<string id="30300">Elimina aquesta cerca</string>
<string id="30301">Desa aquest canal als preferits</string>
<string id="30302">Elimina aquest canal dels preferits</string>
<string id="30303">Canvia el nom al títol d'aquest canal</string>
<!-- Megalive menú strings -->
<string id="30401">Mur de canals</string>
<string id="30402">Categories</string>
<string id="30403">Canals Preferits</string>
<string id="30404">Veure Canal por Codi(ID)</string>
<string id="30405">Introdueix el codi del canal</string>
<!-- Justin.tv Category menú strings -->
<string id="30406">Afegeix a Jtv preferits</string>
<string id="30407">Elimina de Jtv Preferits</string>
<string id="30408"> (fitxers)</string>
<string id="30409">llistar vídeos arxivats</string>
<string id="30410">reprodueix el canal en directe</string>
<string id="30411">El canal no existeix o no està en línia</string>
<string id="30412">El canal no té vídeos arxivats</string>
<string id="30413">Fitxer de vídeos</string>
<string id="30414">Canals en directe</string>
<string id="30415">Introdueix Nom/ID del Canal</string>
<string id="30416">Preferits</string>
<string id="30417">Cerca</string>
<string id="30418">Usuari Justin.tv</string>
<string id="30419">Tots els Idiomes</string>
<string id="30420">Filtro de Idioma(s)</string>
<string id="30421">Tots</string>
<string id="30422">Introdueix el login de Justin TV</string>
<string id="30423">El canal [%s] està desconnectat en aquest moment</string>
<string id="30424">Contrasenya Justin.tv</string>
<!-- =============================================================== -->
<!-- Subtítols -->
<!-- =============================================================== -->
<string id="30431">Tria la font dels subtítols :</string>
<string id="30432">Carpeta</string>
<string id="30433">Fitxer</string>
<string id="30434">Teclat</string>
<string id="30435">Directori de subtítols</string>
<string id="30436">Subtítol a carregar</string>
<string id="30437">introdueix direcció</string>
<!-- LetMeWatchThis -->
<string id="40001">Pel·lícules - Novetats</string>
<string id="40002">Sèries - Novetats</string>
<string id="40003">Pàgina següent</string>
<!-- =============================================================== -->
<!-- Category strings -->
<!-- =============================================================== -->
<string id="30500">Comptes</string>
<string id="30501">Rutes</string>
<string id="30502">Altres</string>
<!-- TVShack strings -->
<string id="30900">TVShack</string>
<string id="30901">Sèries TV (VO)</string>
<string id="30902">Pel·lícules (VO)</string>
<string id="30903">Documentals (VO)</string>
<string id="30904">Anime (VO)</string>
<string id="30905">Música</string>
<string id="30906">Cerca Global en TVShack</string>
<string id="30907">No s'han trobat resultats de cerca</string>
<string id="30908">Sèrie - %s (%s episodis)</string>
<string id="30909">Sèrie - </string>
<string id="30910">Cinema - %s (%s)</string>
<string id="30911">"Música - "</string>
<string id="30912">Llegint %s...</string>
<string id="30913">No s'ha trobat res que llistar</string>
<string id="30914">episodi</string>
<string id="30915">episodis</string>
<string id="30916">cançó</string>
<string id="30917">cançons</string>
<string id="30918"> (Nou)</string>
<string id="30919"> (Nous continguts)</string>
<string id="30920">AFEGIR TOTS ELS EPISODIS A LA VIDEOTECA</string>
<!-- =============================================================== -->
<!-- Configuració RSS (IAMM, XTreamer y otros) -->
<!-- =============================================================== -->
<string id="31000">Traductor de mitjà activat:</string>
<string id="30140">Títol</string>
<string id="30165">Prem OK per canviar...</string>
<string id="30166">Desa els canvis</string>
<string id="30167">Surt</string>
<string id="30168">Canvis aplicats</string>
<string id="30169">Cerca</string>
<string id="30170">Actualitza canals:</string>
</strings>

View File

@@ -1,269 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<strings>
<!-- Available id from 30000 to 30999 -->
<!-- ======================================= -->
<!-- 30000 to 30049: Configuration -->
<!-- ======================================= -->
<!-- Commons -->
<string id="30000"></string>
<string id="30001">Check for updates:</string>
<string id="30004">Automatic update channels:</string>
<string id="30201">Update library each time XBMC opens</string>
<string id="30002">Enable adult mode:</string>
<string id="30003">Enable debug logging:</string>
<string id="30043">Force view mode:</string>
<!-- Default action when you select a video -->
<string id="30005">Default play setting:</string>
<string id="30006">Ask</string>
<string id="30007">Watch in low quality</string>
<string id="30008">Watch in high quality</string>
<string id="30009"></string>
<!-- Logo visualization for channels -->
<string id="30010">Channel icons view:</string>
<string id="30011">Poster (vertical)</string>
<string id="30012">Banner (horizontal)</string>
<string id="30200">Square</string>
<!-- premium account -->
<string id="30014">Username:</string>
<string id="30015">Password:</string>
<string id="30031">Video Quality (FLV)</string>
<string id="30032">Standard Definition (SD)</string>
<string id="30033">High Definition (HD)(when available)</string>
<string id="30034">Private pages login:</string>
<string id="30035">Private pages password:</string>
<!-- Other -->
<string id="30017">Download path:</string>
<string id="30018">Download list path:</string>
<string id="30030">Favorites path:</string>
<string id="30067">Library path:</string>
<string id="30020">Highest Quality (Youtube)</string>
<string id="30021">Enable Subtitle:</string>
<string id="30022"></string>
<string id="30066"></string>
<string id="30024">Number of searches to save:</string>
<string id="30019">Filter channels by language:</string>
<string id="30025">All languages</string>
<string id="30026">Spanish</string>
<string id="30027">English</string>
<string id="30028">Italian</string>
<string id="30029">Portuguese</string>
<string id="30046">French</string>
<string id="30016">Catalán</string>
<string id="30023">Euskera</string>
<string id="30036">Gallego</string>
<string id="30037">Valenciano</string>
<string id="30038">Cache mode:</string>
<string id="30039">Auto</string>
<string id="30040">Cache all</string>
<string id="30041">Cache nothing</string>
<string id="30042">Cache path:</string>
<string id="30044">Play mode:</string>
<string id="30013"></string>
<string id="30048">Channel name</string>
<string id="30049">Channel logo</string>
<string id="30045">Video list URL / file</string>
<string id="30047">Elements per page</string>
<!-- Filtros -->
<string id="30068">Filter by servers:</string>
<string id="30069">White List:</string>
<string id="30070">Black List:</string>
<string id="30071">To add several servers use "," as separator</string>
<!-- =============================================================== -->
<!-- 30050 to 30099: Info / error messages -->
<!-- =============================================================== -->
<string id="30050">Server connection error</string> <!-- No se puede conectar con el servidor -->
<string id="30051">Website error message (http code %d)</string> <!-- El sitio web no funciona correctamente (error http %d) -->
<string id="30052">Megavideo have a watching time restriction of 72 min.</string> <!-- Megavideo tiene un límite de reproducción de 72 minutos -->
<string id="30053">for free users. The limit does not apply to users</string> <!-- Para evitar que los vídeos se corten pasado ese tiempo -->
<string id="30054">logged in to a premium account.</string> <!-- necesitas una cuenta Premium -->
<string id="30055">Video not available</string> <!-- Vídeo no disponible -->
<string id="30056">There are no videos available on the web page</string> <!-- No se han podido localizar videos en la página del sitio web -->
<string id="30057">The video has been removed from %s</string> <!-- El vídeo ya no está en %s -->
<string id="30058">Try another server or channel</string> <!-- Prueba en otro servidor o en otro canal -->
<string id="30059">Website error</string> <!-- Error en el sitio web -->
<string id="30060">Loading canceled due to a website error</string> <!-- No se puede acceder por un error en el sitio web -->
<string id="30061">Quality not available or video removed</string> <!-- La calidad elegida no esta disponible o el video ha sido borrado -->
<string id="30062">Try another quality</string> <!-- Prueba a reproducir en otra calidad -->
<string id="30063">This channel has been downloaded and updated!</string>
<string id="30064">¡Channel list has been updated!</string>
<string id="30065">Unsopported Server</string>
<!-- =============================================================== -->
<!-- 30100 to 30149: Generic channels (Search, downloads, etc.) -->
<!-- =============================================================== -->
<string id="30100">Configuration</string> <!-- Configuración -->
<string id="30101">Downloads</string> <!-- Descargas -->
<string id="30102">Favorites</string> <!-- Favoritos -->
<string id="30103">Global search</string> <!-- Buscador -->
<string id="30104">Help</string> <!-- Ayuda -->
<string id="30105">Removed from favorites</string> <!-- Se ha quitado de favoritos -->
<string id="30106">Removed from download list</string> <!-- Se ha quitado de la lista de descargas -->
<string id="30107">Moved back to download list</string> <!-- Ha pasado de nuevo a la lista de descargas -->
<string id="30108">added to favorites</string> <!-- se ha añadido a favoritos -->
<string id="30109">added to download list</string> <!-- se ha añadido a la lista de descargas -->
<string id="30110">Search trailer for</string>
<string id="30111">Retry trailer search for</string><!-- Reintentar búsqueda de trailer para -->
<string id="30112">Enter title to search</string> <!-- Introduce el Titulo a buscar -->
<string id="30113">Modify actual title to refine the search</string> <!-- Modifica el titulo para refinar la búsqueda -->
<string id="30114">Trailer not found</string> <!-- Trailer no encontrado -->
<string id="30115">Trailer for %s</string> <!-- El Trailer para %s -->
<string id="30116">cannot be found.</string> <!-- no se ha podido localizar. -->
<string id="30117">Do you want to refine the search using the keyboard?</string> <!-- ¿Quieres refinar la búsqueda con el teclado? -->
<string id="30135">added to the library</string>
<string id="30130">Recent</string>
<string id="30118">Channels</string>
<string id="30119">Choose a Category</string>
<string id="30120">Choose a Language</string>
<string id="30121">All</string>
<string id="30122">Movies</string>
<string id="30123">TV Shows</string>
<string id="30124">Anime</string>
<string id="30125">Documentaries</string>
<string id="30136">Original version</string>
<string id="30126">Adult</string>
<string id="30137">Direct</string>
<string id="30127">Latin</string>
<string id="30128">Search Trailers</string>
<string id="30129">Adult</string>
<string id="30131">Library</string>
<string id="30132">Temáticos</string>
<string id="30133">Internet</string>
<string id="30134">Los nuevos</string>
<!-- =============================================================== -->
<!-- 30150 to 30199: Action menu / contextual menu -->
<!-- =============================================================== -->
<string id="30150">Watch in high quality</string> <!-- Ver en calidad alta -->
<string id="30151">Watch the video</string> <!-- Ver en calidad normal -->
<string id="30152">Watch in low quality</string> <!-- Ver en calidad baja -->
<string id="30153">Download</string> <!-- Descargar -->
<string id="30154">Remove from favorites</string> <!-- Quitar de favoritos -->
<string id="30155">Add to favorites</string> <!-- Añadir a favoritos -->
<string id="30156">Remove from download list</string> <!-- Quitar de lista de descargas -->
<string id="30157">Add to download list</string><!-- Añadir a lista de descargas -->
<string id="30158"></string> <!-- Enviar a JDownloader -->
<string id="30159">Remove from download list forever</string> <!-- Borrar descarga definitivamente -->
<string id="30160">Move to download list again</string> <!-- Pasar de nuevo a lista de descargas -->
<string id="30161">Add to library</string> <!-- Añadir a Videoteca -->
<string id="30162">Search for trailer</string> <!-- Buscar Trailer -->
<string id="30163">Choose an option</string> <!-- Elige una opción -->
<string id="30164">Delete this file</string>
<!-- =============================================================== -->
<!-- 30100 to 30999: Individual channels -->
<!-- =============================================================== -->
<!-- Context menu strings -->
<string id="30300">Delete saved search</string>
<string id="30301">Add channel live to favorites</string>
<string id="30302">Remove from favorites channel live</string>
<string id="30303">Rename title channel live</string>
<!-- Megalive menu strings -->
<string id="30401">channels wall</string>
<string id="30402">Categories</string>
<string id="30403">Favorites channels </string>
<string id="30404">Play channel Live by ID</string>
<string id="30405">Input channel ID code</string>
<!-- Justin.tv Category menu strings -->
<string id="30406">Add to Jtv Favorites</string>
<string id="30407">Remove from Jtv Favorites</string>
<string id="30408"> (archives)</string>
<string id="30409">Video channels archives</string>
<string id="30410">Watch channels live</string>
<string id="30411">The channel does not exist or is offline</string>
<string id="30412">The channel no have archived videos</string>
<string id="30413">Archived Videos</string>
<string id="30414">Channels Live</string>
<string id="30415">Enter Channel Name</string>
<string id="30416">Favorites</string>
<string id="30417">Search</string>
<string id="30418">Justin tv Login</string>
<string id="30419">All Languages</string>
<string id="30420">Filter by Language(s)</string>
<string id="30421">All</string>
<string id="30422"> Enter Justin tv Login</string>
<string id="30423">The channel [%s] is offline in this moment</string>
<string id="30424">Justin.tv Password</string>
<!-- =============================================================== -->
<!-- Subtitulos -->
<!-- =============================================================== -->
<string id="30430">Subtitles</string>
<string id="30431">Choice Subtitle source :</string>
<string id="30432">Folder</string>
<string id="30433">File</string>
<string id="30434">Keyboard</string>
<string id="30435">Subtitles Directory</string>
<string id="30436">Subtitle file</string>
<string id="30437">taping the Addres</string>
<!-- =============================================================== -->
<!-- Setting Category strings -->
<!-- =============================================================== -->
<string id="30500">Login</string>
<string id="30501">Path</string>
<string id="30502">Other</string>
<string id="30503">Filters</string>
<!-- LetMeWatchThis -->
<string id="40001">Movies - Just added</string>
<string id="40002">TV Shows - Just added</string>
<string id="40003">!Next page</string>
<!-- TVShack strings -->
<string id="30900">TVShack</string>
<string id="30901">Series TV (VO)</string>
<string id="30902">Películas (VO)</string>
<string id="30903">Documentales (VO)</string>
<string id="30904">Anime (VO)</string>
<string id="30905">Música</string>
<string id="30906">Busqueda Global en TVShack</string>
<string id="30907">No se produjeron resultados de búsqueda</string>
<string id="30908">Serie - %s (%s episodios)</string>
<string id="30909">Serie - </string>
<string id="30910">Cine - %s (%s)</string>
<string id="30911">"Música - "</string>
<string id="30912">Leyendo %s...</string>
<string id="30913">No se encontró nada que listar</string>
<string id="30914">episodio</string>
<string id="30915">episodios</string>
<string id="30916">canción</string>
<string id="30917">canciones</string>
<string id="30918"> (Nuevo)</string>
<string id="30919"> (Nuevos contenidos)</string>
<string id="30920">AÑADIR TODOS LOS EPISODIOS A LA VIDEOTECA</string>
<!-- =============================================================== -->
<!-- Configuracion RSS (IAMM, XTreamer y otros) -->
<!-- =============================================================== -->
<string id="31000">Media translate activated:</string>
<string id="30140">Title</string>
<string id="30165">Press OK for change...</string>
<string id="30166">Salvar cambios</string>
<string id="30167">Salir</string>
<string id="30168">Cambios aplicados</string>
<string id="30169">Buscar</string>
<string id="30170">Actualizar canales:</string>
<string id="31100">Add key to open Shortcut</string>
</strings>

View File

@@ -1,266 +0,0 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<strings>
<!-- Available id from 30000 to 30999 -->
<!-- ======================================= -->
<!-- 30000 to 30049: Configurazione -->
<!-- ======================================= -->
<!-- Comandi -->
<string id="30000"></string>
<string id="30001">Controlla aggiornamenti:</string>
<string id="30004">Aggiornamento automatico canali:</string>
<string id="30201">Actualizar la videoteca al abrir XBMC</string>
<string id="30002">Abilita modalità adult:</string>
<string id="30003">Abilita logging di debug:</string>
<string id="30043">Forza modalità di visualizzazione:</string>
<!-- Azioni predefinite quando si seleziona un video -->
<string id="30005">Impostazioni predefinite di riproduzione:</string>
<string id="30006">Chiedi</string>
<string id="30007">Guarda in bassa qualità</string>
<string id="30008">Guarda in alta qualità</string>
<string id="30009"></string>
<!-- Visualizzazione logo dei canali -->
<string id="30010">Visualizzazione icone dei canali:</string>
<string id="30011">Poster (verticale)</string>
<string id="30012">Banner (orizzontale)</string>
<string id="30200">Square</string>
<!-- Account premium -->
<string id="30014">Nome utente:</string>
<string id="30015">Password:</string>
<string id="30031">Qualità video (FLV)</string>
<string id="30032">Definizione standard (SD)</string>
<string id="30033">Alta Definizione (HD)(quando disponibile)</string>
<string id="30034">Login pagine private:</string>
<string id="30035">Password pagine private:</string>
<!-- Altro -->
<string id="30017">Percorso download:</string>
<string id="30018">Percorso lista download:</string>
<string id="30030">Percorso preferiti:</string>
<string id="30067">Percorso di libreria:</string>
<string id="30020">Qualità migliore (Youtube)</string>
<string id="30021">Abilita sottotitoli:</string>
<string id="30022"></string>
<string id="30066"></string>
<string id="30024">Numero di ricerche da salvare:</string>
<string id="30019">Filtra canali per lingua:</string>
<string id="30025">Tutte le lingue</string>
<string id="30026">Spanish</string>
<string id="30027">English</string>
<string id="30028">Italiano</string>
<string id="30029">Portuguese</string>
<string id="30046">French</string>
<string id="30016">Catalán</string>
<string id="30023">Euskera</string>
<string id="30036">Gallego</string>
<string id="30037">Valenciano</string>
<string id="30038">Modalità cache:</string>
<string id="30039">Auto</string>
<string id="30040">Tutti i cache</string>
<string id="30041">Nessun cache</string>
<string id="30042">Percorso cache:</string>
<string id="30044">Modalità riproduzione:</string>
<string id="30013"></string>
<string id="30048">Channel name</string>
<string id="30049">Channel logo</string>
<string id="30045">Video list URL / file</string>
<string id="30047">Elements per page</string>
<!-- Filtri -->
<string id="30068">Filtro per server:</string>
<string id="30069">White List:</string>
<string id="30070">Blacklist:</string>
<string id="30071">Per mettere più server che utilizzano "," come separatore</string>
<!-- =============================================================== -->
<!-- 30050 to 30099: Info / Messaggi d' errore -->
<!-- =============================================================== -->
<string id="30050">Errore connessione server</string> <!-- No se puede conectar con el servidor -->
<string id="30051">Messaggio d'errore sito web (codice http %d)</string> <!-- El sitio web no funciona correctamente (error http %d) -->
<string id="30052">Megavideo ha un limite di 72 minuti</string> <!-- Megavideo tiene un límite de reproducción de 72 minutos -->
<string id="30053">Per utenti free. Il limite non è applicato agli utenti</string> <!-- Para evitar que los vídeos se corten pasado ese tiempo -->
<string id="30054">Necessita il login in un account premium</string> <!-- necesitas una cuenta Premium -->
<string id="30055">Video non disponibile</string> <!-- Vídeo no disponible -->
<string id="30056">Non ci sono video disponibili nella pagina web</string> <!-- No se han podido localizar videos en la página del sitio web -->
<string id="30057">Il video è stato rimosso da %s</string> <!-- El vídeo ya no está en %s -->
<string id="30058">Prova un altro server o canale</string> <!-- Prueba en otro servidor o en otro canal -->
<string id="30059">Errore sito web</string> <!-- Error en el sitio web -->
<string id="30060">Impossibile accedere a causa di un errore del sito</string> <!-- No se puede acceder por un error en el sitio web -->
<string id="30061">Qualità non disponibile o video rimosso</string> <!-- La calidad elegida no esta disponible o el video ha sido borrado -->
<string id="30062">Prova un' altra qualità</string> <!-- Prueba a reproducir en otra calidad -->
<string id="30063">Questo canale è state scaricato ed aggiornato!</string>
<string id="30064">Lista ¡Channel aggiornata!</string>
<string id="30065">Server non supportato</string>
<!-- =============================================================== -->
<!-- 30100 to 30149: Canali generici (Ricerca, downloads, etc.) -->
<!-- =============================================================== -->
<string id="30100">Configurazione</string> <!-- Configuración -->
<string id="30101">Downloads</string> <!-- Descargas -->
<string id="30102">Preferiti</string> <!-- Favoritos -->
<string id="30103">Ricerca globale</string> <!-- Buscador -->
<string id="30104">Aiuto</string> <!-- Ayuda -->
<string id="30105">Rimosso dai preferiti</string> <!-- Se ha quitado de favoritos -->
<string id="30106">Rimosso dalla lista download</string> <!-- Se ha quitado de la lista de descargas -->
<string id="30107">Spostato nella lista download</string> <!-- Ha pasado de nuevo a la lista de descargas -->
<string id="30108">Aggiunto ai preferiti</string> <!-- se ha añadido a favoritos -->
<string id="30109">Aggiunto alla lista download</string> <!-- se ha añadido a la lista de descargas -->
<string id="30110">Cerco trailer per</string>
<string id="30111">Riprova ricerca trailer</string><!-- Reintentar búsqueda de trailer para -->
<string id="30112">Inserisci titolo da cercare</string> <!-- Introduce el Titulo a buscar -->
<string id="30113">Modifica titolo attuale per affinare la ricerca</string> <!-- Modifica el titulo para refinar la búsqueda -->
<string id="30114">Trailer non trovato</string> <!-- Trailer no encontrado -->
<string id="30115">Trailer per %s</string> <!-- El Trailer para %s -->
<string id="30116">Non può essere trovato</string> <!-- no se ha podido localizar. -->
<string id="30117">Vuoi refiner la ricerca utilizzando la tastiera?</string> <!-- ¿Quieres refinar la búsqueda con el teclado? -->
<string id="30135">Aggiunto alla libreria</string>
<string id="30130">Nuovo</string>
<string id="30118">Canali</string>
<string id="30119">Scegli una categoria</string>
<string id="30120">Scegli una lingua</string>
<string id="30121">Tutto</string>
<string id="30122">Film</string>
<string id="30123">Show televisivi</string>
<string id="30124">Anime</string>
<string id="30125">Documentari</string>
<string id="30136">Versioni originali</string>
<string id="30126">Adulti</string>
<string id="30137">Direct</string>
<string id="30127">Latino</string>
<string id="30128">Cerca trailer</string>
<string id="30129">Adulto</string>
<string id="30131">Libreria</string>
<string id="30132">Tema</string>
<string id="30133">Internet</string>
<string id="30134">Nuovi</string>
<!-- =============================================================== -->
<!-- 30150 to 30199: Menù azioni / Menù contestuale -->
<!-- =============================================================== -->
<string id="30150">Guarda in alta qualità</string> <!-- Ver en calidad alta -->
<string id="30151">Guarda il video</string> <!-- Ver en calidad normal -->
<string id="30152">Guarda in bassa qualità</string> <!-- Ver en calidad baja -->
<string id="30153">Download</string> <!-- Descargar -->
<string id="30154">Rimuovi dai preferiti</string> <!-- Quitar de favoritos -->
<string id="30155">Aggiungi ai preferiti</string> <!-- Añadir a favoritos -->
<string id="30156">Rimuovi dalla lista download</string> <!-- Quitar de lista de descargas -->
<string id="30157">Aggiunto alla lista download</string><!-- Añadir a lista de descargas -->
<string id="30158"></string> <!-- Enviar a JDownloader -->
<string id="30159">Rimuovi dalla lista download definitivamente</string> <!-- Borrar descarga definitivamente -->
<string id="30160">Sposta nuovamente nella lista download</string> <!-- Pasar de nuevo a lista de descargas -->
<string id="30161">Aggiungi alla videoteca</string> <!-- Añadir a Videoteca -->
<string id="30162">Cerca trailer</string> <!-- Buscar Trailer -->
<string id="30163">Scegli un' opzione</string> <!-- Elige una opción -->
<string id="30164">Cancella questo file</string>
<!-- =============================================================== -->
<!-- 30100 to 30999: Canali individuali -->
<!-- =============================================================== -->
<!-- Stringhe menù contestuale -->
<string id="30300">Cancella ricerche salvate</string>
<string id="30301">Aggingi il canale in diretta ai preferiti</string>
<string id="30302">Rimuovi il canale in diretta ai preferiti</string>
<string id="30303">Rinomina titolo del canale in diretta</string>
<!-- Stringhe menù Megalive -->
<string id="30401">channels wall</string>
<string id="30402">Categories</string>
<string id="30403">Favorites channels </string>
<string id="30404">Play channel Live by ID</string>
<string id="30405">Input channel ID code</string>
<!-- Stringhe menù categorie Justin.tv -->
<string id="30406">Aggiungi ai preferiti Jtv</string>
<string id="30407">Rimuovi dai preferiti Jtv</string>
<string id="30408"> (Archivi)</string>
<string id="30409">Archivi canali video</string>
<string id="30410">Guarda canale in diretta</string>
<string id="30411">Il canale non esiste o è offline</string>
<string id="30412">Il canale non ha archivi video</string>
<string id="30413">Video archiviati</string>
<string id="30414">Canali in diretta</string>
<string id="30415">Inserisci nome canale</string>
<string id="30416">Preferiti</string>
<string id="30417">Ricerca</string>
<string id="30418">Login Justin tv</string>
<string id="30419">Tutte le lingue</string>
<string id="30420">Filtra per lingua(e)</string>
<string id="30421">Tutto</string>
<string id="30422">Inserisci Login Justin tv</string>
<string id="30423">Il canale [%s] è offline in questo momento</string>
<string id="30424">Password Justin.tv</string>
<!-- =============================================================== -->
<!-- Sottotitoli -->
<!-- =============================================================== -->
<string id="30430">Sottotitoli</string>
<string id="30431">Scelta fonte sottotitoli :</string>
<string id="30432">Cartella</string>
<string id="30433">File</string>
<string id="30434">Tastiera</string>
<string id="30435">Directory sottotitoli</string>
<string id="30436">File sottotitoli</string>
<string id="30437">Premi l' indirizzo</string>
<!-- =============================================================== -->
<!-- Stringhe categoria impostazioni -->
<!-- =============================================================== -->
<string id="30500">Login</string>
<string id="30501">Percorso</string>
<string id="30502">Altro</string>
<!-- Lasciatemi guardare questo -->
<string id="40001">Film - Appena aggiunti</string>
<string id="40002">Show televisivi - Appena aggiunti</string>
<string id="40003">Pagina successiva</string>
<!-- Stringhe TVShack -->
<string id="30900">TVShack</string>
<string id="30901">Serie TV (VO)</string>
<string id="30902">Film (VO)</string>
<string id="30903">Documentari (VO)</string>
<string id="30904">Anime (VO)</string>
<string id="30905">Musica</string>
<string id="30906">Ricerca globale in TVShack</string>
<string id="30907">Non sono stati trovati risultati per la ricerca</string>
<string id="30908">Serie - %s (%s episodios)</string>
<string id="30909">Serie - </string>
<string id="30910">Cinema - %s (%s)</string>
<string id="30911">"Musica - "</string>
<string id="30912">Lettura %s...</string>
<string id="30913">Non è stato trovato nella lista</string>
<string id="30914">Episodio</string>
<string id="30915">Episodi</string>
<string id="30916">Canzone</string>
<string id="30917">Canzoni</string>
<string id="30918">(Nuovo)</string>
<string id="30919">(Nuovi contenuti)</string>
<string id="30920">Aggiungi tutti gli episodi alla libreria</string>
<!-- =============================================================== -->
<!-- Configurazione RSS (IAMM, XTreamer e altri) -->
<!-- =============================================================== -->
<string id="31000">Traduttore attivato:</string>
<string id="30140">Titolo</string>
<string id="30165">Premi OK per modificare…</string>
<string id="30166">Salva le modifiche</string>
<string id="30167">Lascia</string>
<string id="30168">Modifiche applicate</string>
<string id="30169">Cerca</string>
<string id="30170">Aggiornamento canali:</string>
</strings>

View File

@@ -1,266 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<strings>
<!-- Los id disponibles son de 30000 a 30999 -->
<!-- ======================================= -->
<!-- De 30000 a 30049: Configuración -->
<!-- ======================================= -->
<!-- Comunes -->
<string id="30000"></string>
<string id="30001">Comprobar actualizaciones:</string>
<string id="30004">Actualizar automáticamente canales:</string>
<string id="30201">Actualizar la videoteca al abrir XBMC</string>
<string id="30002">Mostrar canales para adultos</string>
<string id="30003">Generar log detallado:</string>
<string id="30043">Forzar el modo de vista:</string>
<!-- Acción por defecto cuando eliges un video -->
<string id="30005">Accion al seleccionar vídeo:</string>
<string id="30006">Preguntar</string>
<string id="30007">Ver en calidad baja</string>
<string id="30008">Ver en calidad alta</string>
<string id="30009"></string>
<!-- Tipos de logos para los canales -->
<string id="30010">Logos de canales:</string>
<string id="30011">Poster (vertical)</string>
<string id="30012">Banner (horizontal)</string>
<string id="30200">Cuadrado</string>
<!-- Cuenta premium -->
<string id="30014">Usuario:</string>
<string id="30015">Password:</string>
<string id="30031">Calidad de videos (FLV)</string>
<string id="30032">Calidad Normal (SD)</string>
<string id="30033">Calidad Alta (HD)(si existe)</string>
<string id="30034">Usuario páginas privadas:</string>
<string id="30035">Password páginas privadas:</string>
<!-- Otras -->
<string id="30017">Directorio de descargas:</string>
<string id="30018">Directorio de lista descargas:</string>
<string id="30030">Directorio de favoritos:</string>
<string id="30067">Directorio de la videoteca:</string>
<string id="30020">Elegir Calidad mas alta (Youtube)</string>
<string id="30021">Activar Subtitulo:</string>
<string id="30022"></string>
<string id="30066"></string>
<string id="30024">Numero de busquedas a salvar:</string>
<string id="30019">Filtrar canales por idioma:</string>
<string id="30025">Cualquier idioma</string>
<string id="30026">Español</string>
<string id="30027">Inglés</string>
<string id="30028">Italiano</string>
<string id="30029">Portugués</string>
<string id="30046">Francés</string>
<string id="30016">Catalán</string>
<string id="30023">Euskera</string>
<string id="30036">Gallego</string>
<string id="30037">Valenciano</string>
<string id="30038">Modo de cache:</string>
<string id="30039">Automático</string>
<string id="30040">Cachear todo</string>
<string id="30041">No cachear nada</string>
<string id="30042">Directorio de cache:</string>
<string id="30044">Modo de reproducción:</string>
<string id="30013"></string>
<string id="30048">Nombre del canal</string>
<string id="30049">Logo del canal</string>
<string id="30045">URL/fichero con los vídeos</string>
<string id="30047">Elementos por página</string>
<!-- Filtros -->
<string id="30068">Filtrar por servidores:</string>
<string id="30069">Lista Blanca:</string>
<string id="30070">Lista Negra:</string>
<string id="30071">Para poner varios servidores utiliza "," como separador</string>
<!-- =============================================================== -->
<!-- De 30050 a 30099: Mensajes informativos - error -->
<!-- =============================================================== -->
<string id="30050">No se puede conectar con el servidor</string>
<string id="30051">El sitio web no funciona correctamente (error http %d)</string>
<string id="30052">Megavideo tiene un límite de reproducción de 72 minutos</string>
<string id="30053">Para evitar que los vídeos se corten pasado ese tiempo</string>
<string id="30054">necesitas una cuenta Premium</string>
<string id="30055">Vídeo no disponible</string>
<string id="30056">No se han podido localizar videos en la página del sitio web</string>
<string id="30057">No se puede acceder al vídeo en %s</string>
<string id="30058">Prueba en otro servidor o en otro canal</string>
<string id="30059">Error en el sitio web</string>
<string id="30060">No se puede acceder por un error en el sitio web</string>
<string id="30061">La calidad elegida no esta disponible o el video ha sido borrado</string>
<string id="30062">Prueba a reproducir en otra calidad</string>
<string id="30063">¡Canal descargado y actualizado!</string>
<string id="30064">¡Lista de canales actualizada!</string>
<string id="30065">Servidor no soportado</string>
<!-- =============================================================== -->
<!-- De 30100 a 30149: Canales genéricos (buscador, descargas, etc.) -->
<!-- =============================================================== -->
<string id="30100">Configuración</string>
<string id="30101">Descargas</string>
<string id="30102">Favoritos</string>
<string id="30103">Buscador</string>
<string id="30104">Ayuda</string>
<string id="30105">Se ha quitado de favoritos</string>
<string id="30106">Se ha quitado de la lista de descargas</string>
<string id="30107">Ha pasado de nuevo a la lista de descargas</string>
<string id="30108">se ha añadido a favoritos</string>
<string id="30109">se ha añadido a la lista de descargas</string>
<string id="30110">Buscar trailer para</string>
<string id="30111">Reintentar búsqueda de trailer para</string>
<string id="30112">Introduce el título a buscar</string>
<string id="30113">Modifica el titulo actual para refinar la búsqueda</string>
<string id="30114">Trailer no encontrado</string>
<string id="30115">El Trailer para %s</string>
<string id="30116">no se ha podido localizar.</string>
<string id="30117">¿Quieres refinar la búsqueda con el teclado?</string>
<string id="30135">se ha añadido a la videoteca</string>
<string id="30130">Novedades</string>
<string id="30118">Canales</string>
<string id="30119">Seleccione una Categoría</string>
<string id="30120">Seleccione un Idioma</string>
<string id="30121">Todos</string>
<string id="30122">Películas</string>
<string id="30123">Series</string>
<string id="30124">Anime</string>
<string id="30125">Documentales</string>
<string id="30126">Adultos</string>
<string id="30136">Versión original</string>
<string id="30137">Directos</string>
<string id="30127">Latino</string>
<string id="30128">Buscador de Trailers</string>
<string id="30129">Adultos</string>
<string id="30131">Videoteca</string>
<string id="30132">Temáticos</string>
<string id="30133">Internet</string>
<string id="30134">Los nuevos</string>
<!-- =============================================================== -->
<!-- De 30150 a 30199: Menú acción / contextual -->
<!-- =============================================================== -->
<string id="30150">Ver en calidad alta</string>
<string id="30151">Ver el vídeo</string>
<string id="30152">Ver en calidad baja</string>
<string id="30153">Descargar</string>
<string id="30154">Quitar de favoritos</string>
<string id="30155">Añadir a favoritos</string>
<string id="30156">Quitar de lista de descargas</string>
<string id="30157">Añadir a lista de descargas</string>
<string id="30158"></string>
<string id="30159">Borrar descarga definitivamente</string>
<string id="30160">Pasar de nuevo a lista de descargas</string>
<string id="30161">Añadir a videoteca</string>
<string id="30162">Buscar trailer</string>
<string id="30163">Elige una opción</string>
<string id="30164">Borrar este fichero</string>
<!-- =============================================================== -->
<!-- De 30200 a 30999: Canales individuales -->
<!-- =============================================================== -->
<!-- Context menu strings -->
<string id="30300">Eliminar esta busqueda</string>
<string id="30301">Guardar este canal en favoritos</string>
<string id="30302">Eliminar este canal de favoritos</string>
<string id="30303">Renombrar el título de este canal</string>
<!-- Megalive menu strings -->
<string id="30401">Muralla de canales</string>
<string id="30402">Categorías</string>
<string id="30403">Canales Favoritos</string>
<string id="30404">Ver Canal por Codigo(ID)</string>
<string id="30405">Introduce el còdigo del canal</string>
<!-- Justin.tv Category menu strings -->
<string id="30406">Añadir a Jtv favoritos</string>
<string id="30407">Remover de Jtv Favoritos</string>
<string id="30408"> (archivos)</string>
<string id="30409">listar videos archivados</string>
<string id="30410">ver el canal en vivo</string>
<string id="30411">El canal no existe o no esta en linea</string>
<string id="30412">El canal no tiene videos archivados</string>
<string id="30413">Archivo de videos</string>
<string id="30414">Canales en Vivo</string>
<string id="30415">Introducir Nombre/ID del Canal</string>
<string id="30416">Favoritos</string>
<string id="30417">Buscar</string>
<string id="30418">Usuario Justin.tv</string>
<string id="30419">Todos los Idiomas</string>
<string id="30420">Filtro de Idioma(s)</string>
<string id="30421">Todos</string>
<string id="30422">Ingrese el login de Justin TV</string>
<string id="30423">El canal [%s] esta desconectado en este momento</string>
<string id="30424">Password Justin.tv</string>
<!-- =============================================================== -->
<!-- Subtitulos -->
<!-- =============================================================== -->
<string id="30431">Elija la fuente de los subtitulos :</string>
<string id="30432">Folder</string>
<string id="30433">Archivo</string>
<string id="30434">Teclado</string>
<string id="30435">Directorio de subtitulos</string>
<string id="30436">Subtitulo a cargar</string>
<string id="30437">introducir direccion</string>
<!-- LetMeWatchThis -->
<string id="40001">Películas - Novedades</string>
<string id="40002">Series - Novedades</string>
<string id="40003">!Página siguiente</string>
<!-- =============================================================== -->
<!-- Category strings -->
<!-- =============================================================== -->
<string id="30500">Cuentas</string>
<string id="30501">Rutas</string>
<string id="30502">Otros</string>
<string id="30503">Filtros</string>
<!-- TVShack strings -->
<string id="30900">TVShack</string>
<string id="30901">Series TV (VO)</string>
<string id="30902">Películas (VO)</string>
<string id="30903">Documentales (VO)</string>
<string id="30904">Anime (VO)</string>
<string id="30905">Música</string>
<string id="30906">Busqueda Global en TVShack</string>
<string id="30907">No se produjeron resultados de búsqueda</string>
<string id="30908">Serie - %s (%s episodios)</string>
<string id="30909">Serie - </string>
<string id="30910">Cine - %s (%s)</string>
<string id="30911">"Música - "</string>
<string id="30912">Leyendo %s...</string>
<string id="30913">No se encontró nada que listar</string>
<string id="30914">episodio</string>
<string id="30915">episodios</string>
<string id="30916">canción</string>
<string id="30917">canciones</string>
<string id="30918"> (Nuevo)</string>
<string id="30919"> (Nuevos contenidos)</string>
<string id="30920">AÑADIR TODOS LOS EPISODIOS A LA VIDEOTECA</string>
<!-- =============================================================== -->
<!-- Configuracion RSS (IAMM, XTreamer y otros) -->
<!-- =============================================================== -->
<string id="31000">Media translate activado:</string>
<string id="30140">Título</string>
<string id="30165">Pulse OK para cambiar...</string>
<string id="30166">Salvar cambios</string>
<string id="30167">Salir</string>
<string id="30168">Cambios aplicados</string>
<string id="30169">Buscar</string>
<string id="30170">Actualizar canales:</string>
</strings>

View File

@@ -1,266 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<strings>
<!-- Los id disponibles son de 30000 a 30999 -->
<!-- ======================================= -->
<!-- De 30000 a 30049: Configuración -->
<!-- ======================================= -->
<!-- Comunes -->
<string id="30000"></string>
<string id="30001">Comprobar actualizaciones:</string>
<string id="30004">Actualizar automáticamente canales:</string>
<string id="30201">Actualizar la videoteca al abrir XBMC</string>
<string id="30002">Mostrar canales para adultos</string>
<string id="30003">Generar log detallado:</string>
<string id="30043">Forzar el modo de vista:</string>
<!-- Acción por defecto cuando eliges un video -->
<string id="30005">Accion al seleccionar vídeo:</string>
<string id="30006">Preguntar</string>
<string id="30007">Ver en calidad baja</string>
<string id="30008">Ver en calidad alta</string>
<string id="30009"></string>
<!-- Tipos de logos para los canales -->
<string id="30010">Logos de canales:</string>
<string id="30011">Poster (vertical)</string>
<string id="30012">Banner (horizontal)</string>
<string id="30200">Cuadrado</string>
<!-- Cuenta premium -->
<string id="30014">Usuario:</string>
<string id="30015">Password:</string>
<string id="30031">Calidad de videos (FLV)</string>
<string id="30032">Calidad Normal (SD)</string>
<string id="30033">Calidad Alta (HD)(si existe)</string>
<string id="30034">Usuario páginas privadas:</string>
<string id="30035">Password páginas privadas:</string>
<!-- Otras -->
<string id="30017">Directorio de descargas:</string>
<string id="30018">Directorio de lista descargas:</string>
<string id="30030">Directorio de favoritos:</string>
<string id="30067">Directorio de la videoteca:</string>
<string id="30020">Elegir Calidad mas alta (Youtube)</string>
<string id="30021">Activar Subtitulo:</string>
<string id="30022"></string>
<string id="30066"></string>
<string id="30024">Numero de busquedas a salvar:</string>
<string id="30019">Filtrar canales por idioma:</string>
<string id="30025">Cualquier idioma</string>
<string id="30026">Español</string>
<string id="30027">Inglés</string>
<string id="30028">Italiano</string>
<string id="30029">Portugués</string>
<string id="30046">Francés</string>
<string id="30016">Catalán</string>
<string id="30023">Euskera</string>
<string id="30036">Gallego</string>
<string id="30037">Valenciano</string>
<string id="30038">Modo de cache:</string>
<string id="30039">Automático</string>
<string id="30040">Cachear todo</string>
<string id="30041">No cachear nada</string>
<string id="30042">Directorio de cache:</string>
<string id="30044">Modo de reproducción:</string>
<string id="30013"></string>
<string id="30048">Nombre del canal</string>
<string id="30049">Logo del canal</string>
<string id="30045">URL/fichero con los vídeos</string>
<string id="30047">Elementos por página</string>
<!-- Filtros -->
<string id="30068">Filtrar por servidores:</string>
<string id="30069">Lista Blanca:</string>
<string id="30070">Lista Negra:</string>
<string id="30071">Para poner varios servidores utiliza "," como separador</string>
<!-- =============================================================== -->
<!-- De 30050 a 30099: Mensajes informativos - error -->
<!-- =============================================================== -->
<string id="30050">No se puede conectar con el servidor</string>
<string id="30051">El sitio web no funciona correctamente (error http %d)</string>
<string id="30052">Megavideo tiene un límite de reproducción de 72 minutos</string>
<string id="30053">Para evitar que los vídeos se corten pasado ese tiempo</string>
<string id="30054">necesitas una cuenta Premium</string>
<string id="30055">Vídeo no disponible</string>
<string id="30056">No se han podido localizar videos en la página del sitio web</string>
<string id="30057">No se puede acceder al vídeo en %s</string>
<string id="30058">Prueba en otro servidor o en otro canal</string>
<string id="30059">Error en el sitio web</string>
<string id="30060">No se puede acceder por un error en el sitio web</string>
<string id="30061">La calidad elegida no esta disponible o el video ha sido borrado</string>
<string id="30062">Prueba a reproducir en otra calidad</string>
<string id="30063">¡Canal descargado y actualizado!</string>
<string id="30064">¡Lista de canales actualizada!</string>
<string id="30065">Servidor no soportado</string>
<!-- =============================================================== -->
<!-- De 30100 a 30149: Canales genéricos (buscador, descargas, etc.) -->
<!-- =============================================================== -->
<string id="30100">Configuración</string>
<string id="30101">Descargas</string>
<string id="30102">Favoritos</string>
<string id="30103">Buscador</string>
<string id="30104">Ayuda</string>
<string id="30105">Se ha quitado de favoritos</string>
<string id="30106">Se ha quitado de la lista de descargas</string>
<string id="30107">Ha pasado de nuevo a la lista de descargas</string>
<string id="30108">se ha añadido a favoritos</string>
<string id="30109">se ha añadido a la lista de descargas</string>
<string id="30110">Buscar trailer para</string>
<string id="30111">Reintentar búsqueda de trailer para</string>
<string id="30112">Introduce el título a buscar</string>
<string id="30113">Modifica el titulo actual para refinar la búsqueda</string>
<string id="30114">Trailer no encontrado</string>
<string id="30115">El Trailer para %s</string>
<string id="30116">no se ha podido localizar.</string>
<string id="30117">¿Quieres refinar la búsqueda con el teclado?</string>
<string id="30135">se ha añadido a la videoteca</string>
<string id="30130">Novedades</string>
<string id="30118">Canales</string>
<string id="30119">Seleccione una Categoría</string>
<string id="30120">Seleccione un Idioma</string>
<string id="30121">Todos</string>
<string id="30122">Películas</string>
<string id="30123">Series</string>
<string id="30124">Anime</string>
<string id="30125">Documentales</string>
<string id="30126">Adultos</string>
<string id="30136">Versión original</string>
<string id="30137">Directos</string>
<string id="30127">Latino</string>
<string id="30128">Buscador de Trailers</string>
<string id="30129">Adultos</string>
<string id="30131">Videoteca</string>
<string id="30132">Temáticos</string>
<string id="30133">Internet</string>
<string id="30134">Los nuevos</string>
<!-- =============================================================== -->
<!-- De 30150 a 30199: Menú acción / contextual -->
<!-- =============================================================== -->
<string id="30150">Ver en calidad alta</string>
<string id="30151">Ver el vídeo</string>
<string id="30152">Ver en calidad baja</string>
<string id="30153">Descargar</string>
<string id="30154">Quitar de favoritos</string>
<string id="30155">Añadir a favoritos</string>
<string id="30156">Quitar de lista de descargas</string>
<string id="30157">Añadir a lista de descargas</string>
<string id="30158"></string>
<string id="30159">Borrar descarga definitivamente</string>
<string id="30160">Pasar de nuevo a lista de descargas</string>
<string id="30161">Añadir a videoteca</string>
<string id="30162">Buscar trailer</string>
<string id="30163">Elige una opción</string>
<string id="30164">Borrar este fichero</string>
<!-- =============================================================== -->
<!-- De 30200 a 30999: Canales individuales -->
<!-- =============================================================== -->
<!-- Context menu strings -->
<string id="30300">Eliminar esta busqueda</string>
<string id="30301">Guardar este canal en favoritos</string>
<string id="30302">Eliminar este canal de favoritos</string>
<string id="30303">Renombrar el título de este canal</string>
<!-- Megalive menu strings -->
<string id="30401">Muralla de canales</string>
<string id="30402">Categorías</string>
<string id="30403">Canales Favoritos</string>
<string id="30404">Ver Canal por Codigo(ID)</string>
<string id="30405">Introduce el còdigo del canal</string>
<!-- Justin.tv Category menu strings -->
<string id="30406">Añadir a Jtv favoritos</string>
<string id="30407">Remover de Jtv Favoritos</string>
<string id="30408"> (archivos)</string>
<string id="30409">listar videos archivados</string>
<string id="30410">ver el canal en vivo</string>
<string id="30411">El canal no existe o no esta en linea</string>
<string id="30412">El canal no tiene videos archivados</string>
<string id="30413">Archivo de videos</string>
<string id="30414">Canales en Vivo</string>
<string id="30415">Introducir Nombre/ID del Canal</string>
<string id="30416">Favoritos</string>
<string id="30417">Buscar</string>
<string id="30418">Usuario Justin.tv</string>
<string id="30419">Todos los Idiomas</string>
<string id="30420">Filtro de Idioma(s)</string>
<string id="30421">Todos</string>
<string id="30422">Ingrese el login de Justin TV</string>
<string id="30423">El canal [%s] esta desconectado en este momento</string>
<string id="30424">Password Justin.tv</string>
<!-- =============================================================== -->
<!-- Subtitulos -->
<!-- =============================================================== -->
<string id="30431">Elija la fuente de los subtitulos :</string>
<string id="30432">Folder</string>
<string id="30433">Archivo</string>
<string id="30434">Teclado</string>
<string id="30435">Directorio de subtitulos</string>
<string id="30436">Subtitulo a cargar</string>
<string id="30437">introducir direccion</string>
<!-- LetMeWatchThis -->
<string id="40001">Películas - Novedades</string>
<string id="40002">Series - Novedades</string>
<string id="40003">!Página siguiente</string>
<!-- =============================================================== -->
<!-- Category strings -->
<!-- =============================================================== -->
<string id="30500">Cuentas</string>
<string id="30501">Rutas</string>
<string id="30502">Otros</string>
<string id="30503">Filtros</string>
<!-- TVShack strings -->
<string id="30900">TVShack</string>
<string id="30901">Series TV (VO)</string>
<string id="30902">Películas (VO)</string>
<string id="30903">Documentales (VO)</string>
<string id="30904">Anime (VO)</string>
<string id="30905">Música</string>
<string id="30906">Busqueda Global en TVShack</string>
<string id="30907">No se produjeron resultados de búsqueda</string>
<string id="30908">Serie - %s (%s episodios)</string>
<string id="30909">Serie - </string>
<string id="30910">Cine - %s (%s)</string>
<string id="30911">"Música - "</string>
<string id="30912">Leyendo %s...</string>
<string id="30913">No se encontró nada que listar</string>
<string id="30914">episodio</string>
<string id="30915">episodios</string>
<string id="30916">canción</string>
<string id="30917">canciones</string>
<string id="30918"> (Nuevo)</string>
<string id="30919"> (Nuevos contenidos)</string>
<string id="30920">AÑADIR TODOS LOS EPISODIOS A LA VIDEOTECA</string>
<!-- =============================================================== -->
<!-- Configuracion RSS (IAMM, XTreamer y otros) -->
<!-- =============================================================== -->
<string id="31000">Media translate activado:</string>
<string id="30140">Título</string>
<string id="30165">Pulse OK para cambiar...</string>
<string id="30166">Salvar cambios</string>
<string id="30167">Salir</string>
<string id="30168">Cambios aplicados</string>
<string id="30169">Buscar</string>
<string id="30170">Actualizar canales:</string>
<string id="31100">Añadir tecla para el menu Shortcut</string></strings>

View File

@@ -0,0 +1,268 @@
# Kodi Media Center language file
# strings 30000 thru 30999 reserved for plugins and plugin settings
#
msgid ""
msgstr ""
"Project-Id-Version: KODI Main\n"
"Report-Msgid-Bugs-To: http://trac.kodi.tv/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Kodi Translation Team\n"
"Language-Team: English (United Kingdom) (http://www.transifex.com/projects/p/kodi-main/language/en_GB/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: en_GB\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
# empty string with id 30000
msgctxt "#30001"
msgid "Check for updates:"
msgstr ""
msgctxt "#30002"
msgid "Enable adult mode:"
msgstr ""
msgctxt "#30003"
msgid "Enable debug logging:"
msgstr ""
msgctxt "#30043"
msgid "Force view mode:"
msgstr ""
msgctxt "#30004"
msgid "Automatic update channels:"
msgstr ""
msgctxt "#30005"
msgid "Default play setting:"
msgstr ""
msgctxt "#30006"
msgid "Ask"
msgstr ""
msgctxt "#30007"
msgid "Watch in low quality"
msgstr ""
msgctxt "#30008"
msgid "Watch in high quality"
msgstr ""
# empty string with id 30009
msgctxt "#30010"
msgid "Channel icons view:"
msgstr ""
msgctxt "#30011"
msgid "Poster (vertical)"
msgstr ""
msgctxt "#30012"
msgid "Banner (horizontal)"
msgstr ""
msgctxt "#30200"
msgid "Square"
msgstr ""
# empty string with id 30013
msgctxt "#30014"
msgid "Username:"
msgstr ""
msgctxt "#30015"
msgid "Password:"
msgstr ""
# empty string with id 30016
msgctxt "#30017"
msgid "Download path:"
msgstr ""
msgctxt "#30018"
msgid "Download list path:"
msgstr ""
msgctxt "#30067"
msgid "Videolibrary path:"
msgstr ""
msgctxt "#30019"
msgid "Filter channels by language:"
msgstr ""
msgctxt "#30044"
msgid "Play mode:"
msgstr ""
msgctxt "#30068"
msgid "Filter by servers:"
msgstr ""
msgctxt "#30050"
msgid "Server connection error"
msgstr ""
msgctxt "#30051"
msgid "Website error message (http code %d)"
msgstr ""
msgctxt "#30055"
msgid "Video not available"
msgstr ""
msgctxt "#30057"
msgid "The video has been removed from %s"
msgstr ""
msgctxt "#30058"
msgid "Try another server or channel"
msgstr ""
msgctxt "#30065"
msgid "Unsopported Server"
msgstr ""
msgctxt "#30100"
msgid "Configuration"
msgstr ""
msgctxt "#30101"
msgid "Downloads"
msgstr ""
msgctxt "#30102"
msgid "Favorites"
msgstr ""
msgctxt "#30103"
msgid "Global search"
msgstr ""
msgctxt "#30104"
msgid "Help"
msgstr ""
msgctxt "#30105"
msgid "Removed from favorites"
msgstr ""
msgctxt "#30108"
msgid "added to favorites"
msgstr ""
msgctxt "#30109"
msgid "added to download list"
msgstr ""
msgctxt "#30112"
msgid "Enter title to search"
msgstr ""
msgctxt "#30135"
msgid "added to the videolibrary"
msgstr ""
msgctxt "#30130"
msgid "Recent"
msgstr ""
msgctxt "#30118"
msgid "Channels"
msgstr ""
msgctxt "#30119"
msgid "Choose a Category"
msgstr ""
msgctxt "#30121"
msgid "All"
msgstr ""
msgctxt "#30122"
msgid "Movies"
msgstr ""
msgctxt "#30123"
msgid "TV Shows"
msgstr ""
msgctxt "#30124"
msgid "Anime"
msgstr ""
msgctxt "#30125"
msgid "Documentaries"
msgstr ""
msgctxt "#30136"
msgid "Original version"
msgstr ""
msgctxt "#30126"
msgid "Adult"
msgstr ""
msgctxt "#30127"
msgid "Latin"
msgstr ""
msgctxt "#30137"
msgid "Direct"
msgstr ""
msgctxt "#30131"
msgid "Videolibrary"
msgstr ""
msgctxt "#30151"
msgid "Watch the video"
msgstr ""
msgctxt "#30153"
msgid "Download"
msgstr ""
msgctxt "#30154"
msgid "Remove from favorites"
msgstr ""
msgctxt "#30155"
msgid "Add to favorites"
msgstr ""
msgctxt "#30161"
msgid "Add to videolibrary"
msgstr ""
msgctxt "#30162"
msgid "Search for trailer"
msgstr ""
msgctxt "#30163"
msgid "Choose an option"
msgstr ""
msgctxt "#30164"
msgid "Delete this file"
msgstr ""
msgctxt "#30501"
msgid "Paths"
msgstr ""
msgctxt "#30998"
msgid "Shortcut"
msgstr ""
msgctxt "#30999"
msgid "Add key to open Shortcut"
msgstr ""

View File

@@ -0,0 +1,268 @@
# Kodi Media Center language file
# strings 30000 thru 30999 reserved for plugins and plugin settings
#
msgid ""
msgstr ""
"Project-Id-Version: KODI Main\n"
"Report-Msgid-Bugs-To: http://trac.kodi.tv/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Kodi Translation Team\n"
"Language-Team: Spanish (Spanish) (http://www.transifex.com/projects/p/kodi-main/language/en_GB/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es_ES\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
# empty string with id 30000
msgctxt "#30001"
msgid "Check for updates:"
msgstr "Comprobar actualizaciones:"
msgctxt "#30002"
msgid "Enable adult mode:"
msgstr "Mostrar canales para adultos"
msgctxt "#30003"
msgid "Enable debug logging:"
msgstr "Generar log detallado:"
msgctxt "#30043"
msgid "Force view mode:"
msgstr "Forzar el modo de vista:"
msgctxt "#30004"
msgid "Automatic update channels:"
msgstr "Actualizar automáticamente canales:"
msgctxt "#30005"
msgid "Default play setting:"
msgstr "Accion al seleccionar vídeo:"
msgctxt "#30006"
msgid "Ask"
msgstr "Preguntar"
msgctxt "#30007"
msgid "Watch in low quality"
msgstr "Ver en calidad baja"
msgctxt "#30008"
msgid "Watch in high quality"
msgstr "Ver en calidad alta"
# empty string with id 30009
msgctxt "#30010"
msgid "Channel icons view:"
msgstr "Logos de canales:"
msgctxt "#30011"
msgid "Poster (vertical)"
msgstr "Poster (vertical)"
msgctxt "#30012"
msgid "Banner (horizontal)"
msgstr "Banner (horizontal)"
msgctxt "#30200"
msgid "Square"
msgstr "Cuadrado"
# empty string with id 30013
msgctxt "#30014"
msgid "Username:"
msgstr "Usuario:"
msgctxt "#30015"
msgid "Password:"
msgstr "Password:"
# empty string with id 30016
msgctxt "#30017"
msgid "Download path:"
msgstr "Directorio de descargas:"
msgctxt "#30018"
msgid "Download list path:"
msgstr "Directorio de lista descargas:"
msgctxt "#30067"
msgid "Videolibrary path:"
msgstr "Directorio de la videoteca:"
msgctxt "#30019"
msgid "Filter channels by language:"
msgstr "Filtrar canales por idioma:"
msgctxt "#30044"
msgid "Play mode:"
msgstr "Modo de reproducción:"
msgctxt "#30068"
msgid "Filter by servers:"
msgstr "Filtrar por servidores:"
msgctxt "#30050"
msgid "Server connection error"
msgstr "No se puede conectar con el servidor"
msgctxt "#30051"
msgid "Website error message (http code %d)"
msgstr "El sitio web no funciona correctamente (error http %d)"
msgctxt "#30055"
msgid "Video not available"
msgstr "Vídeo no disponible"
msgctxt "#30057"
msgid "The video has been removed from %s"
msgstr "No se puede acceder al vídeo en %s"
msgctxt "#30058"
msgid "Try another server or channel"
msgstr "Prueba en otro servidor o en otro canal"
msgctxt "#30065"
msgid "Unsopported Server"
msgstr "Servidor no soportado"
msgctxt "#30100"
msgid "Configuration"
msgstr "Configuración"
msgctxt "#30101"
msgid "Downloads"
msgstr "Descargas"
msgctxt "#30102"
msgid "Favorites"
msgstr "Favoritos"
msgctxt "#30103"
msgid "Global search"
msgstr "Buscador"
msgctxt "#30104"
msgid "Help"
msgstr "Ayuda"
msgctxt "#30105"
msgid "Removed from favorites"
msgstr "Se ha quitado de favoritos"
msgctxt "#30108"
msgid "added to favorites"
msgstr "se ha añadido a favoritos"
msgctxt "#30109"
msgid "added to download list"
msgstr "se ha añadido a la lista de descargas"
msgctxt "#30112"
msgid "Enter title to search"
msgstr "Introduce el título a buscar"
msgctxt "#30135"
msgid "added to the videolibrary"
msgstr "se ha añadido a la videoteca"
msgctxt "#30130"
msgid "Recent"
msgstr "Novedades"
msgctxt "#30118"
msgid "Channels"
msgstr "Canales"
msgctxt "#30119"
msgid "Choose a Category"
msgstr "Seleccione una Categoría"
msgctxt "#30121"
msgid "All"
msgstr "Todos"
msgctxt "#30122"
msgid "Movies"
msgstr "Películas"
msgctxt "#30123"
msgid "TV Shows"
msgstr "Series"
msgctxt "#30124"
msgid "Anime"
msgstr "Anime"
msgctxt "#30125"
msgid "Documentaries"
msgstr "Documentales"
msgctxt "#30136"
msgid "Original version"
msgstr "Versión original"
msgctxt "#30126"
msgid "Adult"
msgstr ""
msgctxt "#30127"
msgid "Latin"
msgstr "Latino"
msgctxt "#30137"
msgid "Direct"
msgstr "Directos"
msgctxt "#30131"
msgid "Videolibrary"
msgstr "Videoteca"
msgctxt "#30151"
msgid "Watch the video"
msgstr "Ver el vídeo"
msgctxt "#30153"
msgid "Download"
msgstr "Descargar"
msgctxt "#30154"
msgid "Remove from favorites"
msgstr "Quitar de favoritos"
msgctxt "#30155"
msgid "Add to favorites"
msgstr "Añadir a favoritos"
msgctxt "#30161"
msgid "Add to videolibrary"
msgstr "Añadir a videoteca"
msgctxt "#30162"
msgid "Search for trailer"
msgstr "Buscar trailer"
msgctxt "#30163"
msgid "Choose an option"
msgstr "Elige una opción"
msgctxt "#30164"
msgid "Delete this file"
msgstr "Borrar este fichero"
msgctxt "#30501"
msgid "Paths"
msgstr "Rutas"
msgctxt "#30998"
msgid "Shortcut"
msgstr "Acceso directo"
msgctxt "#30999"
msgid "Add key to open Shortcut"
msgstr "Añadir tecla para acceso directo"

View File

@@ -0,0 +1,268 @@
# Kodi Media Center language file
# strings 30000 thru 30999 reserved for plugins and plugin settings
#
msgid ""
msgstr ""
"Project-Id-Version: KODI Main\n"
"Report-Msgid-Bugs-To: http://trac.kodi.tv/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Kodi Translation Team\n"
"Language-Team: Spanish (Spanish) (http://www.transifex.com/projects/p/kodi-main/language/en_GB/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es_ES\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
# empty string with id 30000
msgctxt "#30001"
msgid "Check for updates:"
msgstr "Comprobar actualizaciones:"
msgctxt "#30002"
msgid "Enable adult mode:"
msgstr "Mostrar canales para adultos"
msgctxt "#30003"
msgid "Enable debug logging:"
msgstr "Generar log detallado:"
msgctxt "#30043"
msgid "Force view mode:"
msgstr "Forzar el modo de vista:"
msgctxt "#30004"
msgid "Automatic update channels:"
msgstr "Actualizar automáticamente canales:"
msgctxt "#30005"
msgid "Default play setting:"
msgstr "Accion al seleccionar vídeo:"
msgctxt "#30006"
msgid "Ask"
msgstr "Preguntar"
msgctxt "#30007"
msgid "Watch in low quality"
msgstr "Ver en calidad baja"
msgctxt "#30008"
msgid "Watch in high quality"
msgstr "Ver en calidad alta"
# empty string with id 30009
msgctxt "#30010"
msgid "Channel icons view:"
msgstr "Logos de canales:"
msgctxt "#30011"
msgid "Poster (vertical)"
msgstr "Poster (vertical)"
msgctxt "#30012"
msgid "Banner (horizontal)"
msgstr "Banner (horizontal)"
msgctxt "#30200"
msgid "Square"
msgstr "Cuadrado"
# empty string with id 30013
msgctxt "#30014"
msgid "Username:"
msgstr "Usuario:"
msgctxt "#30015"
msgid "Password:"
msgstr "Password:"
# empty string with id 30016
msgctxt "#30017"
msgid "Download path:"
msgstr "Directorio de descargas:"
msgctxt "#30018"
msgid "Download list path:"
msgstr "Directorio de lista descargas:"
msgctxt "#30067"
msgid "Videolibrary path:"
msgstr "Directorio de la videoteca:"
msgctxt "#30019"
msgid "Filter channels by language:"
msgstr "Filtrar canales por idioma:"
msgctxt "#30044"
msgid "Play mode:"
msgstr "Modo de reproducción:"
msgctxt "#30068"
msgid "Filter by servers:"
msgstr "Filtrar por servidores:"
msgctxt "#30050"
msgid "Server connection error"
msgstr "No se puede conectar con el servidor"
msgctxt "#30051"
msgid "Website error message (http code %d)"
msgstr "El sitio web no funciona correctamente (error http %d)"
msgctxt "#30055"
msgid "Video not available"
msgstr "Vídeo no disponible"
msgctxt "#30057"
msgid "The video has been removed from %s"
msgstr "No se puede acceder al vídeo en %s"
msgctxt "#30058"
msgid "Try another server or channel"
msgstr "Prueba en otro servidor o en otro canal"
msgctxt "#30065"
msgid "Unsopported Server"
msgstr "Servidor no soportado"
msgctxt "#30100"
msgid "Configuration"
msgstr "Configuración"
msgctxt "#30101"
msgid "Downloads"
msgstr "Descargas"
msgctxt "#30102"
msgid "Favorites"
msgstr "Favoritos"
msgctxt "#30103"
msgid "Global search"
msgstr "Buscador"
msgctxt "#30104"
msgid "Help"
msgstr "Ayuda"
msgctxt "#30105"
msgid "Removed from favorites"
msgstr "Se ha quitado de favoritos"
msgctxt "#30108"
msgid "added to favorites"
msgstr "se ha añadido a favoritos"
msgctxt "#30109"
msgid "added to download list"
msgstr "se ha añadido a la lista de descargas"
msgctxt "#30112"
msgid "Enter title to search"
msgstr "Introduce el título a buscar"
msgctxt "#30135"
msgid "added to the videolibrary"
msgstr "se ha añadido a la videoteca"
msgctxt "#30130"
msgid "Recent"
msgstr "Novedades"
msgctxt "#30118"
msgid "Channels"
msgstr "Canales"
msgctxt "#30119"
msgid "Choose a Category"
msgstr "Seleccione una Categoría"
msgctxt "#30121"
msgid "All"
msgstr "Todos"
msgctxt "#30122"
msgid "Movies"
msgstr "Películas"
msgctxt "#30123"
msgid "TV Shows"
msgstr "Series"
msgctxt "#30124"
msgid "Anime"
msgstr "Anime"
msgctxt "#30125"
msgid "Documentaries"
msgstr "Documentales"
msgctxt "#30136"
msgid "Original version"
msgstr "Versión original"
msgctxt "#30126"
msgid "Adult"
msgstr ""
msgctxt "#30127"
msgid "Latin"
msgstr "Latino"
msgctxt "#30137"
msgid "Direct"
msgstr "Directos"
msgctxt "#30131"
msgid "Videolibrary"
msgstr "Videoteca"
msgctxt "#30151"
msgid "Watch the video"
msgstr "Ver el vídeo"
msgctxt "#30153"
msgid "Download"
msgstr "Descargar"
msgctxt "#30154"
msgid "Remove from favorites"
msgstr "Quitar de favoritos"
msgctxt "#30155"
msgid "Add to favorites"
msgstr "Añadir a favoritos"
msgctxt "#30161"
msgid "Add to videolibrary"
msgstr "Añadir a videoteca"
msgctxt "#30162"
msgid "Search for trailer"
msgstr "Buscar trailer"
msgctxt "#30163"
msgid "Choose an option"
msgstr "Elige una opción"
msgctxt "#30164"
msgid "Delete this file"
msgstr "Borrar este fichero"
msgctxt "#30501"
msgid "Paths"
msgstr "Rutas"
msgctxt "#30998"
msgid "Shortcut"
msgstr "Acceso directo"
msgctxt "#30999"
msgid "Add key to open Shortcut"
msgstr "Añadir tecla para acceso directo"

View File

@@ -0,0 +1,268 @@
# Kodi Media Center language file
# strings 30000 thru 30999 reserved for plugins and plugin settings
#
msgid ""
msgstr ""
"Project-Id-Version: KODI Main\n"
"Report-Msgid-Bugs-To: http://trac.kodi.tv/\n"
"POT-Creation-Date: YEAR-MO-DA HO:MI+ZONE\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: Kodi Translation Team\n"
"Language-Team: Spanish (Spanish) (http://www.transifex.com/projects/p/kodi-main/language/en_GB/)\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: es_ES\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
# empty string with id 30000
msgctxt "#30001"
msgid "Check for updates:"
msgstr "Comprobar actualizaciones:"
msgctxt "#30002"
msgid "Enable adult mode:"
msgstr "Mostrar canales para adultos"
msgctxt "#30003"
msgid "Enable debug logging:"
msgstr "Generar log detallado:"
msgctxt "#30043"
msgid "Force view mode:"
msgstr "Forzar el modo de vista:"
msgctxt "#30004"
msgid "Automatic update channels:"
msgstr "Actualizar automáticamente canales:"
msgctxt "#30005"
msgid "Default play setting:"
msgstr "Accion al seleccionar vídeo:"
msgctxt "#30006"
msgid "Ask"
msgstr "Preguntar"
msgctxt "#30007"
msgid "Watch in low quality"
msgstr "Ver en calidad baja"
msgctxt "#30008"
msgid "Watch in high quality"
msgstr "Ver en calidad alta"
# empty string with id 30009
msgctxt "#30010"
msgid "Channel icons view:"
msgstr "Logos de canales:"
msgctxt "#30011"
msgid "Poster (vertical)"
msgstr "Poster (vertical)"
msgctxt "#30012"
msgid "Banner (horizontal)"
msgstr "Banner (horizontal)"
msgctxt "#30200"
msgid "Square"
msgstr "Cuadrado"
# empty string with id 30013
msgctxt "#30014"
msgid "Username:"
msgstr "Usuario:"
msgctxt "#30015"
msgid "Password:"
msgstr "Password:"
# empty string with id 30016
msgctxt "#30017"
msgid "Download path:"
msgstr "Directorio de descargas:"
msgctxt "#30018"
msgid "Download list path:"
msgstr "Directorio de lista descargas:"
msgctxt "#30067"
msgid "Videolibrary path:"
msgstr "Directorio de la videoteca:"
msgctxt "#30019"
msgid "Filter channels by language:"
msgstr "Filtrar canales por idioma:"
msgctxt "#30044"
msgid "Play mode:"
msgstr "Modo de reproducción:"
msgctxt "#30068"
msgid "Filter by servers:"
msgstr "Filtrar por servidores:"
msgctxt "#30050"
msgid "Server connection error"
msgstr "No se puede conectar con el servidor"
msgctxt "#30051"
msgid "Website error message (http code %d)"
msgstr "El sitio web no funciona correctamente (error http %d)"
msgctxt "#30055"
msgid "Video not available"
msgstr "Vídeo no disponible"
msgctxt "#30057"
msgid "The video has been removed from %s"
msgstr "No se puede acceder al vídeo en %s"
msgctxt "#30058"
msgid "Try another server or channel"
msgstr "Prueba en otro servidor o en otro canal"
msgctxt "#30065"
msgid "Unsopported Server"
msgstr "Servidor no soportado"
msgctxt "#30100"
msgid "Configuration"
msgstr "Configuración"
msgctxt "#30101"
msgid "Downloads"
msgstr "Descargas"
msgctxt "#30102"
msgid "Favorites"
msgstr "Favoritos"
msgctxt "#30103"
msgid "Global search"
msgstr "Buscador"
msgctxt "#30104"
msgid "Help"
msgstr "Ayuda"
msgctxt "#30105"
msgid "Removed from favorites"
msgstr "Se ha quitado de favoritos"
msgctxt "#30108"
msgid "added to favorites"
msgstr "se ha añadido a favoritos"
msgctxt "#30109"
msgid "added to download list"
msgstr "se ha añadido a la lista de descargas"
msgctxt "#30112"
msgid "Enter title to search"
msgstr "Introduce el título a buscar"
msgctxt "#30135"
msgid "added to the videolibrary"
msgstr "se ha añadido a la videoteca"
msgctxt "#30130"
msgid "Recent"
msgstr "Novedades"
msgctxt "#30118"
msgid "Channels"
msgstr "Canales"
msgctxt "#30119"
msgid "Choose a Category"
msgstr "Seleccione una Categoría"
msgctxt "#30121"
msgid "All"
msgstr "Todos"
msgctxt "#30122"
msgid "Movies"
msgstr "Películas"
msgctxt "#30123"
msgid "TV Shows"
msgstr "Series"
msgctxt "#30124"
msgid "Anime"
msgstr "Anime"
msgctxt "#30125"
msgid "Documentaries"
msgstr "Documentales"
msgctxt "#30136"
msgid "Original version"
msgstr "Versión original"
msgctxt "#30126"
msgid "Adult"
msgstr ""
msgctxt "#30127"
msgid "Latin"
msgstr "Latino"
msgctxt "#30137"
msgid "Direct"
msgstr "Directos"
msgctxt "#30131"
msgid "Videolibrary"
msgstr "Videoteca"
msgctxt "#30151"
msgid "Watch the video"
msgstr "Ver el vídeo"
msgctxt "#30153"
msgid "Download"
msgstr "Descargar"
msgctxt "#30154"
msgid "Remove from favorites"
msgstr "Quitar de favoritos"
msgctxt "#30155"
msgid "Add to favorites"
msgstr "Añadir a favoritos"
msgctxt "#30161"
msgid "Add to videolibrary"
msgstr "Añadir a videoteca"
msgctxt "#30162"
msgid "Search for trailer"
msgstr "Buscar trailer"
msgctxt "#30163"
msgid "Choose an option"
msgstr "Elige una opción"
msgctxt "#30164"
msgid "Delete this file"
msgstr "Borrar este fichero"
msgctxt "#30501"
msgid "Paths"
msgstr "Rutas"
msgctxt "#30998"
msgid "Shortcut"
msgstr "Acceso directo"
msgctxt "#30999"
msgid "Add key to open Shortcut"
msgstr "Añadir tecla para acceso directo"

View File

@@ -19,12 +19,6 @@
<setting id="adult_request_password" type="bool" label="Solicitar contraseña para abrir canales de adultos" enable="!eq(-1,0)+!eq(-2,)" default="true"/>
<setting id="adult_aux_new_password1" type="text" label="Nueva contraseña:" option="hidden" enable="!eq(-3,)" default=""/>
<setting id="adult_aux_new_password2" type="text" label="Confirmar nueva contraseña:" option="hidden" enable="!eq(-1,)" default=""/>
<!--<setting type="sep"/>-->
<!--<setting label="Actualizaciones" type="lsep"/>-->
<!--<setting id="plugin_updates_available" type="number" label="Number of updates available" default="0" visible="false"/>-->
<!--<setting id="check_for_plugin_updates" type="bool" label="30001" default="true"/>-->
<!--<setting id="check_for_channel_updates" type="bool" label="30004" default="true"/>-->
</category>
<!-- Path downloads and subtitles -->
@@ -45,12 +39,12 @@
<setting id="videolibrary_kodi" type="bool" label="Autoconfigurar videoteca de XBMC/Kodi para contenido de Alfa" enable="lt(-1,2)+eq(0,false)" default="false"/>
</category>
<category label="Otros"><!--30503 -->
<category label="Otros">
<setting label="Info de películas/series en menú contextual" type="lsep"/>
<setting id="infoplus" type="bool" label="Mostrar opción Infoplus:" default="true"/>
<setting id="extended_info" type="bool" label="Mostrar opción ExtendedInfo (Necesario addon externo):" default="false"/>
<setting label="Botones/Teclas de acceso (Cambios requieren reiniciar Kodi)" type="lsep"/>
<setting id="button_keymap" type="action" label="31100" action="RunPlugin(plugin://plugin.video.alfa/?ewogICAgImFjdGlvbiI6ICJlZGl0b3Jfa2V5bWFwIiwgCiAgICAiaW5mb0xhYmVscyI6IHt9Cn0%3D)" />
<setting id="shortcut_key" type="action" label="30999" action="RunPlugin(plugin://plugin.video.alfa/?ew0KICAgICJhY3Rpb24iOiAia2V5bWFwIg0KfQ==)" />
</category>
</settings>

View File

@@ -1,229 +1,229 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<window type="window">
<depth>0.52</depth>
<coordinates>
<left>147</left>
<top>180</top>
</coordinates>
<defaultcontrol always="true">32500</defaultcontrol>
<animation type="WindowOpen" reversible="false">
<effect type="zoom" start="80" end="100" center="960,540" delay="160" tween="back" time="240" />
<effect type="fade" delay="160" end="100" time="240" />
</animation>
<animation type="WindowClose" reversible="false">
<effect type="zoom" start="100" end="80" center="960,540" easing="in" tween="back" time="240" />
<effect type="fade" start="100" end="0" time="240" />
</animation>
<controls>
<control type="image">
<left>0</left>
<top>0</top>
<width>969</width>
<height>283</height>
<texture border="2">Shorcut/dialog-bg-solid.png</texture>
</control>
<control type="image">
<left>0</left>
<top>0</top>
<width>969</width>
<height>70</height>
<texture colordiffuse="FF12B2E7" border="2">Shorcut/white70.png</texture>
</control>
<control type="label" id="30000">
<textoffsetx>70</textoffsetx>
<left>-30</left>
<top>0</top>
<width>969</width>
<height>70</height>
<font>font20_title</font>
<label>Shortcut</label>
<align>left</align>
<aligny>center</aligny>
<shadowcolor>black</shadowcolor>
</control>
<control type="button">
<left>-1920</left>
<top>-1080</top>
<width>5760</width>
<height>3240</height>
<texturefocus>-</texturefocus>
<texturenofocus>-</texturenofocus>
<onclick>Action(close)</onclick>
</control>
<control type="button">
<description>button overlay to avoid closing in dialog area</description>
<left>0</left>
<top>0</top>
<width>969</width>
<height>283</height>
<texturefocus>-</texturefocus>
<texturenofocus>-</texturenofocus>
<onclick>noop</onclick>
</control>
<control type="radiobutton" id="32501">
<left>969</left>
<top>11</top>
<width>48</width>
<height>48</height>
<radiowidth>48</radiowidth>
<radioheight>48</radioheight>
<texturefocus>-</texturefocus>
<texturenofocus>-</texturenofocus>
<label></label>
<animation effect="slide" end="-70,0" time="0" condition="true">Conditional</animation>
<textureradioofffocus colordiffuse="EEFFFFFF">Shorcut/close.png</textureradioofffocus>
<textureradiooffnofocus colordiffuse="EEFFFFFF">Shorcut/logo.png</textureradiooffnofocus>
<textureradioonfocus colordiffuse="EEFFFFFF">Shorcut/close.png</textureradioonfocus>
<textureradioonnofocus colordiffuse="EEFFFFFF">Shorcut/logo.png</textureradioonnofocus>
<onclick>Action(close)</onclick>
<onup>32500</onup>
<ondown>32500</ondown>
</control>
<control type="group">
<control type="group">
<control type="image">
<left>-21</left>
<top>50</top>
<width>1011</width>
<height>253</height>
<texture border="40">Shorcut/dialogbutton-nofo.png</texture>
</control>
<control type="list" id="32500">
<left>-139</left>
<top>55</top>
<width>980</width>
<height>220</height>
<onup>32501</onup>
<ondown>61</ondown>
<orientation>horizontal</orientation>
<scrolltime>200</scrolltime>
<pagecontrol>61</pagecontrol>
<animation effect="slide" start="0,0" end="10,0" time="0" condition="true">Conditional</animation>
<animation effect="slide" end="120,0" time="0" condition="!Control.IsVisible(5)">Conditional</animation>
<itemlayout height="225" width="323">
<top>2</top>
<control type="image">
<top>5</top>
<left>10</left>
<width>347</width>
<height>260</height>
<texture border="40">Shorcut/button-nofo.png</texture>
</control>
<control type="image">
<left>30</left>
<top>149</top>
<width>306</width>
<height>75</height>
<texture colordiffuse="60FFFFFF">Shorcut/black.png</texture>
</control>
<control type="image">
<left>95</left>
<top>23</top>
<width>160</width>
<height>130</height>
<texture>$INFO[ListItem.Property(thumb)]</texture>
<aspectratio>keep</aspectratio>
<align>center</align>
</control>
<control type="image">
<left>329</left>
<top>24</top>
<width>50</width>
<height>50</height>
<aspectratio>keep</aspectratio>
<texture>$INFO[ListItem.Overlay]</texture>
</control>
<control type="textbox">
<left>25</left>
<top>146</top>
<width>300</width>
<height>74</height>
<label>[COLOR grey]$INFO[ListItem.Label][/COLOR]</label>
<shadowcolor>text_shadow</shadowcolor>
<font>font12</font>
<align>center</align>
<aligny>center</aligny>
</control>
</itemlayout>
<focusedlayout height="225" width="323">
<control type="group">
<depth>0.10</depth>
<animation type="Focus" reversible="false">
<effect type="zoom" center="auto" start="100" end="108" time="250" tween="sine" />
</animation>
<animation type="UnFocus" reversible="false">
<effect type="zoom" center="auto" start="108" end="100" time="150" tween="sine" />
</animation>
<top>2</top>
<control type="image">
<width>340</width>
<height>245</height>
<texture border="40">Shorcut/button-nofo.png</texture>
<animation effect="fade" start="0" end="100" time="0">Unfocus</animation>
<animation effect="fade" start="100" end="0" time="0">Focus</animation>
</control>
<control type="image">
<width>340</width>
<height>237</height>
<texture border="40" colordiffuse="FF12B2E7">Shorcut/button-fo.png</texture>
<animation effect="fade" start="100" end="0" time="0">Unfocus</animation>
</control>
<control type="image">
<left>5</left>
<top>24</top>
<width>50</width>
<height>50</height>
<aspectratio>keep</aspectratio>
<texture>$INFO[ListItem.Overlay]</texture>
</control>
<control type="image">
<left>23</left>
<top>149</top>
<width>298</width>
<height>75</height>
<texture colordiffuse="60FFFFFF">Shorcut/black.png</texture>
</control>
<control type="image">
<left>95</left>
<top>23</top>
<width>160</width>
<height>130</height>
<texture>$INFO[ListItem.Property(thumb)]</texture>
<aspectratio>keep</aspectratio>
<align>center</align>
</control>
<control type="textbox">
<left>25</left>
<top>146</top>
<width>300</width>
<height>74</height>
<font>font12</font>
<label>$INFO[ListItem.Label]</label>
<align>center</align>
<aligny>center</aligny>
</control>
</control>
</focusedlayout>
</control>
<control type="scrollbar" id="61">
<left>-122</left>
<top>280</top>
<width>972</width>
<height>15</height>
<texturesliderbackground colordiffuse="FFE6E6E6">Shorcut/white.png</texturesliderbackground>
<texturesliderbar colordiffuse="FF12D2E7">Shorcut/white.png</texturesliderbar>
<texturesliderbarfocus colordiffuse="FF12B2E7">Shorcut/white.png</texturesliderbarfocus>
<textureslidernib>-</textureslidernib>
<textureslidernibfocus>-</textureslidernibfocus>
<showonepage>false</showonepage>
<orientation>horizontal</orientation>
<onleft>32500</onleft>
<onright>32500</onright>
<ondown>32500</ondown>
<onup>32500</onup>
<animation effect="slide" end="120,0" time="0" condition="!Control.IsVisible(5)">Conditional</animation>
</control>
</control>
</control>
</controls>
</window>
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<window>
<depth>0.52</depth>
<coordinates>
<left>147</left>
<top>180</top>
</coordinates>
<defaultcontrol always="true">32500</defaultcontrol>
<animation type="WindowOpen" reversible="false">
<effect type="zoom" start="80" end="100" center="960,540" delay="160" tween="back" time="240" />
<effect type="fade" delay="160" end="100" time="240" />
</animation>
<animation type="WindowClose" reversible="false">
<effect type="zoom" start="100" end="80" center="960,540" easing="in" tween="back" time="240" />
<effect type="fade" start="100" end="0" time="240" />
</animation>
<controls>
<control type="image">
<left>0</left>
<top>0</top>
<width>969</width>
<height>283</height>
<texture border="2">Shortcut/dialog-bg-solid.png</texture>
</control>
<control type="image">
<left>0</left>
<top>0</top>
<width>969</width>
<height>70</height>
<texture colordiffuse="FF12B2E7" border="2">Shortcut/white70.png</texture>
</control>
<control type="label" id="30000">
<textoffsetx>70</textoffsetx>
<left>-30</left>
<top>0</top>
<width>969</width>
<height>70</height>
<font>font20_title</font>
<label>Alfa - $ADDON[plugin.video.alfa 30998]</label>
<align>left</align>
<aligny>center</aligny>
<shadowcolor>black</shadowcolor>
</control>
<control type="button">
<left>-1920</left>
<top>-1080</top>
<width>5760</width>
<height>3240</height>
<texturefocus>-</texturefocus>
<texturenofocus>-</texturenofocus>
<onclick>Action(close)</onclick>
</control>
<control type="button">
<description>button overlay to avoid closing in dialog area</description>
<left>0</left>
<top>0</top>
<width>969</width>
<height>283</height>
<texturefocus>-</texturefocus>
<texturenofocus>-</texturenofocus>
<onclick>noop</onclick>
</control>
<control type="radiobutton" id="32501">
<left>969</left>
<top>11</top>
<width>48</width>
<height>48</height>
<radiowidth>48</radiowidth>
<radioheight>48</radioheight>
<texturefocus>-</texturefocus>
<texturenofocus>-</texturenofocus>
<label></label>
<animation effect="slide" end="-70,0" time="0" condition="true">Conditional</animation>
<textureradioofffocus colordiffuse="EEFFFFFF">Shortcut/close.png</textureradioofffocus>
<textureradiooffnofocus colordiffuse="EEFFFFFF">Shortcut/logo.png</textureradiooffnofocus>
<textureradioonfocus colordiffuse="EEFFFFFF">Shortcut/close.png</textureradioonfocus>
<textureradioonnofocus colordiffuse="EEFFFFFF">Shortcut/logo.png</textureradioonnofocus>
<onclick>Action(close)</onclick>
<onup>32500</onup>
<ondown>32500</ondown>
</control>
<control type="group">
<control type="group">
<control type="image">
<left>-21</left>
<top>50</top>
<width>1011</width>
<height>253</height>
<texture border="40">Shortcut/dialogbutton-nofo.png</texture>
</control>
<control type="list" id="32500">
<left>-139</left>
<top>55</top>
<width>980</width>
<height>220</height>
<onup>32501</onup>
<ondown>61</ondown>
<orientation>horizontal</orientation>
<scrolltime>200</scrolltime>
<pagecontrol>61</pagecontrol>
<animation effect="slide" start="0,0" end="10,0" time="0" condition="true">Conditional</animation>
<animation effect="slide" end="120,0" time="0" condition="!Control.IsVisible(5)">Conditional</animation>
<itemlayout height="225" width="323">
<top>2</top>
<control type="image">
<top>5</top>
<left>10</left>
<width>347</width>
<height>260</height>
<texture border="40">Shortcut/button-nofo.png</texture>
</control>
<control type="image">
<left>30</left>
<top>149</top>
<width>306</width>
<height>75</height>
<texture colordiffuse="60FFFFFF">Shortcut/black.png</texture>
</control>
<control type="image">
<left>95</left>
<top>23</top>
<width>160</width>
<height>130</height>
<texture>$INFO[ListItem.Property(thumb)]</texture>
<aspectratio>keep</aspectratio>
<align>center</align>
</control>
<control type="image">
<left>329</left>
<top>24</top>
<width>50</width>
<height>50</height>
<aspectratio>keep</aspectratio>
<texture>$INFO[ListItem.Overlay]</texture>
</control>
<control type="textbox">
<left>25</left>
<top>146</top>
<width>300</width>
<height>74</height>
<label>[COLOR grey]$INFO[ListItem.Label][/COLOR]</label>
<shadowcolor>text_shadow</shadowcolor>
<font>font12</font>
<align>center</align>
<aligny>center</aligny>
</control>
</itemlayout>
<focusedlayout height="225" width="323">
<control type="group">
<depth>0.10</depth>
<animation type="Focus" reversible="false">
<effect type="zoom" center="auto" start="100" end="108" time="250" tween="sine" />
</animation>
<animation type="UnFocus" reversible="false">
<effect type="zoom" center="auto" start="108" end="100" time="150" tween="sine" />
</animation>
<top>2</top>
<control type="image">
<width>340</width>
<height>245</height>
<texture border="40">Shortcut/button-nofo.png</texture>
<animation effect="fade" start="0" end="100" time="0">Unfocus</animation>
<animation effect="fade" start="100" end="0" time="0">Focus</animation>
</control>
<control type="image">
<width>340</width>
<height>237</height>
<texture border="40" colordiffuse="FF12B2E7">Shortcut/button-fo.png</texture>
<animation effect="fade" start="100" end="0" time="0">Unfocus</animation>
</control>
<control type="image">
<left>5</left>
<top>24</top>
<width>50</width>
<height>50</height>
<aspectratio>keep</aspectratio>
<texture>$INFO[ListItem.Overlay]</texture>
</control>
<control type="image">
<left>23</left>
<top>149</top>
<width>298</width>
<height>75</height>
<texture colordiffuse="60FFFFFF">Shortcut/black.png</texture>
</control>
<control type="image">
<left>95</left>
<top>23</top>
<width>160</width>
<height>130</height>
<texture>$INFO[ListItem.Property(thumb)]</texture>
<aspectratio>keep</aspectratio>
<align>center</align>
</control>
<control type="textbox">
<left>25</left>
<top>146</top>
<width>300</width>
<height>74</height>
<font>font12</font>
<label>$INFO[ListItem.Label]</label>
<align>center</align>
<aligny>center</aligny>
</control>
</control>
</focusedlayout>
</control>
<control type="scrollbar" id="61">
<left>-122</left>
<top>280</top>
<width>972</width>
<height>15</height>
<texturesliderbackground colordiffuse="FFE6E6E6">Shortcut/white.png</texturesliderbackground>
<texturesliderbar colordiffuse="FF12D2E7">Shortcut/white.png</texturesliderbar>
<texturesliderbarfocus colordiffuse="FF12B2E7">Shortcut/white.png</texturesliderbarfocus>
<textureslidernib>-</textureslidernib>
<textureslidernibfocus>-</textureslidernibfocus>
<showonepage>false</showonepage>
<orientation>horizontal</orientation>
<onleft>32500</onleft>
<onright>32500</onright>
<ondown>32500</ondown>
<onup>32500</onup>
<animation effect="slide" end="120,0" time="0" condition="!Control.IsVisible(5)">Conditional</animation>
</control>
</control>
</control>
</controls>
</window>

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 874 B

After

Width:  |  Height:  |  Size: 874 B

View File

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 838 B

After

Width:  |  Height:  |  Size: 838 B

View File

Before

Width:  |  Height:  |  Size: 167 B

After

Width:  |  Height:  |  Size: 167 B

View File

Before

Width:  |  Height:  |  Size: 177 B

After

Width:  |  Height:  |  Size: 177 B

View File

@@ -49,10 +49,10 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
var_r = scrapertools.find_single_match(text_decode, "window\.[A-z]+\s*=\s*['\"]([^'\"]+)['\"]")
var_encodes = scrapertools.find_multiple_matches(data, 'id="%s[^"]*">([^<]+)<' % var_r)
numeros = scrapertools.find_multiple_matches(data,
'_[A-f0-9]+x[A-f0-9]+\s*(?:=|\^)\s*([0-9]{4,}|0x[A-f0-9]{4,})')
numeros = scrapertools.find_single_match(data, '_[A-f0-9]+x[A-f0-9]+\s*(?:=|\^)\s*([0-9]{4,}|0x[A-f0-9]{4,})')
op1, op2 = scrapertools.find_single_match(data, '\(0x(\d),0x(\d)\);')
idparse = scrapertools.find_single_match(data, "\^parseInt\('([0-9]+)'")
idparse, hexparse = scrapertools.find_multiple_matches(data, "parseInt\('([0-9]+)'")
numeros = [numeros, str(int(hexparse, 8))]
videourl = ""
for encode in var_encodes:
text_decode = ""

View File

@@ -1,60 +0,0 @@
{
"active": true,
"changes": [
{
"date": "26/05/2016",
"description": "Versión incial"
}
],
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(https://animeflv.net/embed_izanagi.php\\?key=.+?),",
"url": "\\1"
},
{
"pattern": "(https://s1.animeflv.com/gdrive.php?id=.+?)\\\\\\\\",
"url": "\\1"
},
{
"pattern": "(http://www.animeid..{2,3}/embed/.+?/)",
"url": "\\1"
},
{
"pattern": "(https://jkanime.net/jk.php\\?u=stream/jkmedia.+?)\\s",
"url": "\\1"
}
]
},
"free": true,
"id": "redirects",
"name": "redirects",
"settings": [
{
"default": false,
"enabled": true,
"id": "black_list",
"label": "Incluir en lista negra",
"type": "bool",
"visible": true
},
{
"default": 0,
"enabled": true,
"id": "favorites_servers_list",
"label": "Incluir en lista de favoritos",
"lvalues": [
"No",
"1",
"2",
"3",
"4",
"5"
],
"type": "list",
"visible": false
}
],
"version": 1
}

View File

@@ -1,23 +0,0 @@
# -*- coding: utf-8 -*-
import re
import urllib2
from core import scrapertools
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
video_urls = []
if 'jkanime' in page_url:
request_headers = {
"Accept-Language": "en-US,en;q=0.5",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:40.0) Gecko/20100101 Firefox/40.0",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Connection": "keep-alive"
}
jk_url = page_url.replace("/jk.php?u=stream/", "/stream/")
request = urllib2.Request(jk_url, headers=request_headers)
response = urllib2.urlopen(request)
video_urls.append([".mp4 [redirects]", response.geturl()])
return video_urls