From eb055fabf1244e1b8405b607c6250a3203be7c47 Mon Sep 17 00:00:00 2001
From: Kingbox <37674310+lopezvg@users.noreply.github.com>
Date: Wed, 19 Sep 2018 14:47:38 +0200
Subject: [PATCH 1/7] Kodi 18: arreglos de compatibilidad
---
plugin.video.alfa/channels/infoplus.py | 27 +++++++++++++---
plugin.video.alfa/channels/renumbertools.py | 10 +++---
plugin.video.alfa/channels/search.py | 8 ++++-
plugin.video.alfa/channels/side_menu.py | 5 ++-
plugin.video.alfa/platformcode/keymaptools.py | 4 ++-
.../platformcode/platformtools.py | 26 +++++++--------
plugin.video.alfa/platformcode/recaptcha.py | 4 ++-
.../platformcode/xbmc_config_menu.py | 1 +
.../platformcode/xbmc_info_window.py | 10 +++---
plugin.video.alfa/resources/settings.xml | 32 +++++++++----------
10 files changed, 81 insertions(+), 46 deletions(-)
diff --git a/plugin.video.alfa/channels/infoplus.py b/plugin.video.alfa/channels/infoplus.py
index 0f2f8bfe..35af3db9 100755
--- a/plugin.video.alfa/channels/infoplus.py
+++ b/plugin.video.alfa/channels/infoplus.py
@@ -275,7 +275,11 @@ class main(xbmcgui.WindowDialog):
skin = xbmc.getSkinDir()
self.fonts = get_fonts(skin)
- self.setCoordinateResolution(2)
+
+ #### Compatibilidad con Kodi 18 ####
+ if config.get_platform(True)['num_version'] < 18:
+ self.setCoordinateResolution(2)
+
self.actorButton = xbmcgui.ControlButton(995, 475, 55, 55, '', font='Font40', alignment=0x00000006,
noFocusTexture='https://s17.postimg.cc/40acsuihb/thumb_search_star_no.png',
focusTexture='https://s33.postimg.cc/ikk0qyvrj/thumb_search_star.png',
@@ -805,7 +809,10 @@ class related(xbmcgui.WindowDialog):
import traceback
logger.error(traceback.format_exc())
- self.setCoordinateResolution(2)
+ #### Compatibilidad con Kodi 18 ####
+ if config.get_platform(True)['num_version'] < 18:
+ self.setCoordinateResolution(2)
+
self.background = xbmcgui.ControlImage(178, 50, 1053, 634, self.infoLabels.get("fanart",
"http://s6.postimg.cc/fflvear2p/nofanart.png"))
self.addControl(self.background)
@@ -1207,6 +1214,7 @@ def busqueda_global(item, infoLabels, org_title=False):
cat = ["serie"]
else:
cat = ["movie"]
+ cat += ["infoPlus"]
new_item = Item()
new_item.extra = infoLabels.get("title", "")
@@ -1546,7 +1554,10 @@ class ActorInfo(xbmcgui.WindowDialog):
elif not actor_tmdb.result.get("biography"):
actor_tmdb.result["biography"] = "Sin información"
- self.setCoordinateResolution(2)
+ #### Compatibilidad con Kodi 18 ####
+ if config.get_platform(True)['num_version'] < 18:
+ self.setCoordinateResolution(2)
+
self.background = xbmcgui.ControlImage(30, -5, 1250, 730, 'http://imgur.com/7ccBX3g.png')
self.addControl(self.background)
if set_animation:
@@ -1952,7 +1963,10 @@ class images(xbmcgui.WindowDialog):
for imagen, title in self.mal:
self.imagenes.append(imagen)
- self.setCoordinateResolution(2)
+ #### Compatibilidad con Kodi 18 ####
+ if config.get_platform(True)['num_version'] < 18:
+ self.setCoordinateResolution(2)
+
self.shadow = xbmcgui.ControlImage(245, 10, 1011, 700, 'http://imgur.com/66VSLTo.png')
self.addControl(self.shadow)
if set_animation:
@@ -2175,7 +2189,10 @@ class Trailer(xbmcgui.WindowXMLDialog):
self.doModal()
def onInit(self):
- self.setCoordinateResolution(0)
+ #### Compatibilidad con Kodi 18 ####
+ if config.get_platform(True)['num_version'] < 18:
+ self.setCoordinateResolution(0)
+
if not self.video_url:
platformtools.dialog_notification(config.get_localized_string(60507),
config.get_localized_string(60508), 2)
diff --git a/plugin.video.alfa/channels/renumbertools.py b/plugin.video.alfa/channels/renumbertools.py
index 9c5c933e..4f4cbad4 100755
--- a/plugin.video.alfa/channels/renumbertools.py
+++ b/plugin.video.alfa/channels/renumbertools.py
@@ -304,10 +304,12 @@ if xbmcgui:
def __init__(self, *args, **kwargs):
logger.debug()
- if xbmcgui.__version__ == "1.2":
- self.setCoordinateResolution(1)
- else:
- self.setCoordinateResolution(5)
+ #### Compatibilidad con Kodi 18 ####
+ if config.get_platform(True)['num_version'] < 18:
+ if xbmcgui.__version__ == "1.2":
+ self.setCoordinateResolution(1)
+ else:
+ self.setCoordinateResolution(5)
self.show = kwargs.get("show")
self.channel = kwargs.get("channel")
diff --git a/plugin.video.alfa/channels/search.py b/plugin.video.alfa/channels/search.py
index 5daecf53..63075bbb 100644
--- a/plugin.video.alfa/channels/search.py
+++ b/plugin.video.alfa/channels/search.py
@@ -394,6 +394,10 @@ def show_result(item):
return channel.search(item, tecleado)
else:
# Mostrar resultados: todos juntos
+ if item.infoPlus: #Si viene de una ventana de InfoPlus, hay que salir de esta forma...
+ del item.infoPlus #si no, se mete en un bucle mostrando la misma pantalla,
+ item.title = item.title.strip() #dando error en "handle -1"
+ return getattr(channel, item.action)(item)
try:
from platformcode import launcher
launcher.run(item)
@@ -489,7 +493,7 @@ def do_search(item, categories=None):
if categories:
# Si no se ha seleccionado torrent no se muestra
- if "torrent" not in categories:
+ if "torrent" not in categories and "infoPlus" not in categories:
if "torrent" in channel_parameters["categories"]:
logger.info("%s -torrent-" % basename_without_extension)
continue
@@ -601,6 +605,8 @@ def do_search(item, categories=None):
for i in element["itemlist"]:
if i.action:
title = " " + i.title
+ if "infoPlus" in categories: #Se manrca vi viene de una ventana de InfoPlus
+ i.infoPlus = True
itemlist.append(i.clone(title=title, from_action=i.action, from_channel=i.channel,
channel="search", action="show_result", adult=element["adult"]))
diff --git a/plugin.video.alfa/channels/side_menu.py b/plugin.video.alfa/channels/side_menu.py
index f748416a..6b4f79b4 100644
--- a/plugin.video.alfa/channels/side_menu.py
+++ b/plugin.video.alfa/channels/side_menu.py
@@ -91,7 +91,10 @@ class Main(xbmcgui.WindowXMLDialog):
self.items = []
def onInit(self):
- self.setCoordinateResolution(2)
+ #### Compatibilidad con Kodi 18 ####
+ if config.get_platform(True)['num_version'] < 18:
+ self.setCoordinateResolution(2)
+
self.focus = -1
self.buttons = []
posx= 0
diff --git a/plugin.video.alfa/platformcode/keymaptools.py b/plugin.video.alfa/platformcode/keymaptools.py
index d65939ae..5af7b903 100644
--- a/plugin.video.alfa/platformcode/keymaptools.py
+++ b/plugin.video.alfa/platformcode/keymaptools.py
@@ -97,7 +97,9 @@ class Main(xbmcgui.WindowXMLDialog):
self.items = []
def onInit(self):
- self.setCoordinateResolution(2)
+ #### Compatibilidad con Kodi 18 ####
+ if config.get_platform(True)['num_version'] < 18:
+ self.setCoordinateResolution(2)
for menuentry in MAIN_MENU.keys():
item = xbmcgui.ListItem(MAIN_MENU[menuentry]["label"])
diff --git a/plugin.video.alfa/platformcode/platformtools.py b/plugin.video.alfa/platformcode/platformtools.py
index f1ad9e63..40c18522 100644
--- a/plugin.video.alfa/platformcode/platformtools.py
+++ b/plugin.video.alfa/platformcode/platformtools.py
@@ -1071,8 +1071,8 @@ def play_torrent(item, xlistitem, mediaurl):
#### Compatibilidad con Kodi 18: evita cuelgues/cancelaciones cuando el .torrent se lanza desde pantalla convencional
if xbmc.getCondVisibility('Window.IsMedia'):
- xbmcplugin.setResolvedUrl(int(sys.argv[1]), False, xlistitem) #Preparamos el entorno para evutar error Kod1 18
- time.sleep(1) #Dejamos que se ejecute
+ xbmcplugin.setResolvedUrl(int(sys.argv[1]), False, xlistitem) #Preparamos el entorno para evitar error Kod1 18
+ time.sleep(1) #Dejamos tiempo para que se ejecute
mediaurl = urllib.quote_plus(item.url)
if ("quasar" in torrent_options[seleccion][1] or "elementum" in torrent_options[seleccion][1]) and item.infoLabels['tmdb_id']: #Llamada con más parámetros para completar el título
@@ -1083,17 +1083,17 @@ def play_torrent(item, xlistitem, mediaurl):
xbmc.executebuiltin("PlayMedia(" + torrent_options[seleccion][1] % mediaurl + ")")
- #Seleccionamos que clientes torrent soportamos para el marcado de vídeos vistos
- if "quasar" in torrent_options[seleccion][1] or "elementum" in torrent_options[seleccion][1]:
- time_limit = time.time() + 150 #Marcamos el timepo máx. de buffering
- while not is_playing() and time.time() < time_limit: #Esperamos mientra buffera
- time.sleep(5) #Repetimos cada intervalo
- #logger.debug(str(time_limit))
-
- if item.strm_path and is_playing(): #Sólo si es de Videoteca
- from platformcode import xbmc_videolibrary
- xbmc_videolibrary.mark_auto_as_watched(item) #Marcamos como visto al terminar
- #logger.debug("Llamado el marcado")
+ #Seleccionamos que clientes torrent soportamos para el marcado de vídeos vistos: asumimos que todos funcionan
+ #if "quasar" in torrent_options[seleccion][1] or "elementum" in torrent_options[seleccion][1]:
+ time_limit = time.time() + 150 #Marcamos el timepo máx. de buffering
+ while not is_playing() and time.time() < time_limit: #Esperamos mientra buffera
+ time.sleep(5) #Repetimos cada intervalo
+ #logger.debug(str(time_limit))
+
+ if item.strm_path and is_playing(): #Sólo si es de Videoteca
+ from platformcode import xbmc_videolibrary
+ xbmc_videolibrary.mark_auto_as_watched(item) #Marcamos como visto al terminar
+ #logger.debug("Llamado el marcado")
if seleccion == 1:
from platformcode import mct
diff --git a/plugin.video.alfa/platformcode/recaptcha.py b/plugin.video.alfa/platformcode/recaptcha.py
index c4f5c037..f1e6eb93 100755
--- a/plugin.video.alfa/platformcode/recaptcha.py
+++ b/plugin.video.alfa/platformcode/recaptcha.py
@@ -40,7 +40,9 @@ class Recaptcha(xbmcgui.WindowXMLDialog):
self.imagen = kwargs.get("imagen")
def onInit(self):
- self.setCoordinateResolution(2)
+ #### Compatibilidad con Kodi 18 ####
+ if config.get_platform(True)['num_version'] < 18:
+ self.setCoordinateResolution(2)
self.update_window()
def onClick(self, control):
diff --git a/plugin.video.alfa/platformcode/xbmc_config_menu.py b/plugin.video.alfa/platformcode/xbmc_config_menu.py
index 32416094..fcab6853 100755
--- a/plugin.video.alfa/platformcode/xbmc_config_menu.py
+++ b/plugin.video.alfa/platformcode/xbmc_config_menu.py
@@ -469,6 +469,7 @@ class SettingsWindow(xbmcgui.WindowXMLDialog):
self.ok_enabled = False
self.default_enabled = False
+ #### Compatibilidad con Kodi 18 ####
if config.get_platform(True)['num_version'] < 18:
if xbmcgui.__version__ == "1.2":
self.setCoordinateResolution(1)
diff --git a/plugin.video.alfa/platformcode/xbmc_info_window.py b/plugin.video.alfa/platformcode/xbmc_info_window.py
index 557bff6c..75d6b82c 100755
--- a/plugin.video.alfa/platformcode/xbmc_info_window.py
+++ b/plugin.video.alfa/platformcode/xbmc_info_window.py
@@ -184,10 +184,12 @@ class InfoWindow(xbmcgui.WindowXMLDialog):
self.scraper = Tmdb
def onInit(self):
- if xbmcgui.__version__ == "1.2":
- self.setCoordinateResolution(1)
- else:
- self.setCoordinateResolution(5)
+ #### Compatibilidad con Kodi 18 ####
+ if config.get_platform(True)['num_version'] < 18:
+ if xbmcgui.__version__ == "1.2":
+ self.setCoordinateResolution(1)
+ else:
+ self.setCoordinateResolution(5)
# Ponemos el título y las imagenes
self.getControl(10002).setLabel(self.caption)
diff --git a/plugin.video.alfa/resources/settings.xml b/plugin.video.alfa/resources/settings.xml
index b9b426cc..f9288c48 100644
--- a/plugin.video.alfa/resources/settings.xml
+++ b/plugin.video.alfa/resources/settings.xml
@@ -53,52 +53,52 @@
From 2b50852146281deed8a8a6f6689ace3242b9beba Mon Sep 17 00:00:00 2001
From: Kingbox <37674310+lopezvg@users.noreply.github.com>
Date: Wed, 19 Sep 2018 14:49:28 +0200
Subject: [PATCH 2/7] =?UTF-8?q?PelisMagnet:=20redise=C3=B1o=20de=20Canal?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
plugin.video.alfa/channels/pelismagnet.json | 47 +-
plugin.video.alfa/channels/pelismagnet.py | 1074 ++++++++++++-------
2 files changed, 748 insertions(+), 373 deletions(-)
diff --git a/plugin.video.alfa/channels/pelismagnet.json b/plugin.video.alfa/channels/pelismagnet.json
index 03a2f6a1..b8c65189 100755
--- a/plugin.video.alfa/channels/pelismagnet.json
+++ b/plugin.video.alfa/channels/pelismagnet.json
@@ -17,7 +17,7 @@
"id": "include_in_global_search",
"type": "bool",
"label": "Incluir en busqueda global",
- "default": false,
+ "default": true,
"enabled": true,
"visible": true
},
@@ -29,6 +29,22 @@
"enabled": true,
"visible": true
},
+ {
+ "id": "filter_languages",
+ "type": "list",
+ "label": "Mostrar enlaces en idioma...",
+ "default": 0,
+ "enabled": true,
+ "visible": true,
+ "lvalues": [
+ "No filtrar",
+ "CAST",
+ "LAT",
+ "VO",
+ "VOS",
+ "VOSE"
+ ]
+ },
{
"id": "include_in_newest_torrent",
"type": "bool",
@@ -36,6 +52,35 @@
"default": true,
"enabled": true,
"visible": true
+ },
+ {
+ "id": "include_in_newest_peliculas",
+ "type": "bool",
+ "label": "Incluir en Novedades - Peliculas",
+ "default": true,
+ "enabled": true,
+ "visible": true
+ },
+ {
+ "id": "timeout_downloadpage",
+ "type": "list",
+ "label": "Timeout (segs.) en descarga de páginas o verificación de servidores",
+ "default": 10,
+ "enabled": true,
+ "visible": true,
+ "lvalues": [
+ "None",
+ "1",
+ "2",
+ "3",
+ "4",
+ "5",
+ "6",
+ "7",
+ "8",
+ "9",
+ "10"
+ ]
}
]
}
\ No newline at end of file
diff --git a/plugin.video.alfa/channels/pelismagnet.py b/plugin.video.alfa/channels/pelismagnet.py
index 9a6f08a1..0157347b 100644
--- a/plugin.video.alfa/channels/pelismagnet.py
+++ b/plugin.video.alfa/channels/pelismagnet.py
@@ -1,372 +1,702 @@
-# -*- coding: utf-8 -*-
-
-import re
-import urllib
-
-from core import httptools
-from core import jsontools
-from core import scrapertools
-from core import servertools
-from core.item import Item
-from platformcode import config, logger
-
-host = 'http://pelismag.net'
-api = host + '/api'
-api_serie = host + "/seapi"
-api_temp = host + "/sapi"
-__modo_grafico__ = config.get_setting("modo_grafico", "pelismagnet")
-
-
-def mainlist(item):
- logger.info()
-
- itemlist = list()
- itemlist.append(Item(channel=item.channel, action="pelis", title="[B]Peliculas[/B]",
- url=api + "?sort_by=''&page=0"))
- itemlist.append(Item(channel=item.channel, action="pelis", title=" Estrenos",
- url=api + "?sort_by=date_added&page=0"))
- itemlist.append(Item(channel=item.channel, action="pelis", title=" + Populares", url=api + "?page=0"))
- itemlist.append(Item(channel=item.channel, action="pelis", title=" + Valoradas",
- url=api + "?sort_by=rating&page=0"))
- itemlist.append(Item(channel=item.channel, action="menu_ord", title=" Ordenado por...",
- url=api))
- itemlist.append(
- Item(channel=item.channel, action="search", title=" Buscar...", url=api + "?keywords=%s&page=0"))
- itemlist.append(Item(channel=item.channel, action="series", title="[B]Series[/B]",
- url=api_serie + "?sort_by=''&page=0"))
- itemlist.append(Item(channel=item.channel, action="series", title=" Recientes",
- url=api_serie + "?sort_by=date_added&page=0"))
- itemlist.append(Item(channel=item.channel, action="series", title=" + Populares", url=api_serie + "?page=0"))
- itemlist.append(Item(channel=item.channel, action="series", title=" + Valoradas",
- url=api_serie + "?sort_by=rating&page=0"))
- itemlist.append(Item(channel=item.channel, action="menu_ord", title=" Ordenado por...",
- url=api_serie))
- itemlist.append(Item(channel=item.channel, action="search", title=" Buscar...",
- url=api_serie + "?keywords=%s&page=0"))
- itemlist.append(Item(channel=item.channel, action="configuracion", title="Configurar canal"))
-
- return itemlist
-
-
-def configuracion(item):
- from platformcode import platformtools
- ret = platformtools.show_channel_settings()
- platformtools.itemlist_refresh()
- return ret
-
-
-def menu_ord(item):
- logger.info()
-
- itemlist = list()
- itemlist.append(Item(channel=item.channel, action="menu_alf", title="Alfabético",
- url=item.url))
- itemlist.append(Item(channel=item.channel, action="menu_genero", title="Género",
- url=item.url))
-
- return itemlist
-
-
-def menu_alf(item):
- logger.info()
-
- itemlist = []
-
- for letra in ['[0-9]', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R',
- 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']:
- if 'series' in item.url:
- action = 'series'
- else:
- action = 'pelis'
- itemlist.append(Item(channel=item.channel, action=action, title=letra,
- url=item.url + "?keywords=^" + letra + "&page=0"))
-
- return itemlist
-
-
-def menu_genero(item):
- logger.info()
-
- itemlist = []
- # TODO: SOLO FUNCIONA POR AHORA A PARTIR DE KODI 17
- # httptools.downloadpage("https://kproxy.com/")
- # url = "https://kproxy.com/doproxy.jsp"
- # post = "page=%s&x=34&y=14" % urllib.quote(host + "/principal")
- # response = httptools.downloadpage(url, post, follow_redirects=False).data
- # url = scrapertools.find_single_match(response, '|
|
|
|
|-\s", "", data)
-
- data = scrapertools.find_single_match(data, '