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

This commit is contained in:
unknown
2017-11-15 08:35:02 -03:00
17 changed files with 370 additions and 267 deletions
+9 -3
View File
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="plugin.video.alfa" name="Alfa" version="2.3.6" provider-name="Alfa Addon"> <addon id="plugin.video.alfa" name="Alfa" version="2.3.7" provider-name="Alfa Addon">
<requires> <requires>
<import addon="xbmc.python" version="2.1.0"/> <import addon="xbmc.python" version="2.1.0"/>
<import addon="script.module.libtorrent" optional="true"/> <import addon="script.module.libtorrent" optional="true"/>
@@ -19,8 +19,14 @@
</assets> </assets>
<news>[B]Estos son los cambios para esta versión:[/B] <news>[B]Estos son los cambios para esta versión:[/B]
[COLOR green][B]Canales agregados y arreglos[/B][/COLOR] [COLOR green][B]Canales agregados y arreglos[/B][/COLOR]
» seriesblanco » hdfull » anitoonstv » asialiveaction
» gamovideo ¤ arreglos internos » cinehindi » danimados
» mundiseries » pelisculashndu
» seodiv » serieslan
» crunchyroll » pelisfox
» stormo ¤ arreglos internos
[COLOR green]Gracias a [COLOR yellow]Danielr460, numa00009 y numa00009[/COLOR]
por su colaboración en esta versión[/COLOR]
</news> </news>
<description lang="es">Navega con Kodi por páginas web para ver sus videos de manera fácil.</description> <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> <summary lang="en">Browse web pages using Kodi</summary>
+1 -1
View File
@@ -127,7 +127,7 @@ def episodios(item):
plot=scrapedplot, url=url, show=show)) plot=scrapedplot, url=url, show=show))
if config.get_videolibrary_support() and len(itemlist) > 0: 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, itemlist.append(Item(channel=item.channel, title="[COLOR yellow]Añadir esta serie a la videoteca[/COLOR]", url=item.url,
action="add_serie_to_library", extra="episodios", show=show)) action="add_serie_to_library", extra="episodios", show=show))
return itemlist return itemlist
+1 -1
View File
@@ -180,7 +180,7 @@ def findvideos(item):
show = item.show show = item.show
for videoitem in itemlist: for videoitem in itemlist:
videoitem.channel = item.channel videoitem.channel = item.channel
if config.get_videolibrary_support() and len(itemlist) > 0 and item.contentType=="movie": if config.get_videolibrary_support() and len(itemlist) > 0 and item.contentType=="movie" and item.contentChannel!='videolibrary':
itemlist.append( itemlist.append(
Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url, Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url,
action="add_pelicula_to_library", extra="findvideos", contentTitle=show)) action="add_pelicula_to_library", extra="findvideos", contentTitle=show))
+1 -1
View File
@@ -150,7 +150,7 @@ def episodios(item):
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, url=url, show=show)) itemlist.append(Item(channel=item.channel, action="findvideos", title=title, url=url, show=show))
if config.get_videolibrary_support() and len(itemlist) > 0: if config.get_videolibrary_support() and len(itemlist) > 0:
itemlist.append(Item(channel=item.channel, title="Añadir " + show + " a la videoteca", url=item.url, itemlist.append(Item(channel=item.channel, title="[COLOR yellow]Añadir " + show + " a la videoteca[/COLOR]", url=item.url,
action="add_serie_to_library", extra="episodios", show=show)) action="add_serie_to_library", extra="episodios", show=show))
return itemlist return itemlist
+8 -4
View File
@@ -123,7 +123,7 @@ def lista(item):
if next_page_url != "": if next_page_url != "":
item.url = next_page_url item.url = next_page_url
itemlist.append(Item(channel=item.channel, action="lista", title=">> Página siguiente", url=next_page_url, itemlist.append(Item(channel=item.channel, action="lista", title="[COLOR cyan]Página Siguiente >>[/COLOR]", url=next_page_url,
thumbnail='https://s32.postimg.org/4zppxf5j9/siguiente.png')) thumbnail='https://s32.postimg.org/4zppxf5j9/siguiente.png'))
return itemlist return itemlist
@@ -132,14 +132,18 @@ def findvideos(item):
logger.info() logger.info()
itemlist = [] itemlist = []
itemlist1 = []
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
itemlist.extend(servertools.find_video_items(data=data)) itemlist1.extend(servertools.find_video_items(data=data))
patron_show = '<div class="data"><h1 itemprop="name">([^<]+)<\/h1>' patron_show = '<div class="data"><h1 itemprop="name">([^<]+)<\/h1>'
show = scrapertools.find_single_match(data, patron_show) show = scrapertools.find_single_match(data, patron_show)
for videoitem in itemlist: for videoitem in itemlist1:
videoitem.channel = item.channel videoitem.channel = item.channel
if config.get_videolibrary_support() and len(itemlist) > 0: for i in range(len(itemlist1)):
if not 'youtube' in itemlist1[i].title:
itemlist.append(itemlist1[i])
if config.get_videolibrary_support() and len(itemlist) > 0 and item.contentChannel!='videolibrary':
itemlist.append( itemlist.append(
Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url, Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url,
action="add_pelicula_to_library", extra="findvideos", contentTitle=show)) action="add_pelicula_to_library", extra="findvideos", contentTitle=show))
+3 -4
View File
@@ -168,11 +168,11 @@ def episodios(item):
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
data = re.sub(r'\n|\t|\s{2,}', '', data) data = re.sub(r'\n|\t|\s{2,}', '', data)
patron = '<li id="showview_videos.*?href="([^"]+)".*?(?:src|data-thumbnailUrl)="([^"]+)".*?media_id="([^"]+)" ' \ patron = '<li id="showview_videos.*?href="([^"]+)".*?(?:src|data-thumbnailUrl)="([^"]+)".*?media_id="([^"]+)"' \
'style="width: (.*?)%.*?<span class="series-title.*?>\s*(.*?)</span>.*?<p class="short-desc".*?>' \ 'style="width:(.*?)%.*?<span class="series-title.*?>\s*(.*?)</span>.*?<p class="short-desc".*?>' \
'\s*(.*?)</p>.*?description":"([^"]+)"' '\s*(.*?)</p>.*?description":"([^"]+)"'
if data.count('class="season-dropdown') > 1: if data.count('class="season-dropdown') > 1:
bloques = scrapertools.find_multiple_matches(data, 'class="season-dropdown[^"]+" title="([^"]+)"(.*?)</ul>') bloques = scrapertools.find_multiple_matches(data, 'class="season-dropdown[^"]+".*?title="([^"]+)"(.*?)</ul>')
for season, b in bloques: for season, b in bloques:
matches = scrapertools.find_multiple_matches(b, patron) matches = scrapertools.find_multiple_matches(b, patron)
if matches: if matches:
@@ -209,7 +209,6 @@ def episodios(item):
Item(channel=item.channel, action="play", title=title, url=url, thumbnail=thumb, media_id=media_id, Item(channel=item.channel, action="play", title=title, url=url, thumbnail=thumb, media_id=media_id,
server="crunchyroll", text_color=item.text_color, contentTitle=item.contentTitle, server="crunchyroll", text_color=item.text_color, contentTitle=item.contentTitle,
contentSerieName=item.contentSerieName, contentType="tvshow")) contentSerieName=item.contentSerieName, contentType="tvshow"))
return itemlist return itemlist
+22 -5
View File
@@ -32,8 +32,8 @@ def mainlist(item):
thumbnail=thumb_series)) thumbnail=thumb_series))
itemlist.append(Item(channel=item.channel, action="mainpage", title="Más Populares", url=host, itemlist.append(Item(channel=item.channel, action="mainpage", title="Más Populares", url=host,
thumbnail=thumb_series)) thumbnail=thumb_series))
#itemlist.append(Item(channel=item.channel, action="movies", title="Peliculas Animadas", url=host, itemlist.append(Item(channel=item.channel, action="lista", title="Peliculas Animadas", url=host+"peliculas/",
# thumbnail=thumb_series)) thumbnail=thumb_series))
autoplay.show_option(item.channel, itemlist) autoplay.show_option(item.channel, itemlist)
return itemlist return itemlist
@@ -82,7 +82,6 @@ def mainpage(item):
return itemlist return itemlist
return itemlist return itemlist
def lista(item): def lista(item):
logger.info() logger.info()
@@ -90,14 +89,25 @@ def lista(item):
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;", "", data) data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;", "", data)
data_lista = scrapertools.find_single_match(data, '<div class="items">(.+?)<\/div><\/div><div class=.+?>') if item.title=="Peliculas Animadas":
data_lista = scrapertools.find_single_match(data,
'<div id="archive-content" class="animation-2 items">(.*)<a href=\'')
else:
data_lista = scrapertools.find_single_match(data,
'<div class="items">(.+?)<\/div><\/div><div class=.+?>')
patron = '<img src="([^"]+)" alt="([^"]+)">.+?<a href="([^"]+)">.+?<div class="texto">(.+?)<\/div>' patron = '<img src="([^"]+)" alt="([^"]+)">.+?<a href="([^"]+)">.+?<div class="texto">(.+?)<\/div>'
#scrapedthumbnail,#scrapedtitle, #scrapedurl, #scrapedplot #scrapedthumbnail,#scrapedtitle, #scrapedurl, #scrapedplot
matches = scrapertools.find_multiple_matches(data_lista, patron) matches = scrapertools.find_multiple_matches(data_lista, patron)
for scrapedthumbnail,scrapedtitle, scrapedurl, scrapedplot in matches: for scrapedthumbnail,scrapedtitle, scrapedurl, scrapedplot in matches:
if item.title=="Peliculas Animadas":
itemlist.append(
item.clone(title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, contentType="movie",
plot=scrapedplot, action="findvideos", show=scrapedtitle))
else:
itemlist.append( itemlist.append(
item.clone(title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, item.clone(title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail,
context=autoplay.context,plot=scrapedplot, action="episodios", show=scrapedtitle)) context=autoplay.context,plot=scrapedplot, action="episodios", show=scrapedtitle))
if item.title!="Peliculas Animadas":
tmdb.set_infoLabels(itemlist) tmdb.set_infoLabels(itemlist)
return itemlist return itemlist
@@ -124,7 +134,7 @@ def episodios(item):
action="findvideos", title=title, url=scrapedurl, show=show)) action="findvideos", title=title, url=scrapedurl, show=show))
if config.get_videolibrary_support() and len(itemlist) > 0: if config.get_videolibrary_support() and len(itemlist) > 0:
itemlist.append(Item(channel=item.channel, title="[COLOR blue]Añadir " + show + " a la videoteca[/COLOR]", url=item.url, itemlist.append(Item(channel=item.channel, title="[COLOR yellow]Añadir " + show + " a la videoteca[/COLOR]", url=item.url,
action="add_serie_to_library", extra="episodios", show=show)) action="add_serie_to_library", extra="episodios", show=show))
@@ -141,6 +151,7 @@ def findvideos(item):
data = scrapertools.find_single_match(data, data = scrapertools.find_single_match(data,
'<div id="playex" .+?>(.+?)<\/nav><\/div><\/div>') '<div id="playex" .+?>(.+?)<\/nav><\/div><\/div>')
patron='src="(.+?)"' patron='src="(.+?)"'
logger.info("assfxxv "+data)
itemla = scrapertools.find_multiple_matches(data,patron) itemla = scrapertools.find_multiple_matches(data,patron)
for i in range(len(itemla)): for i in range(len(itemla)):
#for url in itemla: #for url in itemla:
@@ -152,6 +163,8 @@ def findvideos(item):
server='okru' server='okru'
else: else:
server='' server=''
if "youtube" in url:
server='youtube'
if "openload" in url: if "openload" in url:
server='openload' server='openload'
if "google" in url: if "google" in url:
@@ -166,6 +179,10 @@ def findvideos(item):
title="NO DISPONIBLE" title="NO DISPONIBLE"
if title!="NO DISPONIBLE": if title!="NO DISPONIBLE":
itemlist.append(item.clone(title=title,url=url, action="play", server=server)) itemlist.append(item.clone(title=title,url=url, action="play", server=server))
if config.get_videolibrary_support() and len(itemlist) > 0 and item.contentType=="movie" and item.contentChannel!='videolibrary':
itemlist.append(
item.clone(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url,
action="add_pelicula_to_library", contentTitle=item.show))
autoplay.start(itemlist, item) autoplay.start(itemlist, item)
return itemlist return itemlist
+10 -5
View File
@@ -136,7 +136,7 @@ def faq(item):
"Puedes intentar subsanar estos problemas en 'Configuración'>'Ajustes de " "Puedes intentar subsanar estos problemas en 'Configuración'>'Ajustes de "
"la videoteca', cambiando el ajuste 'Realizar búsqueda de contenido en' " "la videoteca', cambiando el ajuste 'Realizar búsqueda de contenido en' "
"de 'La carpeta de cada serie' a 'Toda la videoteca'." "de 'La carpeta de cada serie' a 'Toda la videoteca'."
"También puedes acudir a 'http://alfa-addon.ga' en busca de ayuda.") "También puedes acudir a 'http://alfa-addon.com' en busca de ayuda.")
return TextBox("DialogTextViewer.xml", os.getcwd(), "Default", title=title, text=text) return TextBox("DialogTextViewer.xml", os.getcwd(), "Default", title=title, text=text)
@@ -145,7 +145,7 @@ def faq(item):
text = ("Puede ser que la página web del canal no funcione. " text = ("Puede ser que la página web del canal no funcione. "
"En caso de que funcione la página web puede que no seas el primero" "En caso de que funcione la página web puede que no seas el primero"
" en haberlo visto y que el canal este arreglado. " " en haberlo visto y que el canal este arreglado. "
"Puedes mirar en 'alfa-addon.ga' o en el " "Puedes mirar en 'alfa-addon.com' o en el "
"repositorio de GitHub (github.com/alfa-addon/addon). " "repositorio de GitHub (github.com/alfa-addon/addon). "
"Si no encuentras el canal arreglado puedes reportar un " "Si no encuentras el canal arreglado puedes reportar un "
"problema en el foro.") "problema en el foro.")
@@ -198,15 +198,20 @@ def faq(item):
log_name = "kodi.log" log_name = "kodi.log"
ruta = xbmc.translatePath("special://logpath") + log_name ruta = xbmc.translatePath("special://logpath") + log_name
title = "Alfa - FAQ - %s" % item.title[6:] title = "Alfa - FAQ - %s" % item.title[6:]
text = ("Para reportar un problema en 'http://alfa-addon.ga' es necesario:\n" text = ("Para reportar un problema en 'http://alfa-addon.com' es necesario:\n"
" - Versión que usas de Alfa.\n" " - Versión que usas de Alfa.\n"
" - Versión que usas de kodi, mediaserver, etc.\n" " - Versión que usas de kodi, mediaserver, etc.\n"
" - Versión y nombre del sistema operativo que usas.\n"
" - Nombre del skin (en el caso que uses Kodi) y si se " " - Nombre del skin (en el caso que uses Kodi) y si se "
"te ha resuelto el problema al usar el skin por defecto.\n" "te ha resuelto el problema al usar el skin por defecto.\n"
" - Descripción del problema y algún caso de prueba.\n" " - Descripción del problema y algún caso de prueba.\n"
" - Agregar el log en modo detallado, una vez hecho esto, " " - Agregar el log en modo detallado, una vez hecho esto, "
"zipea el log y lo puedes adjuntar en un post.\n\n" "zipea el log y lo puedes adjuntar en un post.\n\n"
"El log se encuentra en: \n\n" "Para activar el log en modo detallado, ingresar a:\n"
" - Configuración.\n"
" - Preferencias.\n"
" - En la pestaña General - Marcar la opción: Generar log detallado.\n\n"
"El archivo de log detallado se encuentra en la siguiente ruta: \n\n"
"%s" % ruta) "%s" % ruta)
return TextBox("DialogTextViewer.xml", os.getcwd(), "Default", title=title, text=text) return TextBox("DialogTextViewer.xml", os.getcwd(), "Default", title=title, text=text)
@@ -214,6 +219,6 @@ def faq(item):
else: else:
platformtools.dialog_ok("Alfa", platformtools.dialog_ok("Alfa",
"Entérate de novedades, consejos u opciones que desconoces en Telegram: @alfa_addon.\n" "Entérate de novedades, consejos u opciones que desconoces en Telegram: @alfa_addon.\n"
"Si tienes problemas o dudas, puedes acudir al Foro: http://alfa-addon.ga") "Si tienes problemas o dudas, puedes acudir al Foro: http://alfa-addon.com")
+155 -110
View File
@@ -34,9 +34,13 @@ ACTION_MOVE_LEFT = 1
ACTION_MOVE_RIGHT = 2 ACTION_MOVE_RIGHT = 2
ACTION_MOVE_DOWN = 4 ACTION_MOVE_DOWN = 4
ACTION_MOVE_UP = 3 ACTION_MOVE_UP = 3
OPTION_PANEL = 6
OPTIONS_OK = 5
set_animation = False
xinfoplus_set = config.get_setting("infoplus_set")
if xinfoplus_set == "Sin animación":
set_animation = False
if xinfoplus_set == "Con animación":
set_animation = True
def start(item, recomendaciones=[], from_window=False): def start(item, recomendaciones=[], from_window=False):
global mainWindow global mainWindow
@@ -50,8 +54,8 @@ def start(item, recomendaciones=[], from_window=False):
global SearchWindows global SearchWindows
SearchWindows = list() SearchWindows = list()
dialog = platformtools.dialog_progress("[COLOR darkturquoise][B]Cargando nuevos datos[/B][/COLOR]", dialog = platformtools.dialog_progress("Cargando nuevos datos",
"[COLOR lightyellow]Buscando en [/COLOR][COLOR springgreen][B]Tmdb.......[/B][/COLOR]") "Buscandoen Tmdb.......")
principal_window = main(item=item, recomendaciones=recomendaciones, dialog=dialog, from_window=from_window) principal_window = main(item=item, recomendaciones=recomendaciones, dialog=dialog, from_window=from_window)
try: try:
@@ -87,7 +91,6 @@ class main(xbmcgui.WindowDialog):
self.infoLabels["tmdb_id"] = self.item.extra.split("|")[1] self.infoLabels["tmdb_id"] = self.item.extra.split("|")[1]
else: else:
self.infoLabels["tmdb_id"] = self.item.extra.split("|")[2] self.infoLabels["tmdb_id"] = self.item.extra.split("|")[2]
critica = self.item.critica
rating = self.infoLabels.get("rating") rating = self.infoLabels.get("rating")
titulo = self.infoLabels["title"] titulo = self.infoLabels["title"]
self.images = [] self.images = []
@@ -96,6 +99,13 @@ class main(xbmcgui.WindowDialog):
info_copy = dict(self.item.infoLabels) info_copy = dict(self.item.infoLabels)
self.item.infoLabels.pop("season", None) self.item.infoLabels.pop("season", None)
self.item.infoLabels.pop("episode", None) self.item.infoLabels.pop("episode", None)
if not self.item.infoLabels["year"]:
self.dialog.close()
platformtools.dialog_notification("Sin resultados. Falta información del año del video", "No hay info de la %s solicitada" % tipo)
global mainWindow
self.close()
del mainWindow
return
tmdb.set_infoLabels_item(self.item, True) tmdb.set_infoLabels_item(self.item, True)
self.infoLabels = self.item.infoLabels self.infoLabels = self.item.infoLabels
self.infoLabels["season"] = info_copy.get("season", None) self.infoLabels["season"] = info_copy.get("season", None)
@@ -112,7 +122,7 @@ class main(xbmcgui.WindowDialog):
titulo = "[COLOR olive][B]%s[/B][/COLOR]" % self.infoLabels.get("title") titulo = "[COLOR olive][B]%s[/B][/COLOR]" % self.infoLabels.get("title")
try: try:
if not self.infoLabels.get("rating"): if not self.infoLabels.get("rating"):
rating = "[COLOR crimson][B]Sin puntuación[/B][/COLOR]" rating = "[COLOR crimson][B]N/A[/B][/COLOR]"
elif self.infoLabels.get("rating") >= 5 and self.infoLabels.get("rating") < 8: elif self.infoLabels.get("rating") >= 5 and self.infoLabels.get("rating") < 8:
rating = "[COLOR springgreen][B]%s[/B][/COLOR]" % self.infoLabels["rating"] rating = "[COLOR springgreen][B]%s[/B][/COLOR]" % self.infoLabels["rating"]
elif self.infoLabels.get("rating") >= 8: elif self.infoLabels.get("rating") >= 8:
@@ -123,8 +133,8 @@ class main(xbmcgui.WindowDialog):
rating = "[COLOR crimson][B]%s[/B][/COLOR]" % self.infoLabels["rating"] rating = "[COLOR crimson][B]%s[/B][/COLOR]" % self.infoLabels["rating"]
self.dialog.update(40, self.dialog.update(40,
'[COLOR teal]Registrando[/COLOR]' + '[COLOR yellow][B] film[/B][/COLOR]' + '[COLOR floralwhite][B]affinity.......[/B][/COLOR]') 'Registrando filmaffinity.......')
critica, rating_fa, plot_fa = get_filmaf(self.item, self.infoLabels) rating_fa, plot_fa = get_filmaf(self.item, self.infoLabels)
if not self.infoLabels.get("plot") and plot_fa: if not self.infoLabels.get("plot") and plot_fa:
self.infoLabels["plot"] = "[COLOR moccasin][B]%s[/B][/COLOR]" % plot_fa self.infoLabels["plot"] = "[COLOR moccasin][B]%s[/B][/COLOR]" % plot_fa
elif not self.infoLabels["plot"]: elif not self.infoLabels["plot"]:
@@ -132,7 +142,7 @@ class main(xbmcgui.WindowDialog):
else: else:
self.infoLabels["plot"] = "[COLOR moccasin][B]%s[/B][/COLOR]" % self.infoLabels.get("plot") self.infoLabels["plot"] = "[COLOR moccasin][B]%s[/B][/COLOR]" % self.infoLabels.get("plot")
self.dialog.update(60, '[COLOR khaki]Indagando recomendaciones.......[/COLOR]') self.dialog.update(60, 'Indagando recomendaciones.......')
thread1 = Thread(target=get_recomendations, args=[self.item, self.infoLabels, self.recomendaciones]) thread1 = Thread(target=get_recomendations, args=[self.item, self.infoLabels, self.recomendaciones])
thread1.setDaemon(True) thread1.setDaemon(True)
thread1.start() thread1.start()
@@ -173,7 +183,7 @@ class main(xbmcgui.WindowDialog):
if self.item.contentType != "movie": if self.item.contentType != "movie":
self.dialog.update(60, self.dialog.update(60,
'[COLOR teal]Recopilando imágenes en [/COLOR]' + '[COLOR floralwhite][B]FAN[/B][/COLOR]' + '[COLOR slategray][B]ART.[/B][/COLOR]' + '[COLOR darkgray]TV.......[/COLOR]') 'Recopilando imágenes en FANART.TV')
try: try:
###Busca música serie ###Busca música serie
titulo = re.sub('\[.*?\]', '', titulo) titulo = re.sub('\[.*?\]', '', titulo)
@@ -199,11 +209,9 @@ class main(xbmcgui.WindowDialog):
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
if xbmc.Player().isPlaying(): if xbmc.Player().isPlaying():
self.dialog.update(80, self.dialog.update(80, 'Afinado instrumentos en Vtunes')
'[COLOR teal]Afinado instrumentos en [/COLOR]' + '[COLOR cyan][B]T[/B][/COLOR]' + '[COLOR paleturquoise][B]V[/B][/COLOR]' + '[COLOR floralwhite]tu[/COLOR]' + '[COLOR darkgray][B]n[/B][/COLOR]' + '[COLOR slategray][B]es[/B][/COLOR]')
else: else:
self.dialog.update(80, self.dialog.update(80, 'Recopilando imágenes en FANART.TV')
'[COLOR teal]Recopilando imágenes en [/COLOR]' + '[COLOR floralwhite][B]FAN[/B][/COLOR]' + '[COLOR slategray][B]ART.[/B][/COLOR]' + '[COLOR darkgray]TV.......[/COLOR]')
while thread2.isAlive(): while thread2.isAlive():
xbmc.sleep(100) xbmc.sleep(100)
@@ -267,41 +275,35 @@ class main(xbmcgui.WindowDialog):
skin = xbmc.getSkinDir() skin = xbmc.getSkinDir()
self.fonts = get_fonts(skin) self.fonts = get_fonts(skin)
self.setCoordinateResolution(2) self.setCoordinateResolution(2)
self.actorButton = xbmcgui.ControlButton(650, 50, 60, 60, '', font='Font40', alignment=0x00000006, self.actorButton = xbmcgui.ControlButton(995, 475, 55, 55, '', font='Font40', alignment=0x00000006,
noFocusTexture='http://i.imgur.com/yK4LCqB.png', noFocusTexture='https://s17.postimg.org/40acsuihb/thumb_search_star_no.png',
focusTexture='http://s6.postimg.org/djdkrpz0x/starzen.png', focusTexture='https://s33.postimg.org/ikk0qyvrj/thumb_search_star.png',
focusedColor='0xFFAAAAAA') focusedColor='0xFFAAAAAA')
self.trailerButton = xbmcgui.ControlButton(550, 50, 60, 60, '', font='Font40', alignment=0x00000006, self.trailerButton = xbmcgui.ControlButton(910, 475, 55, 55, '', font='Font40', alignment=0x00000006,
noFocusTexture='http://s6.postimg.org/dbs8k30r5/zentrailer.png', noFocusTexture='https://s17.postimg.org/774wcgv7j/thumb_search_trailer_no.png',
focusTexture='http://s6.postimg.org/jqr9gr7gx/zentrailerfocused.png') focusTexture='https://s17.postimg.org/o9tfjmqvz/thumb_search_trailer.png')
self.background = xbmcgui.ControlImage(-40, -40, 1500, 830, 'http://imgur.com/ur6H9Ps.png') self.background = xbmcgui.ControlImage(-40, -40, 1500, 830, 'http://imgur.com/ur6H9Ps.png')
self.title = xbmcgui.ControlTextBox(120, 0, 1130, 50) self.title = xbmcgui.ControlTextBox(120, 8, 1130, 50, self.fonts["16"])
self.rating = xbmcgui.ControlTextBox(415, 37, 1040, 50) self.rating = xbmcgui.ControlTextBox(260, 112, 1040, 50)
self.rating_filma = xbmcgui.ControlTextBox(417, 112, 1043, 50) self.rating_filma = xbmcgui.ControlTextBox(417, 112, 1043, 50)
self.tagline = xbmcgui.ControlFadeLabel(120, 70, 420, 45, self.fonts["12"]) self.tagline = xbmcgui.ControlFadeLabel(117, 50, 420, 45, self.fonts["12"])
self.plot = xbmcgui.ControlTextBox(117, 150, 1056, 150) self.plot = xbmcgui.ControlTextBox(117, 145, 700, 600)
self.critica = xbmcgui.ControlTextBox(20, 386, 1056, 100, self.fonts["12"])
self.fanart = xbmcgui.ControlImage(-40, -40, 1500, 830, self.infoLabels.get("fanart", "")) self.fanart = xbmcgui.ControlImage(-40, -40, 1500, 830, self.infoLabels.get("fanart", ""))
self.critica_image = xbmcgui.ControlImage(120, 300, 200, 90, 'http://imgur.com/kGmaIER.png') self.poster = xbmcgui.ControlImage(860, 140, 350, 330, self.item.thumbnail)
self.icon = xbmcgui.ControlImage(360, 30, 40, 40, icono) self.icon = xbmcgui.ControlImage(200, 100, 40, 40, icono)
self.fa_icon = xbmcgui.ControlImage(350, 100, 60, 60, "http://s6.postimg.org/6yhe5fgy9/filma.png") self.fa_icon = xbmcgui.ControlImage(350, 100, 60, 60, "http://s6.postimg.org/6yhe5fgy9/filma.png")
self.addControl(self.fanart) self.addControl(self.fanart)
if set_animation:
self.fanart.setAnimations([('conditional', 'effect=rotatey start=100% end=0% time=1500 condition=true',), self.fanart.setAnimations([('conditional', 'effect=rotatey start=100% end=0% time=1500 condition=true',),
('unfocus', 'effect=zoom start=110% end=100% time=1000 tween=elastic easing=out',), ( ('unfocus', 'effect=zoom start=110% end=100% time=1000 tween=elastic easing=out',), (
'WindowClose', 'WindowClose',
'effect=rotatey delay= 1000 start=0% end=-300% time=800 condition=true',)]) 'effect=rotatey delay= 1000 start=0% end=-300% time=800 condition=true',)])
self.addControl(self.background) self.addControl(self.background)
self.addControl(self.critica_image)
self.critica_image.setAnimations(
[('conditional', 'effect=rotatey center=500 start=300% end=0% time=3000 condition=true ',),
('unfocus', 'effect=zoom start=110% end=100% time=1000 tween=elastic easing=out',),
('focus', 'effect=zoom start=80% end=110% time=700',),
('WindowClose', 'effect=rotatey center=500 start=0% end=-300% time=800 condition=true',)])
self.addControl(self.trailerButton) self.addControl(self.trailerButton)
self.botones.append(self.trailerButton) self.botones.append(self.trailerButton)
if set_animation:
self.trailerButton.setAnimations( self.trailerButton.setAnimations(
[('conditional', 'effect=slide start=-1500% end=0% delay=1200 time=4000 condition=true tween=elastic',), [('conditional', 'effect=slide start=-1500% end=0% delay=1200 time=4000 condition=true tween=elastic',),
('unfocus', 'effect=zoom start=110% end=100% time=1000 tween=elastic easing=out',), ('unfocus', 'effect=zoom start=110% end=100% time=1000 tween=elastic easing=out',),
@@ -309,6 +311,7 @@ class main(xbmcgui.WindowDialog):
('WindowClose', 'effect=slide start=0% end=-1500% time=800 condition=true',)]) ('WindowClose', 'effect=slide start=0% end=-1500% time=800 condition=true',)])
self.addControl(self.actorButton) self.addControl(self.actorButton)
self.botones.append(self.actorButton) self.botones.append(self.actorButton)
if set_animation:
self.actorButton.setAnimations( self.actorButton.setAnimations(
[('conditional', 'effect=slide start=1500% end=0% delay=1200 time=4000 condition=true tween=elastic',), [('conditional', 'effect=slide start=1500% end=0% delay=1200 time=4000 condition=true tween=elastic',),
('unfocus', 'effect=zoom start=110% end=100% time=1000 tween=elastic easing=out',), ('unfocus', 'effect=zoom start=110% end=100% time=1000 tween=elastic easing=out',),
@@ -317,49 +320,54 @@ class main(xbmcgui.WindowDialog):
self.setFocus(self.trailerButton) self.setFocus(self.trailerButton)
self.addControl(self.title) self.addControl(self.title)
if set_animation:
self.title.setAnimations([('conditional', 'effect=fade start=0% end=100% delay=1500 time=1500 condition=true',), self.title.setAnimations([('conditional', 'effect=fade start=0% end=100% delay=1500 time=1500 condition=true',),
('WindowClose', 'effect=fade start=100% end=0% time=800 condition=true',)]) ('WindowClose', 'effect=fade start=100% end=0% time=800 condition=true',)])
self.addControl(self.tagline) self.addControl(self.tagline)
if set_animation:
self.tagline.setAnimations( self.tagline.setAnimations(
[('conditional', 'effect=fade start=0% end=100% delay=2000 time=1500 condition=true',), [('conditional', 'effect=fade start=0% end=100% delay=2000 time=1500 condition=true',),
('WindowClose', 'effect=fade start=100% end=0% time=800 condition=true',)]) ('WindowClose', 'effect=fade start=100% end=0% time=800 condition=true',)])
if self.item.contentType == "movie" and self.infoLabels.get("duration", 0): if self.item.contentType == "movie" and self.infoLabels.get("duration", 0):
self.duration = xbmcgui.ControlTextBox(120, 100, 420, 45, self.fonts["12"]) self.duration = xbmcgui.ControlTextBox(120, 70, 420, 45, self.fonts["12"])
self.addControl(self.duration) self.addControl(self.duration)
if set_animation:
self.duration.setAnimations( self.duration.setAnimations(
[('conditional', 'effect=fade start=0% end=100% delay=2000 time=1500 condition=true',), [('conditional', 'effect=fade start=0% end=100% delay=2000 time=1500 condition=true',),
('WindowClose', 'effect=fade start=100% end=0% time=800 condition=true',)]) ('WindowClose', 'effect=fade start=100% end=0% time=800 condition=true',)])
self.duration.setText( self.duration.setText(
"[COLOR mediumturquoise][B]Duración: %s minutos[/B][/COLOR]" % self.infoLabels["duration"]) "[COLOR mediumturquoise][B]Duración: %s minutos[/B][/COLOR]" % self.infoLabels["duration"])
self.addControl(self.rating) self.addControl(self.rating)
if set_animation:
self.rating.setAnimations( self.rating.setAnimations(
[('conditional', 'effect=rotatey start=100% end=0% delay=3000 time=1500 condition=true',), [('conditional', 'effect=rotatey start=100% end=0% delay=3000 time=1500 condition=true',),
('WindowClose', 'effect=rotatey start=0% end=100% time=800 condition=true',)]) ('WindowClose', 'effect=rotatey start=0% end=100% time=800 condition=true',)])
self.addControl(self.rating_filma) self.addControl(self.rating_filma)
if set_animation:
self.rating_filma.setAnimations( self.rating_filma.setAnimations(
[('conditional', 'effect=rotatey start=100% end=0% delay=3000 time=1500 condition=true',), [('conditional', 'effect=rotatey start=100% end=0% delay=3000 time=1500 condition=true',),
('WindowClose', 'effect=rotatey start=0% end=100% time=800 condition=true',)]) ('WindowClose', 'effect=rotatey start=0% end=100% time=800 condition=true',)])
self.addControl(self.plot) self.addControl(self.plot)
if set_animation:
self.plot.setAnimations( self.plot.setAnimations(
[('conditional', 'effect=slide delay=2000 start=1500 time=3600 tween=elastic easing=inout condition=true',), [('conditional', 'effect=slide delay=2000 start=1500 time=3600 tween=elastic easing=inout condition=true',),
('WindowClose', 'effect=zoom center=auto start=100% end=0% time=800 condition=true',)]) ('WindowClose', 'effect=zoom center=auto start=100% end=0% time=800 condition=true',)])
self.addControl(self.critica)
self.critica.setAnimations([('conditional',
'effect=slide delay=1800 start=-1500% end=100% time=3600 tween=elastic easing=inout condition=true',),
('WindowClose', 'effect=slide start=100% end=-1500% time=800 condition=true',)])
self.addControl(self.poster)
if not self.infoLabels.get("images") and not self.images: if not self.infoLabels.get("images") and not self.images:
self.thumbnail = xbmcgui.ControlImage(813, 0, 390, 150, 'http://i.imgur.com/oMjtYni.png') self.thumbnail = xbmcgui.ControlImage(860, 0, 390, 150, 'http://i.imgur.com/oMjtYni.png')
self.addControl(self.thumbnail) self.addControl(self.thumbnail)
if set_animation:
self.thumbnail.setAnimations( self.thumbnail.setAnimations(
[('conditional', 'effect=zoom delay=2000 center=auto start=0 end=100 time=800 condition=true',), ( [('conditional', 'effect=zoom delay=2000 center=auto start=0 end=100 time=800 condition=true',), (
'conditional', 'conditional',
'effect=rotate delay=2000 center=auto aceleration=6000 start=0% end=360% time=800 condition=true',), 'effect=rotate delay=2000 center=auto aceleration=6000 start=0% end=360% time=800 condition=true',),
('WindowClose', 'effect=zoom start=100% end=0% time=600 condition=true',)]) ('WindowClose', 'effect=zoom start=100% end=0% time=600 condition=true',)])
else: else:
self.thumbnail = xbmcgui.ControlButton(813, 0, 390, 150, '', self.infoLabels.get("thumbnail", ""), self.thumbnail = xbmcgui.ControlButton(860, 0, 350, 150, '', self.infoLabels.get("thumbnail", ""),
self.infoLabels.get("thumbnail", "")) self.infoLabels.get("thumbnail", ""))
self.addControl(self.thumbnail) self.addControl(self.thumbnail)
if set_animation:
self.thumbnail.setAnimations( self.thumbnail.setAnimations(
[('conditional', 'effect=zoom delay=2000 center=auto start=0 end=100 time=800 condition=true',), ( [('conditional', 'effect=zoom delay=2000 center=auto start=0 end=100 time=800 condition=true',), (
'conditional', 'conditional',
@@ -370,12 +378,14 @@ class main(xbmcgui.WindowDialog):
self.botones.append(self.thumbnail) self.botones.append(self.thumbnail)
self.addControl(self.icon) self.addControl(self.icon)
if set_animation:
self.icon.setAnimations( self.icon.setAnimations(
[('conditional', 'effect=slide start=0,-700 delay=2000 time=2500 tween=bounce condition=true',), ( [('conditional', 'effect=slide start=0,-700 delay=2000 time=2500 tween=bounce condition=true',), (
'conditional', 'conditional',
'effect=rotate center=auto start=0% end=360% delay=3000 time=2500 tween=bounce condition=true',), 'effect=rotate center=auto start=0% end=360% delay=3000 time=2500 tween=bounce condition=true',),
('WindowClose', 'effect=slide end=0,-700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,-700% time=1000 condition=true',)])
self.addControl(self.fa_icon) self.addControl(self.fa_icon)
if set_animation:
self.fa_icon.setAnimations( self.fa_icon.setAnimations(
[('WindowOpen', 'effect=slide start=0,-700 delay=3000 time=2500 tween=bounce condition=true',), [('WindowOpen', 'effect=slide start=0,-700 delay=3000 time=2500 tween=bounce condition=true',),
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
@@ -387,14 +397,10 @@ class main(xbmcgui.WindowDialog):
try: try:
self.plot.autoScroll(11000, 6000, 30000) self.plot.autoScroll(11000, 6000, 30000)
self.critica.autoScroll(11000, 2500, 13000)
except: except:
xbmc.executebuiltin( xbmc.executebuiltin(
'Notification([COLOR red][B]Actualiza Kodi a su última versión[/B][/COLOR], [COLOR skyblue]para mejor info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")') 'Notification([COLOR red][B]Actualiza Kodi a su última versión[/B][/COLOR], [COLOR skyblue]para mejor info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")')
self.plot.setText(dhe(self.infoLabels.get("plot", ""))) self.plot.setText(dhe(self.infoLabels.get("plot", "")))
self.critica.setText(critica)
self.critica_butt = xbmcgui.ControlButton(20, 386, 1056, 100, '', '', '')
self.addControl(self.critica_butt)
xbmc.sleep(200) xbmc.sleep(200)
self.mas_pelis = 8 self.mas_pelis = 8
@@ -406,6 +412,7 @@ class main(xbmcgui.WindowDialog):
self.btn_left = xbmcgui.ControlButton(90, 490, 70, 29, '', "http://s6.postimg.org/i3pnobu6p/redarrow.png", self.btn_left = xbmcgui.ControlButton(90, 490, 70, 29, '', "http://s6.postimg.org/i3pnobu6p/redarrow.png",
"http://s6.postimg.org/i3pnobu6p/redarrow.png") "http://s6.postimg.org/i3pnobu6p/redarrow.png")
self.addControl(self.btn_left) self.addControl(self.btn_left)
if set_animation:
self.btn_left.setAnimations( self.btn_left.setAnimations(
[('conditional', 'effect=zoom start=-100 end=100 delay=5000 time=2000 condition=true tween=bounce',), ( [('conditional', 'effect=zoom start=-100 end=100 delay=5000 time=2000 condition=true tween=bounce',), (
'conditional', 'conditional',
@@ -431,6 +438,7 @@ class main(xbmcgui.WindowDialog):
if len(self.recomendaciones) != 0: if len(self.recomendaciones) != 0:
self.tpi = xbmcgui.ControlImage(200, 490, 100, 41, 'http://imgur.com/GNP2QcB.png') self.tpi = xbmcgui.ControlImage(200, 490, 100, 41, 'http://imgur.com/GNP2QcB.png')
self.addControl(self.tpi) self.addControl(self.tpi)
if set_animation:
self.tpi.setAnimations([('conditional', self.tpi.setAnimations([('conditional',
'effect=rotatey start=200 end=0 delay=6200 time=900 tween=elastic condition=true',), 'effect=rotatey start=200 end=0 delay=6200 time=900 tween=elastic condition=true',),
('unfocus', ('unfocus',
@@ -439,6 +447,7 @@ class main(xbmcgui.WindowDialog):
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
if count < 8: if count < 8:
self.addControl(self.image) self.addControl(self.image)
if set_animation:
self.image.setAnimations([('conditional', self.image.setAnimations([('conditional',
'effect=rotatey start=200 end=0 delay=6200 time=900 tween=elastic condition=true',), 'effect=rotatey start=200 end=0 delay=6200 time=900 tween=elastic condition=true',),
('unfocus', ('unfocus',
@@ -448,12 +457,14 @@ class main(xbmcgui.WindowDialog):
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
self.addControl(fadelabel) self.addControl(fadelabel)
fadelabel.addLabel(peli) fadelabel.addLabel(peli)
if set_animation:
fadelabel.setAnimations([('conditional', fadelabel.setAnimations([('conditional',
'effect=rotatey start=200 end=0 delay=6200 time=900 tween=elastic condition=true',), 'effect=rotatey start=200 end=0 delay=6200 time=900 tween=elastic condition=true',),
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
self.addControl(self.neon) self.addControl(self.neon)
self.neon.setVisibleCondition('[Control.HasFocus(' + str(self.image.getId()) + ')]') self.neon.setVisibleCondition('[Control.HasFocus(' + str(self.image.getId()) + ')]')
if set_animation:
self.neon.setAnimations([('conditional', self.neon.setAnimations([('conditional',
'effect=rotate center=auto start=0% end=360% time=650 tween=bounce condition=Control.HasFocus(' + str( 'effect=rotate center=auto start=0% end=360% time=650 tween=bounce condition=Control.HasFocus(' + str(
self.image.getId()) + ')',), self.image.getId()) + ')',),
@@ -472,6 +483,7 @@ class main(xbmcgui.WindowDialog):
"http://s6.postimg.org/j4uhr70k1/greenarrow.png", "http://s6.postimg.org/j4uhr70k1/greenarrow.png",
"http://s6.postimg.org/j4uhr70k1/greenarrow.png") "http://s6.postimg.org/j4uhr70k1/greenarrow.png")
self.addControl(self.btn_right) self.addControl(self.btn_right)
if set_animation:
self.btn_right.setAnimations( self.btn_right.setAnimations(
[('conditional', 'effect=slide start=-3000 end=0 delay=6200 time=2000 condition=true tween=bounce',), ( [('conditional', 'effect=slide start=-3000 end=0 delay=6200 time=2000 condition=true tween=bounce',), (
'conditional', 'conditional',
@@ -480,16 +492,10 @@ class main(xbmcgui.WindowDialog):
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
self.botones.append(self.btn_right) self.botones.append(self.btn_right)
xbmc.sleep(200) xbmc.sleep(200)
self.global_search = xbmcgui.ControlButton(1080, 475, 55, 55, '', noFocusTexture='https://s17.postimg.org/u9vfbj1sv/thumb_search_no.png',
self.lupam = xbmcgui.ControlImage(820, 320, 60, 60, "http://imgur.com/VDdB0Uw.png") focusTexture='https://s17.postimg.org/gc289lvvz/thumb_search.png')
self.addControl(self.lupam)
self.lupam.setAnimations(
[('conditional', 'effect=slide start=1500 delay=7020 time=200 tween=elastic condition=true',),
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
self.global_search = xbmcgui.ControlButton(916, 320, 140, 53, '', 'http://imgur.com/hoOvpHV.png',
'http://imgur.com/hoOvpHV.png')
self.addControl(self.global_search) self.addControl(self.global_search)
if set_animation:
self.global_search.setAnimations( self.global_search.setAnimations(
[('conditional', 'effect=slide start=0,700 delay=6200 time=900 condition=true',), [('conditional', 'effect=slide start=0,700 delay=6200 time=900 condition=true',),
('unfocus', 'effect=zoom center=auto start=70% end=100% time=700 reversible=false',), ('unfocus', 'effect=zoom center=auto start=70% end=100% time=700 reversible=false',),
@@ -510,6 +516,7 @@ class main(xbmcgui.WindowDialog):
self.item.thumb_busqueda) self.item.thumb_busqueda)
self.addControl(self.buscar) self.addControl(self.buscar)
self.botones.insert(4, self.buscar) self.botones.insert(4, self.buscar)
if set_animation:
self.buscar.setAnimations( self.buscar.setAnimations(
[('conditional', 'effect=slide start=0,700 delay=6200 time=900 condition=true',), [('conditional', 'effect=slide start=0,700 delay=6200 time=900 condition=true',),
('unfocus', 'effect=zoom center=auto start=70% end=100% time=700 reversible=false',), ('unfocus', 'effect=zoom center=auto start=70% end=100% time=700 reversible=false',),
@@ -619,12 +626,14 @@ class main(xbmcgui.WindowDialog):
self.buscar.setVisible(False) self.buscar.setVisible(False)
self.notfound = xbmcgui.ControlImage(800, 520, 300, 120, "http://imgur.com/V1xs9pT.png") self.notfound = xbmcgui.ControlImage(800, 520, 300, 120, "http://imgur.com/V1xs9pT.png")
self.addControl(self.notfound) self.addControl(self.notfound)
if set_animation:
self.notfound.setAnimations( self.notfound.setAnimations(
[('conditional', 'effect=zoom center=auto start=500% end=0% time=2000 condition=true',)]) [('conditional', 'effect=zoom center=auto start=500% end=0% time=2000 condition=true',)])
else: else:
self.global_search.setVisible(False) self.global_search.setVisible(False)
self.notfound = xbmcgui.ControlImage(800, 520, 300, 120, "http://imgur.com/V1xs9pT.png") self.notfound = xbmcgui.ControlImage(800, 520, 300, 120, "http://imgur.com/V1xs9pT.png")
self.addControl(self.notfound) self.addControl(self.notfound)
if set_animation:
self.notfound.setAnimations( self.notfound.setAnimations(
[('conditional', 'effect=zoom center=auto start=500% end=0% time=2000 condition=true',)]) [('conditional', 'effect=zoom center=auto start=500% end=0% time=2000 condition=true',)])
elif control == self.btn_right: elif control == self.btn_right:
@@ -637,6 +646,7 @@ class main(xbmcgui.WindowDialog):
count += 1 count += 1
elif i > self.mas_pelis and count < 16: elif i > self.mas_pelis and count < 16:
self.addControl(afoto) self.addControl(afoto)
if set_animation:
afoto.setAnimations([('conditional', afoto.setAnimations([('conditional',
'effect=rotatey start=200 end=0 time=900 delay=200 tween=elastic condition=true',), 'effect=rotatey start=200 end=0 time=900 delay=200 tween=elastic condition=true',),
('unfocus', ('unfocus',
@@ -646,12 +656,14 @@ class main(xbmcgui.WindowDialog):
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
self.addControl(fadelabel) self.addControl(fadelabel)
fadelabel.addLabel(peli) fadelabel.addLabel(peli)
if set_animation:
fadelabel.setAnimations( fadelabel.setAnimations(
[('conditional', 'effect=rotatey start=200 end=0 time=900 tween=elastic condition=true',), [('conditional', 'effect=rotatey start=200 end=0 time=900 tween=elastic condition=true',),
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
self.addControl(neon) self.addControl(neon)
neon.setVisibleCondition('[Control.HasFocus(' + str(afoto.getId()) + ')]') neon.setVisibleCondition('[Control.HasFocus(' + str(afoto.getId()) + ')]')
if set_animation:
neon.setAnimations([('conditional', neon.setAnimations([('conditional',
'effect=rotate center=auto start=0% end=360% time=650 tween=bounce condition=Control.HasFocus(' + str( 'effect=rotate center=auto start=0% end=360% time=650 tween=bounce condition=Control.HasFocus(' + str(
afoto.getId()) + ')',), afoto.getId()) + ')',),
@@ -692,6 +704,7 @@ class main(xbmcgui.WindowDialog):
resta2 = 8 resta2 = 8
if i > len_pelis - resta and count < 8: if i > len_pelis - resta and count < 8:
self.addControl(afoto) self.addControl(afoto)
if set_animation:
afoto.setAnimations( afoto.setAnimations(
[('conditional', 'effect=rotatey start=200 end=0 time=900 tween=elastic condition=true',), [('conditional', 'effect=rotatey start=200 end=0 time=900 tween=elastic condition=true',),
('unfocus', 'effect=zoom center=auto start=70% end=100% time=700 reversible=false',), ('unfocus', 'effect=zoom center=auto start=70% end=100% time=700 reversible=false',),
@@ -699,12 +712,14 @@ class main(xbmcgui.WindowDialog):
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
self.addControl(fadelabel) self.addControl(fadelabel)
fadelabel.addLabel(peli) fadelabel.addLabel(peli)
if set_animation:
fadelabel.setAnimations( fadelabel.setAnimations(
[('conditional', 'effect=rotatey start=200 end=0 time=900 tween=elastic condition=true',), [('conditional', 'effect=rotatey start=200 end=0 time=900 tween=elastic condition=true',),
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
self.addControl(neon) self.addControl(neon)
neon.setVisibleCondition('[Control.HasFocus(' + str(afoto.getId()) + ')]') neon.setVisibleCondition('[Control.HasFocus(' + str(afoto.getId()) + ')]')
if set_animation:
neon.setAnimations([('conditional', neon.setAnimations([('conditional',
'effect=rotate center=auto start=0% end=360% time=650 tween=bounce condition=Control.HasFocus(' + str( 'effect=rotate center=auto start=0% end=360% time=650 tween=bounce condition=Control.HasFocus(' + str(
afoto.getId()) + ')',), afoto.getId()) + ')',),
@@ -725,8 +740,8 @@ class main(xbmcgui.WindowDialog):
else: else:
for boton, peli, id, poster2 in self.idps: for boton, peli, id, poster2 in self.idps:
if control == boton: if control == boton:
dialog = platformtools.dialog_progress("[COLOR darkturquoise][B]Cargando nueva info[/B][/COLOR]", dialog = platformtools.dialog_progress("Cargando nueva info",
"[COLOR lightyellow]Buscando en [/COLOR][COLOR springgreen][B]Tmdb.......[/B][/COLOR]") "Buscando en Tmdb.......")
tipo = self.item.contentType tipo = self.item.contentType
if tipo != "movie": if tipo != "movie":
tipo = "tv" tipo = "tv"
@@ -753,7 +768,7 @@ class related(xbmcgui.WindowDialog):
try: try:
if not self.infoLabels.get("rating"): if not self.infoLabels.get("rating"):
rating = "[COLOR crimson][B]Sin puntuación[/B][/COLOR]" rating = "[COLOR crimson][B]N/A[/B][/COLOR]"
elif self.infoLabels["rating"] >= 5 and self.infoLabels["rating"] < 8: elif self.infoLabels["rating"] >= 5 and self.infoLabels["rating"] < 8:
rating = "[COLOR springgreen][B]%s[/B][/COLOR]" % self.infoLabels["rating"] rating = "[COLOR springgreen][B]%s[/B][/COLOR]" % self.infoLabels["rating"]
elif self.infoLabels["rating"] >= 8: elif self.infoLabels["rating"] >= 8:
@@ -790,26 +805,30 @@ class related(xbmcgui.WindowDialog):
logger.error(traceback.format_exc()) logger.error(traceback.format_exc())
self.setCoordinateResolution(2) self.setCoordinateResolution(2)
self.background = xbmcgui.ControlImage(78, 50, 1053, 634, self.infoLabels.get("fanart", self.background = xbmcgui.ControlImage(178, 50, 1053, 634, self.infoLabels.get("fanart",
"http://s6.postimg.org/fflvear2p/nofanart.png")) "http://s6.postimg.org/fflvear2p/nofanart.png"))
self.addControl(self.background) self.addControl(self.background)
if set_animation:
self.background.setAnimations( self.background.setAnimations(
[('conditional', 'effect=slide start=1000% end=100% delay=670 time=2500 condition=true',), [('conditional', 'effect=slide start=1000% end=0% delay=670 time=2500 condition=true',),
('WindowClose', 'effect=slide end=-2000% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=-2000% time=1000 condition=true',)])
self.shadow = xbmcgui.ControlImage(75, 43, 1061, 649, 'http://s6.postimg.org/k05dw264x/marc_fanart.png') self.shadow = xbmcgui.ControlImage(175, 43, 1061, 649, 'http://s6.postimg.org/k05dw264x/marc_fanart.png')
self.addControl(self.shadow) self.addControl(self.shadow)
if set_animation:
self.shadow.setAnimations( self.shadow.setAnimations(
[('conditional', 'effect=slide start=1000% end=100% delay=660 time=2500 condition=true',), [('conditional', 'effect=slide start=1000% end=0% delay=660 time=2500 condition=true',),
('WindowClose', 'effect=slide end=-2000% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=-2000% time=1000 condition=true',)])
self.star = xbmcgui.ControlImage(955, 55, 67, 67, "http://s6.postimg.org/jzn0d3clt/star.png") self.star = xbmcgui.ControlImage(955, 55, 67, 67, "http://s6.postimg.org/jzn0d3clt/star.png")
self.addControl(self.star) self.addControl(self.star)
if set_animation:
self.star.setAnimations([('conditional', 'effect=slide delay=6000 start=2000 time=800 condition=true',), self.star.setAnimations([('conditional', 'effect=slide delay=6000 start=2000 time=800 condition=true',),
('WindowClose', 'effect=slide end=0,-700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,-700% time=1000 condition=true',)])
self.puntuacion_peli = xbmcgui.ControlTextBox(977, 78, 35, 35, self.fonts["12"]) self.puntuacion_peli = xbmcgui.ControlTextBox(977, 78, 35, 35, self.fonts["12"])
self.addControl(self.puntuacion_peli) self.addControl(self.puntuacion_peli)
self.puntuacion_peli.setText(rating) self.puntuacion_peli.setText(rating)
if set_animation:
self.puntuacion_peli.setAnimations( self.puntuacion_peli.setAnimations(
[('conditional', 'effect=slide delay=6000 start=2000 time=800 condition=true',), [('conditional', 'effect=slide delay=6000 start=2000 time=800 condition=true',),
('WindowClose', 'effect=slide end=0,-700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,-700% time=1000 condition=true',)])
@@ -824,6 +843,7 @@ class related(xbmcgui.WindowDialog):
xbmc.executebuiltin( xbmc.executebuiltin(
'Notification([COLOR red][B]Actualiza Kodi a su última versión[/B][/COLOR], [COLOR skyblue]para mejor info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")') 'Notification([COLOR red][B]Actualiza Kodi a su última versión[/B][/COLOR], [COLOR skyblue]para mejor info[/COLOR],8000, "http://i.imgur.com/mHgwcn3.png")')
self.info_peli.setText(self.info) self.info_peli.setText(self.info)
if set_animation:
self.info_peli.setAnimations( self.info_peli.setAnimations(
[('conditional', 'effect=fade start=0% end=100% delay=3600 time=800 condition=true',), ( [('conditional', 'effect=fade start=0% end=100% delay=3600 time=800 condition=true',), (
'conditional', 'conditional',
@@ -832,6 +852,7 @@ class related(xbmcgui.WindowDialog):
self.poster_peli = xbmcgui.ControlImage(210, 90, 230, 260, self.infoLabels.get("thumbnail", "")) self.poster_peli = xbmcgui.ControlImage(210, 90, 230, 260, self.infoLabels.get("thumbnail", ""))
self.addControl(self.poster_peli) self.addControl(self.poster_peli)
if set_animation:
self.poster_peli.setAnimations([('conditional', self.poster_peli.setAnimations([('conditional',
'effect=zoom center=auto start=0% end=100% delay=2000 time=3000 tween=bounce condition=true',), 'effect=zoom center=auto start=0% end=100% delay=2000 time=3000 tween=bounce condition=true',),
('WindowClose', 'effect=zoom end=0% time=1000 condition=true',)]) ('WindowClose', 'effect=zoom end=0% time=1000 condition=true',)])
@@ -852,6 +873,7 @@ class related(xbmcgui.WindowDialog):
self.tagline_peli = xbmcgui.ControlFadeLabel(290, 55, 490, 260) self.tagline_peli = xbmcgui.ControlFadeLabel(290, 55, 490, 260)
self.addControl(self.tagline_peli) self.addControl(self.tagline_peli)
self.tagline_peli.addLabel(self.infoLabels["tagline"]) self.tagline_peli.addLabel(self.infoLabels["tagline"])
if set_animation:
self.tagline_peli.setAnimations( self.tagline_peli.setAnimations(
[('conditional', 'effect=fade center=auto start=0% end=100% delay=3800 time=2000 condition=true',), [('conditional', 'effect=fade center=auto start=0% end=100% delay=3800 time=2000 condition=true',),
('WindowClose', 'effect=fade end=0% time=500 condition=true',)]) ('WindowClose', 'effect=fade end=0% time=500 condition=true',)])
@@ -861,6 +883,7 @@ class related(xbmcgui.WindowDialog):
self.addControl(self.title_peli) self.addControl(self.title_peli)
self.title_peli.addLabel( self.title_peli.addLabel(
"[COLOR yellow][B]%s[/B][/COLOR]" % self.infoLabels.get("title", self.infoLabels.get("originaltitle"))) "[COLOR yellow][B]%s[/B][/COLOR]" % self.infoLabels.get("title", self.infoLabels.get("originaltitle")))
if set_animation:
self.title_peli.setAnimations( self.title_peli.setAnimations(
[('conditional', 'effect=fade start=0% end=100% delay=2500 time=5000 condition=true',), [('conditional', 'effect=fade start=0% end=100% delay=2500 time=5000 condition=true',),
('WindowClose', 'effect=fade end=0% time=1000 condition=true',)]) ('WindowClose', 'effect=fade end=0% time=1000 condition=true',)])
@@ -868,6 +891,7 @@ class related(xbmcgui.WindowDialog):
self.gt_peli = xbmcgui.ControlTextBox(210, 385, 1100, 60, self.fonts["12"]) self.gt_peli = xbmcgui.ControlTextBox(210, 385, 1100, 60, self.fonts["12"])
self.addControl(self.gt_peli) self.addControl(self.gt_peli)
self.gt_peli.setText("[COLOR limegreen][B]Género: [/B][/COLOR]") self.gt_peli.setText("[COLOR limegreen][B]Género: [/B][/COLOR]")
if set_animation:
self.gt_peli.setAnimations( self.gt_peli.setAnimations(
[('conditional', 'effect=slide start=0,-7000 delay=5750 time=700 condition=true tween=circle easing=in',), [('conditional', 'effect=slide start=0,-7000 delay=5750 time=700 condition=true tween=circle easing=in',),
('WindowClose', 'effect=slide end=0,-7000% time=700 condition=true',)]) ('WindowClose', 'effect=slide end=0,-7000% time=700 condition=true',)])
@@ -875,6 +899,7 @@ class related(xbmcgui.WindowDialog):
self.genero_peli = xbmcgui.ControlFadeLabel(271, 385, 400, 60, self.fonts["12"]) self.genero_peli = xbmcgui.ControlFadeLabel(271, 385, 400, 60, self.fonts["12"])
self.addControl(self.genero_peli) self.addControl(self.genero_peli)
self.genero_peli.addLabel(" [COLOR yellowgreen][B]%s[/B][/COLOR]" % self.infoLabels.get("genre", "---")) self.genero_peli.addLabel(" [COLOR yellowgreen][B]%s[/B][/COLOR]" % self.infoLabels.get("genre", "---"))
if set_animation:
self.genero_peli.setAnimations( self.genero_peli.setAnimations(
[('conditional', 'effect=slide start=0,-7000 delay=5750 time=700 condition=true tween=circle easing=in',), [('conditional', 'effect=slide start=0,-7000 delay=5750 time=700 condition=true tween=circle easing=in',),
('WindowClose', 'effect=slide end=0,-7000% time=700 condition=true',)]) ('WindowClose', 'effect=slide end=0,-7000% time=700 condition=true',)])
@@ -882,13 +907,15 @@ class related(xbmcgui.WindowDialog):
self.pt_peli = xbmcgui.ControlTextBox(210, 410, 307, 60, self.fonts["12"]) self.pt_peli = xbmcgui.ControlTextBox(210, 410, 307, 60, self.fonts["12"])
self.addControl(self.pt_peli) self.addControl(self.pt_peli)
self.pt_peli.setText("[COLOR limegreen][B]Productora: [/B][/COLOR]") self.pt_peli.setText("[COLOR limegreen][B]Productora: [/B][/COLOR]")
if set_animation:
self.pt_peli.setAnimations( self.pt_peli.setAnimations(
[('conditional', 'effect=slide start=0,-7000 delay=5700 time=700 condition=true tween=circle easing=in',), [('conditional', 'effect=slide start=0,-7000 delay=5700 time=700 condition=true tween=circle easing=in',),
('WindowClose', 'effect=slide end=0,-7000% delay=100 time=700 condition=true',)]) ('WindowClose', 'effect=slide end=0,-7000% delay=100 time=700 condition=true',)])
self.productora_peli = xbmcgui.ControlFadeLabel(310, 410, 400, 60, self.fonts["12"]) self.productora_peli = xbmcgui.ControlFadeLabel(320, 410, 400, 60, self.fonts["12"])
self.addControl(self.productora_peli) self.addControl(self.productora_peli)
self.productora_peli.addLabel("[COLOR yellowgreen][B]%s[/B][/COLOR]" % self.infoLabels.get("studio", "---")) self.productora_peli.addLabel("[COLOR yellowgreen][B]%s[/B][/COLOR]" % self.infoLabels.get("studio", "---"))
if set_animation:
self.productora_peli.setAnimations( self.productora_peli.setAnimations(
[('conditional', 'effect=slide start=0,-700 delay=5700 time=700 condition=true tween=circle easing=in',), [('conditional', 'effect=slide start=0,-700 delay=5700 time=700 condition=true tween=circle easing=in',),
('WindowClose', 'effect=slide end=0,-7000% delay=100 time=700 condition=true',)]) ('WindowClose', 'effect=slide end=0,-7000% delay=100 time=700 condition=true',)])
@@ -896,6 +923,7 @@ class related(xbmcgui.WindowDialog):
self.paist_peli = xbmcgui.ControlTextBox(210, 435, 400, 60, self.fonts["12"]) self.paist_peli = xbmcgui.ControlTextBox(210, 435, 400, 60, self.fonts["12"])
self.addControl(self.paist_peli) self.addControl(self.paist_peli)
self.paist_peli.setText("[COLOR limegreen][B]País: [/B][/COLOR]") self.paist_peli.setText("[COLOR limegreen][B]País: [/B][/COLOR]")
if set_animation:
self.paist_peli.setAnimations( self.paist_peli.setAnimations(
[('conditional', 'effect=slide start=0,-700 delay=5650 time=700 condition=true tween=circle easing=in',), [('conditional', 'effect=slide start=0,-700 delay=5650 time=700 condition=true tween=circle easing=in',),
('WindowClose', 'effect=slide end=0,-7000% delay=200 time=700 condition=true',)]) ('WindowClose', 'effect=slide end=0,-7000% delay=200 time=700 condition=true',)])
@@ -903,6 +931,7 @@ class related(xbmcgui.WindowDialog):
self.pais_peli = xbmcgui.ControlFadeLabel(247, 435, 400, 60, self.fonts["12"]) self.pais_peli = xbmcgui.ControlFadeLabel(247, 435, 400, 60, self.fonts["12"])
self.addControl(self.pais_peli) self.addControl(self.pais_peli)
self.pais_peli.addLabel(" [COLOR yellowgreen][B]%s[/B][/COLOR]" % self.infoLabels.get("country", "---")) self.pais_peli.addLabel(" [COLOR yellowgreen][B]%s[/B][/COLOR]" % self.infoLabels.get("country", "---"))
if set_animation:
self.pais_peli.setAnimations( self.pais_peli.setAnimations(
[('conditional', 'effect=slide start=0,-700 delay=5650 time=700 condition=true tween=circle easing=in',), [('conditional', 'effect=slide start=0,-700 delay=5650 time=700 condition=true tween=circle easing=in',),
('WindowClose', 'effect=slide end=0,-7000% delay=200 time=700 condition=true',)]) ('WindowClose', 'effect=slide end=0,-7000% delay=200 time=700 condition=true',)])
@@ -910,16 +939,18 @@ class related(xbmcgui.WindowDialog):
self.ft_peli = xbmcgui.ControlTextBox(210, 460, 1100, 60, self.fonts["12"]) self.ft_peli = xbmcgui.ControlTextBox(210, 460, 1100, 60, self.fonts["12"])
self.addControl(self.ft_peli) self.addControl(self.ft_peli)
self.ft_peli.setText("[COLOR limegreen][B]Estreno: [/B][/COLOR]") self.ft_peli.setText("[COLOR limegreen][B]Estreno: [/B][/COLOR]")
if set_animation:
self.ft_peli.setAnimations( self.ft_peli.setAnimations(
[('conditional', 'effect=slide start=0,-700 delay=5600 time=700 condition=true tween=circle easing=in',), [('conditional', 'effect=slide start=0,-700 delay=5600 time=700 condition=true tween=circle easing=in',),
('WindowClose', 'effect=slide end=0,-7000% delay=300 time=700 condition=true',)]) ('WindowClose', 'effect=slide end=0,-7000% delay=300 time=700 condition=true',)])
self.fecha_peli = xbmcgui.ControlFadeLabel(273, 460, 400, 60, self.fonts["12"]) self.fecha_peli = xbmcgui.ControlFadeLabel(280, 460, 400, 60, self.fonts["12"])
self.addControl(self.fecha_peli) self.addControl(self.fecha_peli)
release_date = " [COLOR yellowgreen][B]%s[/B][/COLOR]" % self.infoLabels.get("release_date", release_date = " [COLOR yellowgreen][B]%s[/B][/COLOR]" % self.infoLabels.get("release_date",
self.infoLabels.get("premiered", self.infoLabels.get("premiered",
"---")) "---"))
self.fecha_peli.addLabel(release_date) self.fecha_peli.addLabel(release_date)
if set_animation:
self.fecha_peli.setAnimations( self.fecha_peli.setAnimations(
[('conditional', 'effect=slide start=0,-700 delay=5600 time=700 condition=true tween=circle easing=in',), [('conditional', 'effect=slide start=0,-700 delay=5600 time=700 condition=true tween=circle easing=in',),
('WindowClose', 'effect=slide end=0,-7000% delay=300 time=700 condition=true',)]) ('WindowClose', 'effect=slide end=0,-7000% delay=300 time=700 condition=true',)])
@@ -928,6 +959,7 @@ class related(xbmcgui.WindowDialog):
self.seasons_txt = xbmcgui.ControlTextBox(210, 485, 200, 60, self.fonts["12"]) self.seasons_txt = xbmcgui.ControlTextBox(210, 485, 200, 60, self.fonts["12"])
self.addControl(self.seasons_txt) self.addControl(self.seasons_txt)
self.seasons_txt.setText("[COLOR limegreen][B]Temporadas/Episodios: [/B][/COLOR]") self.seasons_txt.setText("[COLOR limegreen][B]Temporadas/Episodios: [/B][/COLOR]")
if set_animation:
self.seasons_txt.setAnimations([('conditional', self.seasons_txt.setAnimations([('conditional',
'effect=slide start=0,-700 delay=5600 time=700 condition=true tween=circle easing=in',), 'effect=slide start=0,-700 delay=5600 time=700 condition=true tween=circle easing=in',),
('WindowClose', 'effect=slide end=0,-7000% time=700 condition=true',)]) ('WindowClose', 'effect=slide end=0,-7000% time=700 condition=true',)])
@@ -937,6 +969,7 @@ class related(xbmcgui.WindowDialog):
temporadas = " [COLOR yellowgreen][B]%s/%s[/B][/COLOR]" % ( temporadas = " [COLOR yellowgreen][B]%s/%s[/B][/COLOR]" % (
self.infoLabels.get("number_of_seasons"), self.infoLabels.get("number_of_episodes", "---")) self.infoLabels.get("number_of_seasons"), self.infoLabels.get("number_of_episodes", "---"))
self.seasons.addLabel(temporadas) self.seasons.addLabel(temporadas)
if set_animation:
self.seasons.setAnimations([('conditional', self.seasons.setAnimations([('conditional',
'effect=slide start=0,-700 delay=5600 time=700 condition=true tween=circle easing=in',), 'effect=slide start=0,-700 delay=5600 time=700 condition=true tween=circle easing=in',),
( (
@@ -953,19 +986,15 @@ class related(xbmcgui.WindowDialog):
image = "http://i.imgur.com/xQRgLkO.jpg" image = "http://i.imgur.com/xQRgLkO.jpg"
self.actor = xbmcgui.ControlImage(215 + i, 529, 63, 63, image) self.actor = xbmcgui.ControlImage(215 + i, 529, 63, 63, image)
self.addControl(self.actor) self.addControl(self.actor)
if set_animation:
self.actor.setAnimations([('conditional', self.actor.setAnimations([('conditional',
'effect=zoom center=auto start=0% end=100% delay=5800 time=1500 tween=bounce condition=true ',), 'effect=zoom center=auto start=0% end=100% delay=5800 time=1500 tween=bounce condition=true ',),
('WindowClose', ('WindowClose',
'effect=zoom end=0 center=auto delay=100+i time=700 condition=true',)]) 'effect=zoom end=0 center=auto delay=100+i time=700 condition=true',)])
self.circle = xbmcgui.ControlImage(195 + i, 511, 102, 103, "http://s6.postimg.org/u1jewuxzl/act_marco.png")
self.addControl(self.circle)
self.circle.setAnimations([('conditional',
'effect=zoom center=auto start=0 end=100 delay=5800 time=1500 tween=bounce condition=true ',),
('WindowClose',
'effect=zoom end=0 center=auto delay=100+i time=700 condition=true',)])
self.nombre_actor = xbmcgui.ControlFadeLabel(206 + i, 605, 102, 60, self.fonts["12"]) self.nombre_actor = xbmcgui.ControlFadeLabel(206 + i, 605, 102, 60, self.fonts["12"])
self.addControl(self.nombre_actor) self.addControl(self.nombre_actor)
self.nombre_actor.addLabel("[COLOR floralwhite][B]%s[/B][/COLOR]" % actor.get("name")) self.nombre_actor.addLabel("[COLOR floralwhite][B]%s[/B][/COLOR]" % actor.get("name"))
if set_animation:
self.nombre_actor.setAnimations( self.nombre_actor.setAnimations(
[('conditional', 'effect=fade start=0 end=100 delay=5800 time=1500 tween=bounce condition=true ',), [('conditional', 'effect=fade start=0 end=100 delay=5800 time=1500 tween=bounce condition=true ',),
('WindowClose', 'effect=fade end=0 center=auto time=700 condition=true',)]) ('WindowClose', 'effect=fade end=0 center=auto time=700 condition=true',)])
@@ -993,21 +1022,16 @@ class related(xbmcgui.WindowDialog):
self.td = xbmcgui.ControlImage(880 + i, 390, 63, 63, image) self.td = xbmcgui.ControlImage(880 + i, 390, 63, 63, image)
self.addControl(self.td) self.addControl(self.td)
if set_animation:
self.td.setAnimations( self.td.setAnimations(
[('conditional', 'effect=fade start=0% end=100% delay=4200 time=200 condition=true',), [('conditional', 'effect=fade start=0% end=100% delay=4200 time=200 condition=true',),
('conditional', 'effect=slide start=-150,-60 delay=4200 time=450 condition=true tween=elastic',), ('conditional', 'effect=slide start=-150,-60 delay=4200 time=450 condition=true tween=elastic',),
('WindowClose', 'effect=slide end=-2000 center=auto time=700 condition=true',)]) ('WindowClose', 'effect=slide end=-2000 center=auto time=700 condition=true',)])
self.circle = xbmcgui.ControlImage(860 + i, 372, 102, 103,
"http://s6.postimg.org/u1jewuxzl/act_marco.png")
self.addControl(self.circle)
self.circle.setAnimations(
[('conditional', 'effect=fade start=0% end=100% delay=4200 time=200 condition=true',),
('conditional', 'effect=slide start=-200,-200 delay=4200 time=450 condition=true tween=elastic',),
('WindowClose', 'effect=slide end=-2000 center=auto time=700 condition=true',)])
self.nd = xbmcgui.ControlFadeLabel(860 + i, 464, 105, 60, self.fonts["12"]) self.nd = xbmcgui.ControlFadeLabel(860 + i, 464, 105, 60, self.fonts["12"])
self.addControl(self.nd) self.addControl(self.nd)
self.nd.addLabel("[COLOR floralwhite][B]%s[/B][/COLOR]" % crew["name"]) self.nd.addLabel("[COLOR floralwhite][B]%s[/B][/COLOR]" % crew["name"])
if set_animation:
self.nd.setAnimations( self.nd.setAnimations(
[('conditional', 'effect=fade start=0 end=100 delay=4200 time=1500 tween=bounce condition=true',), [('conditional', 'effect=fade start=0 end=100 delay=4200 time=1500 tween=bounce condition=true',),
('WindowClose', 'effect=slide end=2000 center=auto time=700 condition=true',)]) ('WindowClose', 'effect=slide end=2000 center=auto time=700 condition=true',)])
@@ -1017,6 +1041,7 @@ class related(xbmcgui.WindowDialog):
if self.nd: if self.nd:
self.img_dir = xbmcgui.ControlImage(740, 380, 100, 90, "http://s6.postimg.org/k8kl30pe9/director.png") self.img_dir = xbmcgui.ControlImage(740, 380, 100, 90, "http://s6.postimg.org/k8kl30pe9/director.png")
self.addControl(self.img_dir) self.addControl(self.img_dir)
if set_animation:
self.img_dir.setAnimations( self.img_dir.setAnimations(
[('conditional', 'effect=fade start=0 end=100 delay=3200 time=700 condition=true ',), [('conditional', 'effect=fade start=0 end=100 delay=3200 time=700 condition=true ',),
('WindowClose', 'effect=rotate end=-2000 time=700 condition=true',)]) ('WindowClose', 'effect=rotate end=-2000 time=700 condition=true',)])
@@ -1027,6 +1052,7 @@ class related(xbmcgui.WindowDialog):
self.trailer_r = xbmcgui.ControlButton(790, 62, 55, 55, '', 'http://i.imgur.com/cGI2fxC.png', self.trailer_r = xbmcgui.ControlButton(790, 62, 55, 55, '', 'http://i.imgur.com/cGI2fxC.png',
'http://i.imgur.com/cGI2fxC.png') 'http://i.imgur.com/cGI2fxC.png')
self.addControl(self.trailer_r) self.addControl(self.trailer_r)
if set_animation:
self.trailer_r.setAnimations([('conditional', 'effect=slide start=-2000 delay=4000 time=2500 condition=true',), self.trailer_r.setAnimations([('conditional', 'effect=slide start=-2000 delay=4000 time=2500 condition=true',),
('conditional', ('conditional',
'effect=rotate delay=4000 center=auto start=0% end=360% time=2500 condition=true ',), 'effect=rotate delay=4000 center=auto start=0% end=360% time=2500 condition=true ',),
@@ -1038,9 +1064,10 @@ class related(xbmcgui.WindowDialog):
('WindowClose', 'effect=slide end=2000 time=700 condition=true',)]) ('WindowClose', 'effect=slide end=2000 time=700 condition=true',)])
self.botones.append(self.trailer_r) self.botones.append(self.trailer_r)
self.plusinfo = xbmcgui.ControlButton(1090, 20, 100, 100, '', 'http://i.imgur.com/1w5CFCL.png', self.plusinfo = xbmcgui.ControlButton(1090, 50, 100, 100, '', 'http://i.imgur.com/1w5CFCL.png',
'http://i.imgur.com/1w5CFCL.png') 'http://i.imgur.com/1w5CFCL.png')
self.addControl(self.plusinfo) self.addControl(self.plusinfo)
if set_animation:
self.plusinfo.setAnimations( self.plusinfo.setAnimations(
[('conditional', 'effect=slide start=0,-700 delay=5600 time=700 condition=true tween=elastic easing=out',), [('conditional', 'effect=slide start=0,-700 delay=5600 time=700 condition=true tween=elastic easing=out',),
('unfocus', 'effect=zoom center=auto start=70% end=100% time=700 reversible=false',), ('conditional', ('unfocus', 'effect=zoom center=auto start=70% end=100% time=700 reversible=false',), ('conditional',
@@ -1051,6 +1078,7 @@ class related(xbmcgui.WindowDialog):
self.lupam = xbmcgui.ControlImage(950, 580, 60, 60, "http://imgur.com/VDdB0Uw.png") self.lupam = xbmcgui.ControlImage(950, 580, 60, 60, "http://imgur.com/VDdB0Uw.png")
self.addControl(self.lupam) self.addControl(self.lupam)
if set_animation:
self.lupam.setAnimations( self.lupam.setAnimations(
[('conditional', 'effect=slide start=1500 delay=7020 time=200 tween=elastic condition=true',), [('conditional', 'effect=slide start=1500 delay=7020 time=200 tween=elastic condition=true',),
('WindowClose', 'effect=zoom end=0 center=auto time=700 condition=true',)]) ('WindowClose', 'effect=zoom end=0 center=auto time=700 condition=true',)])
@@ -1069,6 +1097,7 @@ class related(xbmcgui.WindowDialog):
self.item.thumb_busqueda) self.item.thumb_busqueda)
self.addControl(self.buscar) self.addControl(self.buscar)
self.botones.append(self.buscar) self.botones.append(self.buscar)
if set_animation:
self.buscar.setAnimations([('conditional', 'effect=slide start=0,700 delay=6000 time=200 condition=true',), self.buscar.setAnimations([('conditional', 'effect=slide start=0,700 delay=6000 time=200 condition=true',),
('unfocus', ('unfocus',
'effect=zoom center=auto start=70% end=100% time=700 reversible=false',), ( 'effect=zoom center=auto start=70% end=100% time=700 reversible=false',), (
@@ -1076,10 +1105,11 @@ class related(xbmcgui.WindowDialog):
'effect=zoom center=auto start=100% end=120% reversible=false tween=bounce time=1000 loop=true condition=Control.HasFocus(' + str( 'effect=zoom center=auto start=100% end=120% reversible=false tween=bounce time=1000 loop=true condition=Control.HasFocus(' + str(
self.buscar.getId()) + ')'), self.buscar.getId()) + ')'),
('WindowClose', 'effect=rotatey end=-300 time=1500 condition=true',)]) ('WindowClose', 'effect=rotatey end=-300 time=1500 condition=true',)])
self.global_search = xbmcgui.ControlButton(1046, 620, 140, 53, '', 'http://imgur.com/hoOvpHV.png', self.global_search = xbmcgui.ControlButton(1046, 620, 140, 53, '', 'https://s33.postimg.org/3k39ww24f/logo-alfa.png',
'http://imgur.com/hoOvpHV.png') 'https://s33.postimg.org/3k39ww24f/logo-alfa.png')
self.addControl(self.global_search) self.addControl(self.global_search)
self.botones.append(self.global_search) self.botones.append(self.global_search)
if set_animation:
self.global_search.setAnimations( self.global_search.setAnimations(
[('conditional', 'effect=slide start=0,700 delay=6090 time=200 condition=true',), [('conditional', 'effect=slide start=0,700 delay=6090 time=200 condition=true',),
('unfocus', 'effect=zoom center=auto start=70% end=100% time=700 reversible=false',), ('conditional', ('unfocus', 'effect=zoom center=auto start=70% end=100% time=700 reversible=false',), ('conditional',
@@ -1158,12 +1188,14 @@ class related(xbmcgui.WindowDialog):
self.removeControl(self.buscar) self.removeControl(self.buscar)
self.notfound = xbmcgui.ControlImage(800, 520, 300, 120, "http://imgur.com/V1xs9pT.png") self.notfound = xbmcgui.ControlImage(800, 520, 300, 120, "http://imgur.com/V1xs9pT.png")
self.addControl(self.notfound) self.addControl(self.notfound)
if set_animation:
self.notfound.setAnimations( self.notfound.setAnimations(
[('conditional', 'effect=zoom center=auto start=500% end=0% time=2000 condition=true',)]) [('conditional', 'effect=zoom center=auto start=500% end=0% time=2000 condition=true',)])
else: else:
self.removeControl(self.global_search) self.removeControl(self.global_search)
self.notfound = xbmcgui.ControlImage(800, 520, 300, 120, "http://imgur.com/V1xs9pT.png") self.notfound = xbmcgui.ControlImage(800, 520, 300, 120, "http://imgur.com/V1xs9pT.png")
self.addControl(self.notfound) self.addControl(self.notfound)
if set_animation:
self.notfound.setAnimations( self.notfound.setAnimations(
[('conditional', 'effect=zoom center=auto start=500% end=0% time=2000 condition=true',)]) [('conditional', 'effect=zoom center=auto start=500% end=0% time=2000 condition=true',)])
@@ -1437,8 +1469,8 @@ class Actores(xbmcgui.WindowXMLDialog):
name_info = selectitem.getProperty("name_info") name_info = selectitem.getProperty("name_info")
thumbnail = selectitem.getProperty("thumbnail") thumbnail = selectitem.getProperty("thumbnail")
job = selectitem.getProperty("job") job = selectitem.getProperty("job")
dialog = platformtools.dialog_progress("[COLOR darkturquoise][B]Cargando nuevos datos[/B][/COLOR]", dialog = platformtools.dialog_progress("Cargando nuevos datos",
"[COLOR yellow]Obteniendo datos del %s...[/COLOR]" % job.lower()) "Obteniendo datos del %s..." % job.lower())
global ActorInfoWindow global ActorInfoWindow
ActorInfoWindow = ActorInfo(id=id_actor, name=name_info, thumbnail=thumbnail, item=self.item, ActorInfoWindow = ActorInfo(id=id_actor, name=name_info, thumbnail=thumbnail, item=self.item,
@@ -1516,23 +1548,27 @@ class ActorInfo(xbmcgui.WindowDialog):
self.setCoordinateResolution(2) self.setCoordinateResolution(2)
self.background = xbmcgui.ControlImage(30, -5, 1250, 730, 'http://imgur.com/7ccBX3g.png') self.background = xbmcgui.ControlImage(30, -5, 1250, 730, 'http://imgur.com/7ccBX3g.png')
self.addControl(self.background) self.addControl(self.background)
if set_animation:
self.background.setAnimations( self.background.setAnimations(
[('conditional', 'effect=fade start=0% end=100% delay=2000 time=1500 condition=true',), [('conditional', 'effect=fade start=0% end=100% delay=2000 time=1500 condition=true',),
('WindowClose', 'effect=slide end=0,-700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,-700% time=1000 condition=true',)])
self.filmo = xbmcgui.ControlImage(330, 470, 230, 45, 'http://s6.postimg.org/rlktamqhd/filmography1.png') self.filmo = xbmcgui.ControlImage(330, 470, 230, 45, 'http://s6.postimg.org/rlktamqhd/filmography1.png')
self.addControl(self.filmo) self.addControl(self.filmo)
if set_animation:
self.filmo.setAnimations([('conditional', self.filmo.setAnimations([('conditional',
'effect=zoom start=0,700 end=100% center=auto delay=5500 time=1000 condition=true tween=elastic',), 'effect=zoom start=0,700 end=100% center=auto delay=5500 time=1000 condition=true tween=elastic',),
('WindowClose', 'effect=zoom start=100% end=0% time=1000 condition=true',)]) ('WindowClose', 'effect=zoom start=100% end=0% time=1000 condition=true',)])
self.title = xbmcgui.ControlTextBox(470, 30, 730, 250) self.title = xbmcgui.ControlTextBox(470, 30, 730, 250)
self.addControl(self.title) self.addControl(self.title)
if set_animation:
self.title.setAnimations( self.title.setAnimations(
[('conditional', 'effect=slide start=-1500% end=0% delay=3000 time=1500 condition=true',), [('conditional', 'effect=slide start=-1500% end=0% delay=3000 time=1500 condition=true',),
('WindowClose', 'effect=slide end=1500% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=1500% time=1000 condition=true',)])
self.title.setText(self.nombre) self.title.setText(self.nombre)
self.info_actor = xbmcgui.ControlTextBox(470, 70, 750, 400) self.info_actor = xbmcgui.ControlTextBox(470, 70, 750, 400)
self.addControl(self.info_actor) self.addControl(self.info_actor)
if set_animation:
self.info_actor.setAnimations( self.info_actor.setAnimations(
[('conditional', 'effect=slide start=2000% end=-10% delay=5300 time=1500 tween=bounce condition=true',), [('conditional', 'effect=slide start=2000% end=-10% delay=5300 time=1500 tween=bounce condition=true',),
('WindowClose', 'effect=slide end=-2000% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=-2000% time=1000 condition=true',)])
@@ -1575,6 +1611,7 @@ class ActorInfo(xbmcgui.WindowDialog):
self.btn_left = xbmcgui.ControlButton(90, 490, 70, 29, '', "http://s6.postimg.org/i3pnobu6p/redarrow.png", self.btn_left = xbmcgui.ControlButton(90, 490, 70, 29, '', "http://s6.postimg.org/i3pnobu6p/redarrow.png",
"http://s6.postimg.org/i3pnobu6p/redarrow.png") "http://s6.postimg.org/i3pnobu6p/redarrow.png")
self.addControl(self.btn_left) self.addControl(self.btn_left)
if set_animation:
self.btn_left.setAnimations([('conditional', self.btn_left.setAnimations([('conditional',
'effect=zoom start=720,642,70,29 end=640,642,69,29 time=1000 loop=true tween=bounce condition=Control.HasFocus(' + str( 'effect=zoom start=720,642,70,29 end=640,642,69,29 time=1000 loop=true tween=bounce condition=Control.HasFocus(' + str(
self.btn_left.getId()) + ')',), self.btn_left.getId()) + ')',),
@@ -1591,6 +1628,7 @@ class ActorInfo(xbmcgui.WindowDialog):
if count < 8: if count < 8:
self.addControl(self.image) self.addControl(self.image)
if set_animation:
self.image.setAnimations([('conditional', self.image.setAnimations([('conditional',
'effect=rotatey start=200 end=0 delay=2000 time=900 tween=elastic condition=true',), 'effect=rotatey start=200 end=0 delay=2000 time=900 tween=elastic condition=true',),
('unfocus', ('unfocus',
@@ -1600,6 +1638,7 @@ class ActorInfo(xbmcgui.WindowDialog):
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',), ]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',), ])
self.addControl(self.neon) self.addControl(self.neon)
self.neon.setVisibleCondition('[Control.HasFocus(' + str(self.image.getId()) + ')]') self.neon.setVisibleCondition('[Control.HasFocus(' + str(self.image.getId()) + ')]')
if set_animation:
self.neon.setAnimations([('conditional', self.neon.setAnimations([('conditional',
'effect=rotate center=auto start=0% end=360% time=650 tween=bounce condition=Control.HasFocus(' + str( 'effect=rotate center=auto start=0% end=360% time=650 tween=bounce condition=Control.HasFocus(' + str(
self.image.getId()) + ')',), self.image.getId()) + ')',),
@@ -1607,6 +1646,7 @@ class ActorInfo(xbmcgui.WindowDialog):
self.addControl(fadelabel) self.addControl(fadelabel)
fadelabel.addLabel(peli) fadelabel.addLabel(peli)
if set_animation:
fadelabel.setAnimations([('conditional', fadelabel.setAnimations([('conditional',
'effect=rotatey start=200 end=0 delay=6200 time=900 tween=elastic condition=true',), 'effect=rotatey start=200 end=0 delay=6200 time=900 tween=elastic condition=true',),
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
@@ -1622,6 +1662,7 @@ class ActorInfo(xbmcgui.WindowDialog):
"http://s6.postimg.org/j4uhr70k1/greenarrow.png", "http://s6.postimg.org/j4uhr70k1/greenarrow.png",
"http://s6.postimg.org/j4uhr70k1/greenarrow.png") "http://s6.postimg.org/j4uhr70k1/greenarrow.png")
self.addControl(self.btn_right) self.addControl(self.btn_right)
if set_animation:
self.btn_right.setAnimations( self.btn_right.setAnimations(
[('conditional', 'effect=slide start=-3000 end=0 delay=5000 time=2000 condition=true tween=bounce',), ( [('conditional', 'effect=slide start=-3000 end=0 delay=5000 time=2000 condition=true tween=bounce',), (
'conditional', 'conditional',
@@ -1641,11 +1682,13 @@ class ActorInfo(xbmcgui.WindowDialog):
self.marco = xbmcgui.ControlImage(100, 23, 330, 425, self.marco = xbmcgui.ControlImage(100, 23, 330, 425,
'http://s6.postimg.org/nkmk7b8nl/marco_foto2_copia.png') 'http://s6.postimg.org/nkmk7b8nl/marco_foto2_copia.png')
self.addControl(self.marco) self.addControl(self.marco)
if set_animation:
self.marco.setAnimations( self.marco.setAnimations(
[('conditional', 'effect=rotatey start=100% end=0% delay=2400 time=1500 condition=true',), [('conditional', 'effect=rotatey start=100% end=0% delay=2400 time=1500 condition=true',),
('WindowClose', 'effect=fade end=0% time=1000 condition=true',)]) ('WindowClose', 'effect=fade end=0% time=1000 condition=true',)])
self.thumb = xbmcgui.ControlImage(115, 40, 294, 397, self.thumbnail) self.thumb = xbmcgui.ControlImage(115, 40, 294, 397, self.thumbnail)
self.addControl(self.thumb) self.addControl(self.thumb)
if set_animation:
self.thumb.setAnimations( self.thumb.setAnimations(
[('conditional', 'effect=rotatey start=100% end=0% delay=2380 time=1500 condition=true',), [('conditional', 'effect=rotatey start=100% end=0% delay=2380 time=1500 condition=true',),
('WindowClose', 'effect=fade end=0% time=1000 condition=true',)]) ('WindowClose', 'effect=fade end=0% time=1000 condition=true',)])
@@ -1672,11 +1715,13 @@ class ActorInfo(xbmcgui.WindowDialog):
self.thumb = xbmcgui.ControlImage(115, 40, 294, 397, "") self.thumb = xbmcgui.ControlImage(115, 40, 294, 397, "")
xbmc.sleep(500) xbmc.sleep(500)
self.addControl(self.marco) self.addControl(self.marco)
if set_animation:
self.marco.setAnimations( self.marco.setAnimations(
[('conditional', 'effect=rotatey start=100% end=0% delay=2300 time=1500 condition=true',), [('conditional', 'effect=rotatey start=100% end=0% delay=2300 time=1500 condition=true',),
('WindowClose', 'effect=fade end=0% time=1000 condition=true',)]) ('WindowClose', 'effect=fade end=0% time=1000 condition=true',)])
self.addControl(self.thumb) self.addControl(self.thumb)
self.thumb.setImage(self.thumbnail) self.thumb.setImage(self.thumbnail)
if set_animation:
self.thumb.setAnimations( self.thumb.setAnimations(
[('conditional', 'effect=rotatey start=100% end=0% delay=2280 time=1500 condition=true',), [('conditional', 'effect=rotatey start=100% end=0% delay=2280 time=1500 condition=true',),
('WindowClose', 'effect=fade end=0% time=1000 condition=true',)]) ('WindowClose', 'effect=fade end=0% time=1000 condition=true',)])
@@ -1697,12 +1742,14 @@ class ActorInfo(xbmcgui.WindowDialog):
self.marco = xbmcgui.ControlImage(100, 23, 330, 425, self.marco = xbmcgui.ControlImage(100, 23, 330, 425,
'http://s6.postimg.org/4syg4krkh/marco_foto.png') 'http://s6.postimg.org/4syg4krkh/marco_foto.png')
self.addControl(self.marco) self.addControl(self.marco)
if set_animation:
self.marco.setAnimations( self.marco.setAnimations(
[('conditional', 'effect=rotatey start=100% end=0% delay=300 time=1500 condition=true',), [('conditional', 'effect=rotatey start=100% end=0% delay=300 time=1500 condition=true',),
('WindowClose', 'effect=fade end=0% time=1000 condition=true',)]) ('WindowClose', 'effect=fade end=0% time=1000 condition=true',)])
self.thumb = xbmcgui.ControlImage(115, 40, 294, 397, "") self.thumb = xbmcgui.ControlImage(115, 40, 294, 397, "")
self.addControl(self.thumb) self.addControl(self.thumb)
self.thumb.setImage(image, True) self.thumb.setImage(image, True)
if set_animation:
self.thumb.setAnimations( self.thumb.setAnimations(
[('conditional', 'effect=rotatey start=100% end=0% delay=285 time=1500 condition=true',), [('conditional', 'effect=rotatey start=100% end=0% delay=285 time=1500 condition=true',),
('WindowClose', 'effect=fade end=0% time=1000 condition=true',)]) ('WindowClose', 'effect=fade end=0% time=1000 condition=true',)])
@@ -1775,6 +1822,7 @@ class ActorInfo(xbmcgui.WindowDialog):
count += 1 count += 1
elif i > self.mas_pelis and count < 16: elif i > self.mas_pelis and count < 16:
self.addControl(afoto) self.addControl(afoto)
if set_animation:
afoto.setAnimations([('conditional', afoto.setAnimations([('conditional',
'effect=rotatey start=200 end=0 time=900 delay=200 tween=elastic condition=true',), 'effect=rotatey start=200 end=0 time=900 delay=200 tween=elastic condition=true',),
('unfocus', ('unfocus',
@@ -1784,12 +1832,14 @@ class ActorInfo(xbmcgui.WindowDialog):
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',), ]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',), ])
self.addControl(neon) self.addControl(neon)
neon.setVisibleCondition('[Control.HasFocus(' + str(afoto.getId()) + ')]') neon.setVisibleCondition('[Control.HasFocus(' + str(afoto.getId()) + ')]')
if set_animation:
neon.setAnimations([('conditional', neon.setAnimations([('conditional',
'effect=rotate center=auto start=0% end=360% time=650 tween=bounce condition=Control.HasFocus(' + str( 'effect=rotate center=auto start=0% end=360% time=650 tween=bounce condition=Control.HasFocus(' + str(
afoto.getId()) + ')',), afoto.getId()) + ')',),
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',), ]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',), ])
self.addControl(fadelabel) self.addControl(fadelabel)
fadelabel.addLabel(peli) fadelabel.addLabel(peli)
if set_animation:
fadelabel.setAnimations( fadelabel.setAnimations(
[('conditional', 'effect=rotatey start=200 end=0 time=900 tween=elastic condition=true',), [('conditional', 'effect=rotatey start=200 end=0 time=900 tween=elastic condition=true',),
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
@@ -1830,6 +1880,7 @@ class ActorInfo(xbmcgui.WindowDialog):
resta2 = 8 resta2 = 8
if i > len_pelis - resta and count < 8: if i > len_pelis - resta and count < 8:
self.addControl(afoto) self.addControl(afoto)
if set_animation:
afoto.setAnimations( afoto.setAnimations(
[('conditional', 'effect=rotatey start=200 end=0 time=900 tween=elastic condition=true',), [('conditional', 'effect=rotatey start=200 end=0 time=900 tween=elastic condition=true',),
('unfocus', 'effect=zoom center=auto start=70% end=100% time=700 reversible=false',), ('unfocus', 'effect=zoom center=auto start=70% end=100% time=700 reversible=false',),
@@ -1837,12 +1888,14 @@ class ActorInfo(xbmcgui.WindowDialog):
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',), ]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',), ])
self.addControl(neon) self.addControl(neon)
neon.setVisibleCondition('[Control.HasFocus(' + str(afoto.getId()) + ')]') neon.setVisibleCondition('[Control.HasFocus(' + str(afoto.getId()) + ')]')
if set_animation:
neon.setAnimations([('conditional', neon.setAnimations([('conditional',
'effect=rotate center=auto start=0% end=360% time=650 tween=bounce condition=Control.HasFocus(' + str( 'effect=rotate center=auto start=0% end=360% time=650 tween=bounce condition=Control.HasFocus(' + str(
afoto.getId()) + ')',), afoto.getId()) + ')',),
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',), ]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',), ])
self.addControl(fadelabel) self.addControl(fadelabel)
fadelabel.addLabel(peli) fadelabel.addLabel(peli)
if set_animation:
fadelabel.setAnimations( fadelabel.setAnimations(
[('conditional', 'effect=rotatey start=200 end=0 time=900 tween=elastic condition=true',), [('conditional', 'effect=rotatey start=200 end=0 time=900 tween=elastic condition=true',),
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
@@ -1860,8 +1913,8 @@ class ActorInfo(xbmcgui.WindowDialog):
for boton, peli, id, poster2 in self.idps: for boton, peli, id, poster2 in self.idps:
if control == boton: if control == boton:
dialog = platformtools.dialog_progress("[COLOR darkturquoise][B]Cargando nueva info[/B][/COLOR]", dialog = platformtools.dialog_progress("Cargando nueva info",
"[COLOR lightyellow]Buscando en [/COLOR][COLOR springgreen][B]Tmdb.......[/B][/COLOR]") "Buscando en Tmdb.......")
tipo = self.item.contentType tipo = self.item.contentType
if tipo != "movie": if tipo != "movie":
tipo = "tv" tipo = "tv"
@@ -1899,18 +1952,20 @@ class images(xbmcgui.WindowDialog):
self.imagenes.append(imagen) self.imagenes.append(imagen)
self.setCoordinateResolution(2) self.setCoordinateResolution(2)
self.shadow = xbmcgui.ControlImage(145, 10, 1011, 700, 'http://imgur.com/66VSLTo.png') self.shadow = xbmcgui.ControlImage(245, 10, 1011, 700, 'http://imgur.com/66VSLTo.png')
self.addControl(self.shadow) self.addControl(self.shadow)
if set_animation:
self.shadow.setAnimations( self.shadow.setAnimations(
[('conditional', 'effect=slide start=1000% end=100% delay=672 time=2500 condition=true',), [('conditional', 'effect=slide start=1000% delay=672 time=2500 condition=true',),
('WindowClose', 'effect=slide end=0,-700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0 time=1000 condition=true',)])
imagen_inicial = self.imagenes[0].replace("/preview/", "/fanart/").replace("-s200", "-large").replace("/w342/", imagen_inicial = self.imagenes[0].replace("/preview/", "/fanart/").replace("-s200", "-large").replace("/w342/",
"/original/") "/original/")
self.background = xbmcgui.ControlImage(148, 17, 1003, 560, imagen_inicial, 2) self.background = xbmcgui.ControlImage(248, 17, 1003, 560, imagen_inicial, 2)
self.addControl(self.background) self.addControl(self.background)
if set_animation:
self.background.setAnimations( self.background.setAnimations(
[('conditional', 'effect=slide start=1000% end=100% delay=670 time=2500 condition=true',), [('conditional', 'effect=slide start=1000% delay=670 time=2500 condition=true',),
('WindowClose', 'effect=slide end=0,-700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0 time=1000 condition=true',)])
self.botones = [] self.botones = []
self.imgcount = 8 self.imgcount = 8
@@ -1922,6 +1977,7 @@ class images(xbmcgui.WindowDialog):
self.btn_left = xbmcgui.ControlButton(293, 550, 70, 29, '', "http://s6.postimg.org/i3pnobu6p/redarrow.png", self.btn_left = xbmcgui.ControlButton(293, 550, 70, 29, '', "http://s6.postimg.org/i3pnobu6p/redarrow.png",
"http://s6.postimg.org/i3pnobu6p/redarrow.png") "http://s6.postimg.org/i3pnobu6p/redarrow.png")
self.addControl(self.btn_left) self.addControl(self.btn_left)
if set_animation:
self.btn_left.setAnimations( self.btn_left.setAnimations(
[('conditional', 'effect=zoom start=-100 end=100 delay=5000 time=2000 condition=true tween=bounce',), ( [('conditional', 'effect=zoom start=-100 end=100 delay=5000 time=2000 condition=true tween=bounce',), (
'conditional', 'conditional',
@@ -1939,6 +1995,7 @@ class images(xbmcgui.WindowDialog):
self.botones.append(self.image) self.botones.append(self.image)
if count < 8: if count < 8:
self.addControl(self.image) self.addControl(self.image)
if set_animation:
self.image.setAnimations([('conditional', self.image.setAnimations([('conditional',
'effect=rotatey start=200 end=0 delay=3500 time=900 tween=elastic condition=true',), 'effect=rotatey start=200 end=0 delay=3500 time=900 tween=elastic condition=true',),
('unfocus', ('unfocus',
@@ -1946,6 +2003,7 @@ class images(xbmcgui.WindowDialog):
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
self.addControl(self.neon) self.addControl(self.neon)
self.neon.setVisibleCondition('[Control.HasFocus(' + str(self.image.getId()) + ')]') self.neon.setVisibleCondition('[Control.HasFocus(' + str(self.image.getId()) + ')]')
if set_animation:
self.neon.setAnimations([('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) self.neon.setAnimations([('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
self.urls.append([self.image, img]) self.urls.append([self.image, img])
@@ -1959,6 +2017,7 @@ class images(xbmcgui.WindowDialog):
"http://s6.postimg.org/j4uhr70k1/greenarrow.png", "http://s6.postimg.org/j4uhr70k1/greenarrow.png",
"http://s6.postimg.org/j4uhr70k1/greenarrow.png") "http://s6.postimg.org/j4uhr70k1/greenarrow.png")
self.addControl(self.btn_right) self.addControl(self.btn_right)
if set_animation:
self.btn_right.setAnimations( self.btn_right.setAnimations(
[('conditional', 'effect=slide start=-3000 end=0 delay=3600 time=2000 condition=true tween=bounce',), ( [('conditional', 'effect=slide start=-3000 end=0 delay=3600 time=2000 condition=true tween=bounce',), (
'conditional', 'conditional',
@@ -2025,6 +2084,7 @@ class images(xbmcgui.WindowDialog):
count += 1 count += 1
elif i > self.imgcount and count < 16: elif i > self.imgcount and count < 16:
self.addControl(image) self.addControl(image)
if set_animation:
image.setAnimations([('conditional', image.setAnimations([('conditional',
'effect=rotatey start=200 end=0 delay=600 time=900 tween=elastic condition=true',), 'effect=rotatey start=200 end=0 delay=600 time=900 tween=elastic condition=true',),
('unfocus', ('unfocus',
@@ -2032,6 +2092,7 @@ class images(xbmcgui.WindowDialog):
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
self.addControl(neon) self.addControl(neon)
neon.setVisibleCondition('[Control.HasFocus(' + str(image.getId()) + ')]') neon.setVisibleCondition('[Control.HasFocus(' + str(image.getId()) + ')]')
if set_animation:
neon.setAnimations([('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) neon.setAnimations([('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
count += 1 count += 1
@@ -2068,6 +2129,7 @@ class images(xbmcgui.WindowDialog):
resta2 = 8 resta2 = 8
if i > len_images - resta and count < 8: if i > len_images - resta and count < 8:
self.addControl(image) self.addControl(image)
if set_animation:
image.setAnimations([('conditional', image.setAnimations([('conditional',
'effect=rotatey start=200 end=0 delay=600 time=900 tween=elastic condition=true',), 'effect=rotatey start=200 end=0 delay=600 time=900 tween=elastic condition=true',),
('unfocus', ('unfocus',
@@ -2075,6 +2137,7 @@ class images(xbmcgui.WindowDialog):
('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) ('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
self.addControl(neon) self.addControl(neon)
neon.setVisibleCondition('[Control.HasFocus(' + str(image.getId()) + ')]') neon.setVisibleCondition('[Control.HasFocus(' + str(image.getId()) + ')]')
if set_animation:
neon.setAnimations([('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)]) neon.setAnimations([('WindowClose', 'effect=slide end=0,700% time=1000 condition=true',)])
count += 1 count += 1
elif i > len_images - resta2 and i <= len_images and count < 16: elif i > len_images - resta2 and i <= len_images and count < 16:
@@ -2198,7 +2261,7 @@ def get_filmaf(item, infoLabels):
rating = scrapertools.find_single_match(data, 'itemprop="ratingValue" content="([^"]+)"') rating = scrapertools.find_single_match(data, 'itemprop="ratingValue" content="([^"]+)"')
if not rating: if not rating:
rating_filma = "[COLOR crimson][B]Sin puntuación[/B][/COLOR]" rating_filma = "[COLOR crimson][B]N/A[/B][/COLOR]"
else: else:
try: try:
if float(rating) >= 5 and float(rating) < 8: if float(rating) >= 5 and float(rating) < 8:
@@ -2214,28 +2277,10 @@ def get_filmaf(item, infoLabels):
plot = scrapertools.find_single_match(data, '<dd itemprop="description">(.*?)</dd>') plot = scrapertools.find_single_match(data, '<dd itemprop="description">(.*?)</dd>')
plot = plot.replace("<br><br />", "\n") plot = plot.replace("<br><br />", "\n")
patron = '<div itemprop="reviewBody">(.*?)</div>.*?itemprop="author">(.*?)\s*<i alt="([^"]+)"'
matches_reviews = scrapertools.find_multiple_matches(data, patron)
critica = ""
if matches_reviews:
for review, autor, valoracion in matches_reviews:
review = dhe(scrapertools.htmlclean(review))
review += "\n" + autor
if "positiva" in valoracion:
critica += "[COLOR green][B]%s[/B][/COLOR]\n\n" % review
elif "neutral" in valoracion:
critica += "[COLOR yellow][B]%s[/B][/COLOR]\n\n" % review
else: else:
critica += "[COLOR red][B]%s[/B][/COLOR]\n\n" % review rating_filma = "[COLOR crimson][B]N/A[/B][/COLOR]"
else:
critica = "[COLOR floralwhite][B]Esta %s no tiene críticas[/B][/COLOR]" % tipo
else:
critica = "[COLOR floralwhite][B]Esta %s no tiene críticas[/B][/COLOR]" % tipo
rating_filma = "[COLOR crimson][B]Sin puntuación[/B][/COLOR]"
plot = "" plot = ""
return rating_filma, plot
return critica, rating_filma, plot
def fanartv(item, infoLabels, images={}): def fanartv(item, infoLabels, images={}):
+1 -1
View File
@@ -76,7 +76,7 @@ def episodios(item):
title=title, url=url, show=show)) title=title, url=url, show=show))
if config.get_videolibrary_support() and len(itemlist) > 0: if config.get_videolibrary_support() and len(itemlist) > 0:
itemlist.append(Item(channel=item.channel, title="Añadir Temporada/Serie a la biblioteca de Kodi", url=item.url, itemlist.append(Item(channel=item.channel, title="[COLOR yellow]Añadir Temporada/Serie a la biblioteca de Kodi[/COLOR]", url=item.url,
action="add_serie_to_library", extra="episodios", show=show)) action="add_serie_to_library", extra="episodios", show=show))
return itemlist return itemlist
+12 -18
View File
@@ -33,15 +33,14 @@ def mainlist(item):
def explorar(item): def explorar(item):
logger.info() logger.info()
itemlist = list() itemlist = list()
url1 = str(item.url) url1 = item.title
data = httptools.downloadpage(host).data data = httptools.downloadpage(host).data
data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;", "", data) data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;", "", data)
# logger.info("loca :"+url1+" aaa"+data) if 'Género' in url1:
if 'genero' in url1: patron = '<div class="d">.+?<h3>Pel.+?neros<\/h3>(.+?)<\/h3>'
patron = '<div class="d"><h3>Pel.+?neros<\/h3>(.+?)<\/h3>' if 'Listado Alfabético' in url1:
if 'alfabetico' in url1: patron = '<\/li><\/ul>.+?<h3>Pel.+?tico<\/h3>(.+?)<\/h3>'
patron = '<\/li><\/ul><h3>Pel.+?tico<\/h3>(.+?)<\/h3>' if 'Año' in url1:
if 'año' in url1:
patron = '<ul class="anio"><li>(.+?)<\/ul>' patron = '<ul class="anio"><li>(.+?)<\/ul>'
data_explorar = scrapertools.find_single_match(data, patron) data_explorar = scrapertools.find_single_match(data, patron)
patron_explorar = '<a href="([^"]+)">([^"]+)<\/a>' patron_explorar = '<a href="([^"]+)">([^"]+)<\/a>'
@@ -79,26 +78,22 @@ def lista(item):
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;", "", data) # Eliminamos tabuladores, dobles espacios saltos de linea, etc... data = re.sub(r"\n|\r|\t|\s{2}|&nbsp;", "", data) # Eliminamos tabuladores, dobles espacios saltos de linea, etc...
url1 = str(item.url) data_mov= scrapertools.find_single_match(data,'<div id="cuerpo"><div class="iz">(.+)<ul class="pag">')
if 'http://www.peliculashindu.com/' in url1:
url1 = url1.replace("http://www.peliculashindu.com/", "")
if url1 != 'estrenos':
data = scrapertools.find_single_match(data, '<div id="cuerpo"><div class="iz">.+>Otras')
# data= scrapertools.find_single_match(data,'<div id="cuerpo"><div class="iz">.+>Otras')
patron = '<a href="([^"]+)"><img src="([^"]+)" alt="([^"]+)"' # scrapedurl, scrapedthumbnail, scrapedtitle patron = '<a href="([^"]+)"><img src="([^"]+)" alt="([^"]+)"' # scrapedurl, scrapedthumbnail, scrapedtitle
matches = scrapertools.find_multiple_matches(data, patron) matches = scrapertools.find_multiple_matches(data_mov, patron)
for scrapedurl, scrapedthumbnail, scrapedtitle in matches: # scrapedthumbnail, scrapedtitle in matches: for scrapedurl, scrapedthumbnail, scrapedtitle in matches: # scrapedthumbnail, scrapedtitle in matches:
itemlist.append(item.clone(title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, action="findvideos", itemlist.append(item.clone(title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, action="findvideos",
show=scrapedtitle)) show=scrapedtitle))
# Paginacion # Paginacion
patron_pag = '<a href="([^"]+)" title="Siguiente .+?">' patron_pag = '<a href="([^"]+)" title="Siguiente .+?">'
paginasig = scrapertools.find_single_match(data, patron_pag) paginasig = scrapertools.find_single_match(data, patron_pag)
logger.info("algoooosadf "+paginasig)
next_page_url = item.url + paginasig next_page_url = host + paginasig
if paginasig != "": if paginasig != "":
item.url = next_page_url item.url = next_page_url
itemlist.append(Item(channel=item.channel, action="lista", title=">> Página siguiente", url=next_page_url, itemlist.append(Item(channel=item.channel, action="lista", title="[COLOR cyan]Página Siguiente >>[/COLOR]", url=next_page_url,
thumbnail='https://s32.postimg.org/4zppxf5j9/siguiente.png')) thumbnail='https://s32.postimg.org/4zppxf5j9/siguiente.png'))
return itemlist return itemlist
@@ -114,10 +109,9 @@ def findvideos(item):
logger.info("holaa" + data) logger.info("holaa" + data)
patron_show = '<strong>Ver Pel.+?a([^<]+) online<\/strong>' patron_show = '<strong>Ver Pel.+?a([^<]+) online<\/strong>'
show = scrapertools.find_single_match(data, patron_show) show = scrapertools.find_single_match(data, patron_show)
logger.info("holaa" + show)
for videoitem in itemlist: for videoitem in itemlist:
videoitem.channel = item.channel videoitem.channel = item.channel
if config.get_videolibrary_support() and len(itemlist) > 0: if config.get_videolibrary_support() and len(itemlist) > 0 and item.contentChannel!='videolibrary':
itemlist.append( itemlist.append(
Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url, Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url,
action="add_pelicula_to_library", extra="findvideos", contentTitle=show)) action="add_pelicula_to_library", extra="findvideos", contentTitle=show))
+2 -3
View File
@@ -240,10 +240,10 @@ def findvideos(item):
)) ))
for videoitem in templist: for videoitem in templist:
data = httptools.downloadpage(videoitem.url).data data = httptools.downloadpage(videoitem.url).data
urls_list = scrapertools.find_multiple_matches(data, '{"reorder":1,"type":.*?}')
urls_list = scrapertools.find_multiple_matches(data, 'var.*?_SOURCE\s+=\s+\[(.*?)\]')
for element in urls_list: for element in urls_list:
json_data=jsontools.load(element) json_data=jsontools.load(element)
id = json_data['id'] id = json_data['id']
sub = json_data['srt'] sub = json_data['srt']
url = json_data['source'] url = json_data['source']
@@ -253,7 +253,6 @@ def findvideos(item):
new_url = 'https://onevideo.tv/api/player?key=90503e3de26d45e455b55e9dc54f015b3d1d4150&link' \ new_url = 'https://onevideo.tv/api/player?key=90503e3de26d45e455b55e9dc54f015b3d1d4150&link' \
'=%s&srt=%s' % (url, sub) '=%s&srt=%s' % (url, sub)
logger.debug('new_url: %s' % new_url)
data = httptools.downloadpage(new_url).data data = httptools.downloadpage(new_url).data
data = re.sub(r'\\', "", data) data = re.sub(r'\\', "", data)
+35 -6
View File
@@ -8,6 +8,7 @@ from core import httptools
from core import scrapertools from core import scrapertools
from core import servertools from core import servertools
from core.item import Item from core.item import Item
from core import tmdb
from platformcode import config, logger from platformcode import config, logger
IDIOMAS = {'latino': 'Latino'} IDIOMAS = {'latino': 'Latino'}
@@ -35,6 +36,7 @@ def mainlist(item):
url=host, url=host,
thumbnail='https://s27.postimg.org/iahczwgrn/series.png', thumbnail='https://s27.postimg.org/iahczwgrn/series.png',
fanart='https://s27.postimg.org/iahczwgrn/series.png', fanart='https://s27.postimg.org/iahczwgrn/series.png',
page=0
)) ))
autoplay.show_option(item.channel, itemlist) autoplay.show_option(item.channel, itemlist)
return itemlist return itemlist
@@ -49,13 +51,19 @@ def todas(item):
'Serie><span>(.*?)<\/span>' 'Serie><span>(.*?)<\/span>'
matches = re.compile(patron, re.DOTALL).findall(data) matches = re.compile(patron, re.DOTALL).findall(data)
for scrapedurl, scrapedthumbnail, scrapedcalidad, scrapedtitle in matches: # Paginacion
num_items_x_pagina = 30
min = item.page * num_items_x_pagina
min=int(min)-int(item.page)
max = min + num_items_x_pagina - 1
for scrapedurl, scrapedthumbnail, scrapedcalidad, scrapedtitle in matches[min:max]:
url = host + scrapedurl url = host + scrapedurl
calidad = scrapedcalidad calidad = scrapedcalidad
title = scrapedtitle.decode('utf-8') title = scrapedtitle.decode('utf-8')
thumbnail = scrapedthumbnail thumbnail = scrapedthumbnail
fanart = 'https://s32.postimg.org/gh8lhbkb9/seodiv.png' fanart = 'https://s32.postimg.org/gh8lhbkb9/seodiv.png'
if not 'xxxxxx' in scrapedtitle:
itemlist.append( itemlist.append(
Item(channel=item.channel, Item(channel=item.channel,
action="temporadas", action="temporadas",
@@ -67,7 +75,13 @@ def todas(item):
language=language, language=language,
context=autoplay.context context=autoplay.context
)) ))
tmdb.set_infoLabels(itemlist)
if len(itemlist)>28:
itemlist.append(
Item(channel=item.channel,
title="[COLOR cyan]Página Siguiente >>[/COLOR]",
url=item.url, action="todas",
page=item.page + 1))
return itemlist return itemlist
@@ -222,16 +236,31 @@ def episodiosxtemp(item):
def findvideos(item): def findvideos(item):
logger.info() logger.info()
itemlist = [] itemlist = []
lang=[]
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
video_items = servertools.find_video_items(item) video_items = servertools.find_video_items(item)
data = re.sub(r'"|\n|\r|\t|&nbsp;|<br>|\s{2,}', "", data)
language_items=scrapertools.find_single_match(data,
'<ul class=tabs-sidebar-ul>(.+?)<\/ul>')
matches=scrapertools.find_multiple_matches(language_items,
'<li><a href=#ts(.+?)><span>(.+?)<\/span><\/a><\/li>')
for idl,scrapedlang in matches:
if int(idl)<5 and int(idl)!=1:
lang.append(scrapedlang)
i=0
logger.info(lang)
for videoitem in video_items: for videoitem in video_items:
videoitem.thumbnail = servertools.guess_server_thumbnail(videoitem.server) videoitem.thumbnail = servertools.guess_server_thumbnail(videoitem.server)
videoitem.language = scrapertools.find_single_match(data, '<span class="f-info-title">Idioma:<\/span>\s*<span ' #videoitem.language = scrapertools.find_single_match(data, '<span class="f-info-title">Idioma:<\/span>\s*<span '
'class="f-info-text">(.*?)<\/span>') # 'class="f-info-text">(.*?)<\/span>')
if len(lang)<=i:
videoitem.language=lang[i]
else:
videoitem.language=lang[len(lang)-1]
videoitem.title = item.contentSerieName + ' (' + videoitem.server + ') (' + videoitem.language + ')' videoitem.title = item.contentSerieName + ' (' + videoitem.server + ') (' + videoitem.language + ')'
videoitem.quality = 'default' videoitem.quality = 'default'
videoitem.context = item.context videoitem.context = item.context
i=i+1
itemlist.append(videoitem) itemlist.append(videoitem)
# Requerido para FilterTools # Requerido para FilterTools
+6 -4
View File
@@ -78,10 +78,10 @@ def lista(item):
url="https://serieslan.com/pag-"+str(a) url="https://serieslan.com/pag-"+str(a)
if b>10: if b>10:
itemlist.append( itemlist.append(
Item(channel=item.channel, title="Página Siguiente >>", url=url, action="lista", page=0)) Item(channel=item.channel, title="[COLOR cyan]Página Siguiente >>[/COLOR]", url=url, action="lista", page=0))
else: else:
itemlist.append( itemlist.append(
Item(channel=item.channel, title="Página Siguiente >>", url=item.url, action="lista", page=item.page + 1)) Item(channel=item.channel, title="[COLOR cyan]Página Siguiente >>[/COLOR]", url=item.url, action="lista", page=item.page + 1))
tmdb.set_infoLabels(itemlist) tmdb.set_infoLabels(itemlist)
return itemlist return itemlist
@@ -92,7 +92,6 @@ def episodios(item):
itemlist = [] itemlist = []
data = httptools.downloadpage(item.url).data data = httptools.downloadpage(item.url).data
logger.debug("info %s " % data)
# obtener el numero total de episodios # obtener el numero total de episodios
total_episode = 0 total_episode = 0
@@ -185,7 +184,6 @@ def findvideos(item):
data = eval(data) data = eval(data)
if type(data) == list: if type(data) == list:
logger.debug("inside")
video_url = url_server % (txc(ide, base64.decodestring(data[2]))) video_url = url_server % (txc(ide, base64.decodestring(data[2])))
server = "openload" server = "openload"
if " SUB" in item.title: if " SUB" in item.title:
@@ -195,6 +193,10 @@ def findvideos(item):
else: else:
lang = "Latino" lang = "Latino"
title = "Enlace encontrado en " + server + " [" + lang + "]" title = "Enlace encontrado en " + server + " [" + lang + "]"
if item.contentChannel=='videolibrary':
itemlist.append(item.clone(channel=item.channel, action="play", url=video_url,
thumbnail=thumbnail, server=server, folder=False))
else:
itemlist.append(Item(channel=item.channel, action="play", title=title, show=show, url=video_url, plot=item.plot, itemlist.append(Item(channel=item.channel, action="play", title=title, show=show, url=video_url, plot=item.plot,
thumbnail=thumbnail, server=server, folder=False)) thumbnail=thumbnail, server=server, folder=False))
+1
View File
@@ -40,6 +40,7 @@
</category> </category>
<category label="Opciones Visuales"> <category label="Opciones Visuales">
<setting id="icon_set" type="labelenum" label="Set de iconos" values="default|dark" default="default"/> <setting id="icon_set" type="labelenum" label="Set de iconos" values="default|dark" default="default"/>
<setting id="infoplus_set" type="labelenum" label="Opción visual Infoplus" values="Sin animación|Con animación" default="Sin animación"/>
</category> </category>
<category label="Otros"> <category label="Otros">
<setting label="Info de películas/series en menú contextual" type="lsep"/> <setting label="Info de películas/series en menú contextual" type="lsep"/>
+1 -1
View File
@@ -37,7 +37,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
cgi_counter = cgi_counter.replace("%0A","").replace("%22","") cgi_counter = cgi_counter.replace("%0A","").replace("%22","")
playnow = scrapertools.find_single_match(data, 'https://www.flashx.tv/dl[^"]+') playnow = scrapertools.find_single_match(data, 'https://www.flashx.tv/dl[^"]+')
# Para obtener el f y el fxfx # Para obtener el f y el fxfx
js_fxfx = "https://www." + scrapertools.find_single_match(data.replace("//","/"), """(?is)(flashx.tv/js/code.js.*?[^(?:'|")]+)""") js_fxfx = "https://www." + scrapertools.find_single_match(data.replace("//","/"), """(?is)(flashx.tv/jss/coder.js.*?[^(?:'|")]+)""")
data_fxfx = httptools.downloadpage(js_fxfx).data data_fxfx = httptools.downloadpage(js_fxfx).data
mfxfx = scrapertools.find_single_match(data_fxfx, 'get.*?({.*?})').replace("'","").replace(" ","") mfxfx = scrapertools.find_single_match(data_fxfx, 'get.*?({.*?})').replace("'","").replace(" ","")
matches = scrapertools.find_multiple_matches(mfxfx, '(\w+):(\w+)') matches = scrapertools.find_multiple_matches(mfxfx, '(\w+):(\w+)')
+4 -2
View File
@@ -8,9 +8,11 @@ from platformcode import logger
def test_video_exists(page_url): def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url) logger.info("(page_url='%s')" % page_url)
data = httptools.downloadpage(page_url).data response = httptools.downloadpage(page_url)
if "video_error.mp4" in data: if "video_error.mp4" in response.data:
return False, "[Stormo] El archivo no existe o ha sido borrado" return False, "[Stormo] El archivo no existe o ha sido borrado"
if response.code == 451:
return False, "[Stormo] El archivo ha sido borrado por problemas legales."
return True, "" return True, ""