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] 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 @@