From fe5b72c2ff23d8bc92bd6693c0a10da22159690e Mon Sep 17 00:00:00 2001 From: Kingbox <37674310+lopezvg@users.noreply.github.com> Date: Wed, 3 Oct 2018 14:43:44 +0200 Subject: [PATCH 1/4] =?UTF-8?q?Cambio=20de=20categor=C3=ADas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin.video.alfa/channels/cinecalidad.json | 10 ++++++---- plugin.video.alfa/channels/verpelis.json | 2 -- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/plugin.video.alfa/channels/cinecalidad.json b/plugin.video.alfa/channels/cinecalidad.json index 12d9c683..efef7445 100755 --- a/plugin.video.alfa/channels/cinecalidad.json +++ b/plugin.video.alfa/channels/cinecalidad.json @@ -3,11 +3,13 @@ "name": "CineCalidad", "active": true, "adult": false, - "language": ["cast", "lat"], + "language": ["cast", "lat", "por"], "thumbnail": "https://s9.postimg.cc/58xyblsvj/cinecalidad.png", "banner": "https://s32.postimg.cc/kihkdpx1x/banner_cinecalidad.png", "categories": [ "movie", + "direct", + "vos", "torrent" ], "settings": [ @@ -15,9 +17,9 @@ "id": "include_in_global_search", "type": "bool", "label": "Incluir en busqueda global", - "default": false, - "enabled": false, - "visible": false + "default": true, + "enabled": true, + "visible": true }, { "id": "filter_languages", diff --git a/plugin.video.alfa/channels/verpelis.json b/plugin.video.alfa/channels/verpelis.json index 110e4f54..a78a05d7 100644 --- a/plugin.video.alfa/channels/verpelis.json +++ b/plugin.video.alfa/channels/verpelis.json @@ -6,9 +6,7 @@ "language": ["cast", "lat"], "thumbnail": "http://imgur.com/lmYQgOu.png", "categories": [ - "torrent", "movie", - "tvshow", "direct" ], "settings": [ From 138c419c2340421e9fabcdd96b988b47ae16ea3f Mon Sep 17 00:00:00 2001 From: Kingbox <37674310+lopezvg@users.noreply.github.com> Date: Wed, 3 Oct 2018 14:44:45 +0200 Subject: [PATCH 2/4] Kodi 18: mejoras de compatibilidad --- plugin.video.alfa/channels/videolibrary.py | 4 ++++ plugin.video.alfa/platformcode/platformtools.py | 9 +++++---- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/plugin.video.alfa/channels/videolibrary.py b/plugin.video.alfa/channels/videolibrary.py index ff1e58ad..70d07822 100644 --- a/plugin.video.alfa/channels/videolibrary.py +++ b/plugin.video.alfa/channels/videolibrary.py @@ -460,6 +460,10 @@ def findvideos(item): server.channel = "videolibrary" server.nfo = item.nfo server.strm_path = item.strm_path + + #### Compatibilidad con Kodi 18: evita que se quede la ruedecedita dando vueltas en enlaces Directos + if server.action == 'play': + server.folder = False # Se añade el nombre del canal si se desea if config.get_setting("quit_channel_name", "videolibrary") == 0: diff --git a/plugin.video.alfa/platformcode/platformtools.py b/plugin.video.alfa/platformcode/platformtools.py index a98bcab3..7fe2fc62 100644 --- a/plugin.video.alfa/platformcode/platformtools.py +++ b/plugin.video.alfa/platformcode/platformtools.py @@ -1080,12 +1080,13 @@ def play_torrent(item, xlistitem, mediaurl): if seleccion > 1: #### 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 evitar error Kod1 18 - xbmc.sleep(500) #Dejamos tiempo para que se ejecute + #if xbmc.getCondVisibility('Window.IsMedia'): + xbmcplugin.setResolvedUrl(int(sys.argv[1]), False, xlistitem) #Preparamos el entorno para evitar error Kod1 18 + time.sleep(0.5) #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 + #Llamada con más parámetros para completar el título + if ("quasar" in torrent_options[seleccion][1] or "elementum" in torrent_options[seleccion][1]) and item.infoLabels['tmdb_id']: if item.contentType == 'episode' and "elementum" not in torrent_options[seleccion][1]: mediaurl += "&episode=%s&library=&season=%s&show=%s&tmdb=%s&type=episode" % (item.infoLabels['episode'], item.infoLabels['season'], item.infoLabels['tmdb_id'], item.infoLabels['tmdb_id']) elif item.contentType == 'movie': From 3e624aa16513e60676d9dcff38e4d47c0eef9484 Mon Sep 17 00:00:00 2001 From: Kingbox <37674310+lopezvg@users.noreply.github.com> Date: Wed, 3 Oct 2018 14:45:21 +0200 Subject: [PATCH 3/4] =?UTF-8?q?Generictools:=20mejora=20en=20m=C3=A9todo?= =?UTF-8?q?=20de=20redirecci=C3=B3n=20de=20canales?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin.video.alfa/lib/generictools.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/plugin.video.alfa/lib/generictools.py b/plugin.video.alfa/lib/generictools.py index 39107442..3eb5f344 100644 --- a/plugin.video.alfa/lib/generictools.py +++ b/plugin.video.alfa/lib/generictools.py @@ -486,7 +486,7 @@ def post_tmdb_seasons(item, itemlist): Pasada para gestión del menú de Temporadas de una Serie La clave de activación de este método es la variable item.season_colapse que pone el canal en el Item de Listado. - Esta variable tendrá que desaparecer cuando se aña a la Videoteca para que se analicen los episodios de la forma tradicional + Esta variable tendrá que desaparecer cuando se añada a la Videoteca para que se analicen los episodios de la forma tradicional Repasa todos los episodios producidos en itemlist por "episodios" del canal para extraer las temporadas. Pone un título para Todas la Temps. Crea un menú con las diferentes temporadas, así como con los títulos de Actualización de Título y de Añadir a Videoteca @@ -1743,7 +1743,7 @@ def redirect_clone_newpct1(item, head_nfo=None, it=None, path=False, overwrite=F if ow_force == 'del': #Si es un borrado de estructuras erroneas, hacemos un proceso aparte canal_des_def = canal_des #Si hay canal de sustitución para item.library_urls, lo usamos if not canal_des_def and canal_org in item.library_urls and len(item.library_urls) == 1: #Si no, lo extraemos de la url - canal_des_def = scrapertools.find_single_match(item.library_urls[canal_org], 'http.?\:\/\/(?:www.)?(\w+)\.\w+\/').lower() #salvamos la url actual de la estructura a borrar + canal_des_def = scrapertools.find_single_match(item.library_urls[canal_org], 'http.?\:\/\/(?:www.)?(\w+)\.\w+\/').lower() #salvamos la url actual de la estructura a borrar url_total = '' if item.url: url_total = item.url #Si existe item.url, lo salvamos para futuro uso @@ -1795,7 +1795,7 @@ def redirect_clone_newpct1(item, head_nfo=None, it=None, path=False, overwrite=F channel_alt = channel_py if channel_alt == 'videolibrary': continue - if item.contentType == "list": #Si viene de Videolibrary, le cambiamos ya el canal + if item.contentType == "list": #Si viene de Videolibrary, le cambiamos ya el canal if item.channel != channel_py: item.channel = canal_des #Cambiamos el canal. Si es clone, lo hace el canal continue #Salimos sin hacer nada más. item está casi vacío @@ -1811,7 +1811,7 @@ def redirect_clone_newpct1(item, head_nfo=None, it=None, path=False, overwrite=F continue #... una intervención que afecte solo a una región if ow_force == 'no' and it.library_urls: #Esta regla solo vale para findvideos... continue #... salidmos si estamos actualizando - if lookup == True: #Queremos que el canal solo visualice sin migración? + if lookup == True: #Queremos que el canal solo visualice sin migración? if ow_force != 'no': overwrite = True #Avisamos que hay cambios continue #Salimos sin tocar archivos @@ -1820,7 +1820,7 @@ def redirect_clone_newpct1(item, head_nfo=None, it=None, path=False, overwrite=F url_total = item.url elif not item.url and item.library_urls: url_total = item.library_urls[canal_org] - url_total = url_total.replace(url_org, url_des) #reemplazamos una parte de url + url_total = url_total.replace(url_org, url_des) #reemplazamos una parte de url url = '' if patron1: #Hay expresión regex? url += scrapertools.find_single_match(url_total, patron1) #La aplicamos a url @@ -1856,7 +1856,7 @@ def redirect_clone_newpct1(item, head_nfo=None, it=None, path=False, overwrite=F item.channel = canal_des_def #Cambiamos el canal. Si es clone, lo hace el canal if channel_alt == item.category.lower(): #Actualizamos la Categoría y si la tenía item.category = item.channel.capitalize() - if ow_force_def == 'force': #Queremos que el canal revise la serie entera? + if ow_force_def == 'force' and item.contentType != 'movie': #Queremos que el canal revise la serie entera? item.ow_force = '1' #Se lo decimos if ow_force_def in ['force', 'auto']: #Sobreescribir la series? overwrite = True #Sí, lo marcamos From 1d358c75274beac49746497be3ce017051d02550 Mon Sep 17 00:00:00 2001 From: Kingbox <37674310+lopezvg@users.noreply.github.com> Date: Wed, 3 Oct 2018 14:45:55 +0200 Subject: [PATCH 4/4] Mejoras en refresco de ventana emergente --- plugin.video.alfa/platformcode/launcher.py | 52 ++++++++++++---------- 1 file changed, 29 insertions(+), 23 deletions(-) diff --git a/plugin.video.alfa/platformcode/launcher.py b/plugin.video.alfa/platformcode/launcher.py index f69db421..1f5b5719 100644 --- a/plugin.video.alfa/platformcode/launcher.py +++ b/plugin.video.alfa/platformcode/launcher.py @@ -386,7 +386,7 @@ def play_from_library(item): @param item: elemento con información """ logger.info() - # logger.debug("item: \n" + item.tostring('\n')) + #logger.debug("item: \n" + item.tostring('\n')) import xbmcgui import xbmcplugin @@ -437,33 +437,39 @@ def play_from_library(item): itemlist = reorder_itemlist(itemlist) + import time p_dialog.update(100, '') - xbmc.sleep(500) + time.sleep(0.5) p_dialog.close() if len(itemlist) > 0: - # El usuario elige el mirror - opciones = [] - for item in itemlist: - opciones.append(item.title) + while not xbmc.Monitor().abortRequested(): + # El usuario elige el mirror + opciones = [] + for item in itemlist: + opciones.append(item.title) - # Se abre la ventana de seleccion - if (item.contentSerieName != "" and - item.contentSeason != "" and - item.contentEpisodeNumber != ""): - cabecera = ("%s - %sx%s -- %s" % - (item.contentSerieName, - item.contentSeason, - item.contentEpisodeNumber, - config.get_localized_string(30163))) - else: - cabecera = config.get_localized_string(30163) + # Se abre la ventana de seleccion + if (item.contentSerieName != "" and + item.contentSeason != "" and + item.contentEpisodeNumber != ""): + cabecera = ("%s - %sx%s -- %s" % + (item.contentSerieName, + item.contentSeason, + item.contentEpisodeNumber, + config.get_localized_string(30163))) + else: + cabecera = config.get_localized_string(30163) - seleccion = platformtools.dialog_select(cabecera, opciones) + seleccion = platformtools.dialog_select(cabecera, opciones) - if seleccion == -1: - return - else: - item = videolibrary.play(itemlist[seleccion])[0] - platformtools.play_video(item) + if seleccion == -1: + return + else: + item = videolibrary.play(itemlist[seleccion])[0] + platformtools.play_video(item) + + from channels import autoplay + if (platformtools.is_playing() and item.action) or item.server == 'torrent' or autoplay.is_active(item.contentChannel): + break