def play_from_library(item): """ Los .strm al reproducirlos desde kodi, este espera que sea un archivo "reproducible" asi que no puede contener más items, como mucho se puede colocar un dialogo de seleccion. Esto lo solucionamos "engañando a kodi" y haciendole creer que se ha reproducido algo, asi despues mediante "Container.Update()" cargamos el strm como si un item desde dentro de pelisalacarta se tratara, quitando todas las limitaciones y permitiendo reproducir mediante la funcion general sin tener que crear nuevos métodos para la biblioteca. @type item: item @param item: elemento con información """ logger.info("streamondemand.platformcode.launcher play_from_library") # logger.debug("item: \n" + item.tostring('\n')) import xbmcgui import xbmcplugin import xbmc # Intentamos reproducir una imagen (esto no hace nada y ademas no da error) xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, xbmcgui.ListItem(path=os.path.join(config.get_runtime_path(), "icon.png"))) # Por si acaso la imagen hiciera (en futuras versiones) le damos a stop para detener la reproduccion xbmc.Player().stop() # modificamos el action (actualmente la biblioteca necesita "findvideos" ya que es donde se buscan las fuentes item.action = "findvideos" # y volvemos a lanzar kodi if xbmc.getCondVisibility('Window.IsMedia'): xbmc.executebuiltin("Container.Update(" + sys.argv[0] + "?" + item.tourl() + ")") else: from channels import biblioteca from platformcode import xbmc_library p_dialog = platformtools.dialog_progress_bg('streamondemand', 'Caricamento in corso...') p_dialog.update(0, '') itemlist = biblioteca.findvideos(item) p_dialog.update(50, '') if len(itemlist) > 0: # El usuario elige el mirror opciones = [] for item in itemlist: opciones.append(item.title) seleccion = platformtools.dialog_select(config.get_localized_string(30163), opciones) if seleccion == -1: return item = biblioteca.play(itemlist[seleccion])[0] p_dialog.update(100, '') platformtools.play_video(item) p_dialog.close() xbmc_library.mark_auto_as_watched(itemlist[seleccion])
def play_from_library(item): """ Los .strm al reproducirlos desde kodi, este espera que sea un archivo "reproducible" asi que no puede contener más items, como mucho se puede colocar un dialogo de seleccion. Esto lo solucionamos "engañando a kodi" y haciendole creer que se ha reproducido algo, asi despues mediante "Container.Update()" cargamos el strm como si un item desde dentro de pelisalacarta se tratara, quitando todas las limitaciones y permitiendo reproducir mediante la funcion general sin tener que crear nuevos métodos para la biblioteca. @type item: item @param item: elemento con información """ logger.info("pelisalacarta.platformcode.launcher play_from_library") # logger.debug("item: \n" + item.tostring('\n')) import xbmcgui import xbmcplugin import xbmc # Intentamos reproducir una imagen (esto no hace nada y ademas no da error) xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, xbmcgui.ListItem(path=os.path.join(config.get_runtime_path(), "icon.png"))) # Por si acaso la imagen hiciera (en futuras versiones) le damos a stop para detener la reproduccion xbmc.Player().stop() # modificamos el action (actualmente la biblioteca necesita "findvideos" ya que es donde se buscan las fuentes item.action = "findvideos" # y volvemos a lanzar kodi if xbmc.getCondVisibility('Window.IsMedia'): xbmc.executebuiltin("Container.Update(" + sys.argv[0] + "?" + item.tourl() + ")") else: from channels import biblioteca from platformcode import xbmc_library p_dialog = platformtools.dialog_progress_bg('pelisalacarta', 'Cargando...') p_dialog.update(0, '') itemlist = biblioteca.findvideos(item) p_dialog.update(50, '') if len(itemlist) > 0: # El usuario elige el mirror opciones = [] for item in itemlist: opciones.append(item.title) seleccion = platformtools.dialog_select(config.get_localized_string(30163), opciones) if seleccion == -1: return item = biblioteca.play(itemlist[seleccion])[0] p_dialog.update(100, '') platformtools.play_video(item) p_dialog.close() xbmc_library.mark_auto_as_watched(itemlist[seleccion])
def play_from_library(item): """ Los .strm al reproducirlos desde kodi, este espera que sea un archivo "reproducible" asi que no puede contener más items, como mucho se puede colocar un dialogo de seleccion. Esto lo solucionamos "engañando a kodi" y haciendole creer que se ha reproducido algo, asi despues mediante "Container.Update()" cargamos el strm como si un item desde dentro de pelisalacarta se tratara, quitando todas las limitaciones y permitiendo reproducir mediante la funcion general sin tener que crear nuevos métodos para la biblioteca. @type item: item @param item: elemento con información """ logger.info() # logger.debug("item: \n" + item.tostring('\n')) import xbmcgui import xbmcplugin import xbmc # Intentamos reproducir una imagen (esto no hace nada y ademas no da error) xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, xbmcgui.ListItem(path=os.path.join(config.get_runtime_path(), "icon.png"))) # Por si acaso la imagen hiciera (en futuras versiones) le damos a stop para detener la reproduccion xbmc.Player().stop() # modificamos el action (actualmente la biblioteca necesita "findvideos" ya que es donde se buscan las fuentes item.action = "findvideos" window_type = config.get_setting("window_type", "biblioteca") # y volvemos a lanzar kodi if xbmc.getCondVisibility('Window.IsMedia') and not window_type == 1: # Ventana convencional xbmc.executebuiltin("Container.Update(" + sys.argv[0] + "?" + item.tourl() + ")") else: # Ventana emergente from channels import biblioteca p_dialog = platformtools.dialog_progress_bg('streamondemand', 'Caricamento in corso...') p_dialog.update(0, '') itemlist = biblioteca.findvideos(item) p_dialog.update(50, '') # Se filtran los enlaces segun la lista blanca y negra if config.get_setting('filter_servers') == 'true': itemlist = filtered_servers(itemlist) # Se limita la cantidad de enlaces a mostrar if config.get_setting("max_links", "biblioteca") != 0: itemlist = limit_itemlist(itemlist) # Se "limpia" ligeramente la lista de enlaces if config.get_setting("replace_VD", "biblioteca") == 1: itemlist = reorder_itemlist(itemlist) p_dialog.update(100, '') xbmc.sleep(500) p_dialog.close() if len(itemlist) > 0: # 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) seleccion = platformtools.dialog_select(cabecera, opciones) if seleccion == -1: return else: item = biblioteca.play(itemlist[seleccion])[0] platformtools.play_video(item)
def play_from_library(item): """ Los .strm al reproducirlos desde kodi, este espera que sea un archivo "reproducible" asi que no puede contener más items, como mucho se puede colocar un dialogo de seleccion. Esto lo solucionamos "engañando a kodi" y haciendole creer que se ha reproducido algo, asi despues mediante "Container.Update()" cargamos el strm como si un item desde dentro de pelisalacarta se tratara, quitando todas las limitaciones y permitiendo reproducir mediante la funcion general sin tener que crear nuevos métodos para la biblioteca. @type item: item @param item: elemento con información """ logger.info() # logger.debug("item: \n" + item.tostring('\n')) import xbmcgui import xbmcplugin import xbmc # Intentamos reproducir una imagen (esto no hace nada y ademas no da error) xbmcplugin.setResolvedUrl( int(sys.argv[1]), True, xbmcgui.ListItem(path=os.path.join(config.get_runtime_path(), "resources", "subtitle.mp4"))) # Por si acaso la imagen hiciera (en futuras versiones) le damos a stop para detener la reproduccion xbmc.Player().stop() # modificamos el action (actualmente la biblioteca necesita "findvideos" ya que es donde se buscan las fuentes item.action = "findvideos" window_type = config.get_setting("window_type", "biblioteca") # y volvemos a lanzar kodi if xbmc.getCondVisibility('Window.IsMedia') and not window_type == 1: # Ventana convencional xbmc.executebuiltin("Container.Update(" + sys.argv[0] + "?" + item.tourl() + ")") else: # Ventana emergente from channels import biblioteca p_dialog = platformtools.dialog_progress_bg('pelisalacarta', 'Cargando...') p_dialog.update(0, '') itemlist = biblioteca.findvideos(item) p_dialog.update(50, '') # Se filtran los enlaces segun la lista blanca y negra if config.get_setting('filter_servers') == 'true': itemlist = filtered_servers(itemlist) # Se limita la cantidad de enlaces a mostrar if config.get_setting("max_links", "biblioteca") != 0: itemlist = limit_itemlist(itemlist) # Se "limpia" ligeramente la lista de enlaces if config.get_setting("replace_VD", "biblioteca") == 1: itemlist = reorder_itemlist(itemlist) p_dialog.update(100, '') xbmc.sleep(500) p_dialog.close() if len(itemlist) > 0: # 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) seleccion = platformtools.dialog_select(cabecera, opciones) if seleccion == -1: return else: item = biblioteca.play(itemlist[seleccion])[0] platformtools.play_video(item)
def play_from_library(item): """ Los .strm al reproducirlos desde kodi, este espera que sea un archivo "reproducible" asi que no puede contener más items, como mucho se puede colocar un dialogo de seleccion. Esto lo solucionamos "engañando a kodi" y haciendole creer que se ha reproducido algo, asi despues mediante "Container.Update()" cargamos el strm como si un item desde dentro de dss se tratara, quitando todas las limitaciones y permitiendo reproducir mediante la funcion general sin tener que crear nuevos métodos para la biblioteca. @type item: item @param item: elemento con información """ logger.info() # logger.debug("item: \n" + item.tostring('\n')) import xbmcgui import xbmcplugin import xbmc # We try to reproduce an image (this does not do anything and also does not give an error) xbmcplugin.setResolvedUrl( int(sys.argv[1]), True, xbmcgui.ListItem(path=os.path.join(config.get_runtime_path(), "resources", "subtitle.mp4"))) # Just in case the image did (in future versions) we give stop to stop the reproduction xbmc.Player().stop() # modify the action (currently the library needs "findvideos" since that is where the sources are searched) item.action = "findvideos" window_type = config.get_setting("window_type", "biblioteca") # and we re-launch kodi if xbmc.getCondVisibility('Window.IsMedia') and not window_type == 1: # Conventional window xbmc.executebuiltin("Container.Update(" + sys.argv[0] + "?" + item.tourl() + ")") else: # Pop-up window from channels import biblioteca p_dialog = platformtools.dialog_progress_bg('dss', 'Loading...') p_dialog.update(0, '') itemlist = biblioteca.findvideos(item) p_dialog.update(50, '') '''# The links are filtered according to the blacklist if config.get_setting('filter_servers', "servers"): itemlist = servertools.filter_servers(itemlist)''' # The number of links to be displayed is limited if config.get_setting("max_links", "biblioteca") != 0: itemlist = limit_itemlist(itemlist) # The list of links is "clean" if config.get_setting("replace_VD", "biblioteca") == 1: itemlist = reorder_itemlist(itemlist) p_dialog.update(100, '') xbmc.sleep(500) p_dialog.close() if len(itemlist) > 0: # The user chooses the mirror opciones = [] for item in itemlist: opciones.append(item.title) # The selection window opens 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) if seleccion == -1: return else: item = biblioteca.play(itemlist[seleccion])[0] platformtools.play_video(item)