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, '