def addlist2Library(params, url, category, verbose=True): """Adds al episodes of a given show to the library What it really does is create strm files containing plugin calls to the pelisalacarta plugin on each episode. For this to work you have to manually add the pelisalacarta-library path to the library with the apropiate Content provider (tvdb works just fine) """ logger.info("[tvshack.py] addlist2Library") if params.has_key("Serie"): serie = params.get("Serie") else: serie = "" if verbose: pDialog = xbmcgui.DialogProgress() pDialog.create('pelisalacarta', 'A�adiendo episodios...') listaEp = devuelveListaEpisodios(params, url, category) episodios = 0 errores = 0 nuevos = 0 for i, ep in enumerate(listaEp): if verbose: pDialog.update(i * 100 / len(listaEp), 'A�adiendo episodio...', ep['title']) if (pDialog.iscanceled()): return try: nuevos = nuevos + library.savelibrary(ep['title'], ep['url'], ep['thumbnail'], "", ep['plot'], canal=CHANNELNAME, category="Series", Serie=serie, verbose=False, accion="strm_detail", pedirnombre=False) episodios = episodios + 1 except IOError: logger.info("Error al grabar el archivo " + ep['title']) errores = errores + 1 if verbose: pDialog.close() if errores > 0: logger.info("[tvshack.py - addlist2Library] No se pudo a�adir " + str(errores) + " episodios") if verbose: library.update(episodios, errores, nuevos) return nuevos
def addlist2Library(params, url, category, verbose=True): """Añade todos los episodios de una serie a la biblioteca """ xbmc.output("[tvshack.py] addlist2Library") if params.has_key("Serie"): serie = params.get("Serie") else: serie = "" if verbose: pDialog = xbmcgui.DialogProgress() pDialog.create("pelisalacarta", "Añadiendo episodios...") listaEp = devuelveListaEpisodios(params, url, category) episodios = 0 errores = 0 nuevos = 0 for i, ep in enumerate(listaEp): if verbose: pDialog.update(i * 100 / len(listaEp), "Añadiendo episodio...", ep["title"]) if pDialog.iscanceled(): return try: nuevos = nuevos + library.savelibrary( ep["title"], ep["url"], ep["thumbnail"], "", ep["plot"], canal=CHANNELNAME, category="Series", Serie=serie, verbose=False, accion="strm_detail", pedirnombre=False, ) episodios = episodios + 1 except IOError: xbmc.output("Error al grabar el archivo " + ep["title"]) errores = errores + 1 if verbose: pDialog.close() if errores > 0: xbmc.output("[tvshack.py - addlist2Library] No se pudo añadir " + str(errores) + " episodios") if verbose: library.update(episodios, errores, nuevos) return nuevos
def addlist2Library(params,url,category,verbose=True): """Adds al episodes of a given show to the library What it really does is create strm files containing plugin calls to the pelisalacarta plugin on each episode. For this to work you have to manually add the pelisalacarta-library path to the library with the apropiate Content provider (tvdb works just fine) """ logger.info("[tvshack.py] addlist2Library") if params.has_key("Serie"): serie = params.get("Serie") else: serie = "" if verbose: pDialog = xbmcgui.DialogProgress() pDialog.create('pelisalacarta', 'A�adiendo episodios...') listaEp = devuelveListaEpisodios (params,url,category) episodios = 0 errores = 0 nuevos = 0 for i,ep in enumerate(listaEp): if verbose: pDialog.update(i*100/len(listaEp), 'A�adiendo episodio...',ep['title']) if (pDialog.iscanceled()): return try: nuevos = nuevos + library.savelibrary(ep['title'],ep['url'],ep['thumbnail'],"",ep['plot'],canal=CHANNELNAME,category="Series",Serie=serie,verbose=False,accion="strm_detail",pedirnombre=False) episodios = episodios + 1 except IOError: logger.info("Error al grabar el archivo "+ep['title']) errores = errores + 1 if verbose: pDialog.close() if errores > 0: logger.info ("[tvshack.py - addlist2Library] No se pudo a�adir "+str(errores)+" episodios") if verbose: library.update(episodios,errores,nuevos) return nuevos
def addlist2Library(params,url,category): logger.info("[seriesyonkis.py] addlist2Library") # Descarga la página data = scrapertools.cachePage(url) #logger.info(data) if params.has_key("Serie"): Serie = params.get("Serie") else: Serie = "" if params.has_key("server"): server = params.get("server") else: server = "" if params.has_key("thumbnail"): thumbnail = params.get("thumbnail") else: thumbnail = "" # Extrae las entradas (carpetas) patronvideos = '<a href="(http://www.seriesyonkis.com/capitulo[^"]+)"[^>]+>([^<]+)</a>' matches = re.compile(patronvideos,re.DOTALL).findall(data) scrapertools.printMatches(matches) pDialog = xbmcgui.DialogProgress() ret = pDialog.create('pelisalacarta', 'Añadiendo episodios...') pDialog.update(0, 'Añadiendo episodio...') totalepisodes = len(matches) logger.info ("[seriesyonkis.py - addlist2Library] Total Episodios:"+str(totalepisodes)) i = 0 errores = 0 nuevos = 0 for match in matches: # Titulo scrapedtitle = match[1] i = i + 1 pDialog.update(i*100/totalepisodes, 'Añadiendo episodio...',scrapedtitle) if (pDialog.iscanceled()): return # URL # Tenemos 2 opciones. Scrapear todos los episodios en el momento de añadirlos # a la biblioteca o bien dejarlo para cuando se vea cada episodio. Esto segundo # añade los episodios mucho más rápido, pero implica añadir una función # strm_detail en cada módulo de canal. Por el bien del rendimiento elijo la # segunda opción de momento (hacer la primera es simplemente descomentar un par de # líneas. # QUIZÁ SEA BUENO PARAMETRIZARLO (PONER OPCIÓN EN LA CONFIGURACIÓN DEL PLUGIN) # PARA DEJAR QUE EL USUARIO DECIDA DONDE Y CUANDO QUIERE ESPERAR. url = match [0] # JUR-Las 3 líneas siguientes son para OPCIÓN 1 #scrapedurl = scrapvideoURL(url) #if scrapedurl == "": # errores = errores + 1 # Thumbnail scrapedthumbnail = "" # procesa el resto scrapedplot = "" # Depuracion if (DEBUG): logger.info("scrapedtitle="+scrapedtitle) # logger.info("scrapedurl="+scrapedurl) #OPCION 1. logger.info("url="+url) #OPCION 2. logger.info("scrapedthumbnail="+scrapedthumbnail) logger.info("Serie="+Serie) logger.info("Episodio "+str(i)+" de "+str(totalepisodes)+"("+str(i*100/totalepisodes)+"%)") # Añade a la librería #Comentada la opción 2. Para cambiar invertir los comentarios #OPCION 1: #library.savelibrary(scrapedtitle,scrapedurl,scrapedthumbnail,server,scrapedplot,canal=CHANNELNAME,category="Series",Serie=Serie,verbose=False) #OPCION 2 try: nuevos = nuevos + library.savelibrary(scrapedtitle,url,scrapedthumbnail,server,scrapedplot,canal=CHANNELNAME,category="Series",Serie=Serie,verbose=False,accion="strm_detail",pedirnombre=False) except IOError: logger.info("Error al grabar el archivo "+scrapedtitle) errores = errores + 1 # xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=True ) pDialog.close() #Actualización de la biblioteca if errores > 0: logger.info ("[seriesyonkis.py - addlist2Library] No se pudo añadir "+str(errores)+" episodios") library.update(totalepisodes,errores,nuevos) return nuevos
def playvideoEx(canal,server,url,category,title,thumbnail,plot,desdefavoritos,desdedescargados,desderrordescargas,strmfile=False,Serie=""): logger.info("[xbmctools.py] playvideo") logger.info("[xbmctools.py] playvideo canal="+canal) logger.info("[xbmctools.py] playvideo server="+server) logger.info("[xbmctools.py] playvideo url="+url) logger.info("[xbmctools.py] playvideo category="+category) logger.info("[xbmctools.py] playvideo serie="+Serie) # Parametrizacion especifica import parametrizacion # Abre el diálogo de selección opciones = [] default_action = config.getSetting("default_action") # Los vídeos de Megavídeo sólo se pueden ver en calidad alta con cuenta premium # Los vídeos de Megaupload sólo se pueden ver con cuenta premium, en otro caso pide captcha if (server=="Megavideo" or server=="Megaupload") and config.getSetting("megavideopremium")=="true": opciones.append(config.getLocalizedString(30150)+" ["+server+"]") # "Ver en calidad alta" # Si la accion por defecto es "Ver en calidad alta", la seleccion se hace ya if default_action=="2": seleccion = len(opciones)-1 # Los vídeos de Megavídeo o Megaupload se pueden ver en calidad baja sin cuenta premium, aunque con el límite if (server=="Megavideo" or server=="Megaupload"): opciones.append(config.getLocalizedString(30152)+" [Megavideo]") # "Ver en calidad baja" # Si la accion por defecto es "Ver en calidad baja", la seleccion se hace ya if default_action=="1": seleccion = len(opciones)-1 else: opciones.append(config.getLocalizedString(30151)+" ["+server+"]") # "Ver en calidad normal" # Si la accion por defecto es "Ver en calidad baja", la seleccion se hace ya if default_action<>"0": #Si hay alguna calidad elegida (alta o baja) seleccionarmos esta para los no megavideo seleccion = len(opciones)-1 if (parametrizacion.DOWNLOAD_ENABLED): opciones.append(config.getLocalizedString(30153)) # "Descargar" if desdefavoritos: opciones.append(config.getLocalizedString(30154)) # "Quitar de favoritos" else: opciones.append(config.getLocalizedString(30155)) # "Añadir a favoritos" if (parametrizacion.DOWNLOAD_ENABLED): if desdedescargados: opciones.append(config.getLocalizedString(30156)) # "Quitar de lista de descargas" else: opciones.append(config.getLocalizedString(30157)) # "Añadir a lista de descargas" opciones.append(config.getLocalizedString(30158)) # "Enviar a JDownloader" if default_action=="3": seleccion = len(opciones)-1 if (parametrizacion.DOWNLOAD_ENABLED): if desderrordescargas: opciones.append(config.getLocalizedString(30159)) # "Borrar descarga definitivamente" opciones.append(config.getLocalizedString(30160)) # "Pasar de nuevo a lista de descargas" if not strmfile: if category in LIBRARY_CATEGORIES: opciones.append(config.getLocalizedString(30161)) # "Añadir a Biblioteca" # Busqueda de trailers en youtube if not canal in ["Trailer","ecarteleratrailers"]: opciones.append(config.getLocalizedString(30162)) # "Buscar Trailer" # Si la accion por defecto es "Preguntar", pregunta if default_action=="0": dia = xbmcgui.Dialog() seleccion = dia.select(config.getLocalizedString(30163), opciones) # "Elige una opción" #dia.close() logger.info("seleccion=%d" % seleccion) logger.info("seleccion=%s" % opciones[seleccion]) # No ha elegido nada, lo más probable porque haya dado al ESC if seleccion==-1: if strmfile: #Para evitar el error "Uno o más elementos fallaron" al cancelar la selección desde fichero strm listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail) xbmcplugin.setResolvedUrl(int(sys.argv[ 1 ]),False,listitem) # JUR Added if config.getSetting("subtitulo") == "true": config.setSetting("subtitulo", "false") return if opciones[seleccion]==config.getLocalizedString(30158): # "Enviar a JDownloader" if server=="Megaupload": d = {"web": "http://www.megaupload.com/?d=" + url} else: d = {"web": "http://www.megavideo.com/?v=" + url} import scrapertools data = scrapertools.cachePage(config.getSetting("jdownloader")+"/action/add/links/grabber0/start1/"+urllib.urlencode(d)+ " " +thumbnail) return # Ver en calidad alta if opciones[seleccion].startswith(config.getLocalizedString(30150)): # "Ver en calidad alta" if server=="Megaupload": mediaurl = servertools.getmegauploadhigh(url) else: mediaurl = servertools.getmegavideohigh(url) # Ver (calidad baja megavideo o resto servidores) elif opciones[seleccion].startswith(config.getLocalizedString(30151)) or opciones[seleccion].startswith(config.getLocalizedString(30152)): # Ver en calidad (normal o baja) if server=="Megaupload": mediaurl = servertools.getmegauploadlow(url) if mediaurl == "": alertanomegauploadlow(server) return elif server=="Megavideo": # Advertencia límite 72 minutos megavideo if config.getSetting("megavideopremium")=="false": advertencia = xbmcgui.Dialog() resultado = advertencia.ok(config.getLocalizedString(30052) , config.getLocalizedString(30053) , config.getLocalizedString(30054)) mediaurl = servertools.getmegavideolow(url) else: mediaurl = servertools.findurl(url,server) # Descargar elif opciones[seleccion]==config.getLocalizedString(30153): # "Descargar" if server=="Megaupload": if config.getSetting("megavideopremium")=="false": mediaurl = servertools.getmegauploadlow(url) else: mediaurl = servertools.getmegauploadhigh(url) elif server=="Megavideo": if config.getSetting("megavideopremium")=="false": mediaurl = servertools.getmegavideolow(url) else: mediaurl = servertools.getmegavideohigh(url) else: mediaurl = servertools.findurl(url,server) import downloadtools keyboard = xbmc.Keyboard(downloadtools.limpia_nombre_excepto_1(title)) keyboard.doModal() if (keyboard.isConfirmed()): title = keyboard.getText() downloadtools.downloadtitle(mediaurl,title) return # TODO: Mover a modulo favoritos elif opciones[seleccion]==config.getLocalizedString(30154): #"Quitar de favoritos" # La categoría es el nombre del fichero en favoritos os.remove(urllib.unquote_plus( category )) advertencia = xbmcgui.Dialog() resultado = advertencia.ok(config.getLocalizedString(30102) , title , config.getLocalizedString(30105)) # 'Se ha quitado de favoritos' return # TODO: Mover a modulo descargadoslist elif opciones[seleccion]==config.getLocalizedString(30159): #"Borrar descarga definitivamente" # La categoría es el nombre del fichero en favoritos os.remove(urllib.unquote_plus( category )) advertencia = xbmcgui.Dialog() resultado = advertencia.ok(config.getLocalizedString(30101) , title , config.getLocalizedString(30106)) # 'Se ha quitado de la lista' return # TODO: Mover a modulo descargadoslist elif opciones[seleccion]==config.getLocalizedString(30160): #"Pasar de nuevo a lista de descargas": import descargadoslist # La categoría es el nombre del fichero en favoritos, así que lee el fichero titulo,thumbnail,plot,server,url = descargadoslist.readbookmarkfile(urllib.unquote_plus( category ),"") # Lo añade a la lista de descargas descargadoslist.savebookmark(title,url,thumbnail,server,plot) # Y lo borra de la lista de errores os.remove(urllib.unquote_plus( category )) advertencia = xbmcgui.Dialog() resultado = advertencia.ok(config.getLocalizedString(30101) , title , config.getLocalizedString(30107)) # 'Ha pasado de nuevo a la lista de descargas' return # TODO: Mover a modulo favoritos elif opciones[seleccion]==config.getLocalizedString(30155): #"Añadir a favoritos": import favoritos import downloadtools keyboard = xbmc.Keyboard(downloadtools.limpia_nombre_excepto_1(title)) keyboard.doModal() if keyboard.isConfirmed(): title = keyboard.getText() favoritos.savebookmark(title,url,thumbnail,server,plot) advertencia = xbmcgui.Dialog() resultado = advertencia.ok(config.getLocalizedString(30102) , title , config.getLocalizedString(30108)) # 'se ha añadido a favoritos' return # TODO: Mover a modulo descargadoslist elif opciones[seleccion]==config.getLocalizedString(30156): #"Quitar de lista de descargas": # La categoría es el nombre del fichero en la lista de descargas os.remove(urllib.unquote_plus( category )) advertencia = xbmcgui.Dialog() resultado = advertencia.ok(config.getLocalizedString(30101) , title , config.getLocalizedString(30106)) # 'Se ha quitado de lista de descargas' return # TODO: Mover a modulo descargadoslist elif opciones[seleccion]==config.getLocalizedString(30157): #"Añadir a lista de descargas": import descargadoslist import downloadtools keyboard = xbmc.Keyboard(downloadtools.limpia_nombre_excepto_1(title)) keyboard.doModal() if keyboard.isConfirmed(): title = keyboard.getText() descargadoslist.savebookmark(title,url,thumbnail,server,plot) advertencia = xbmcgui.Dialog() resultado = advertencia.ok(config.getLocalizedString(30101) , title , config.getLocalizedString(30109)) # 'se ha añadido a la lista de descargas' return elif opciones[seleccion]==config.getLocalizedString(30161): #"Añadir a Biblioteca": # Library import library library.savelibrary(title,url,thumbnail,server,plot,canal=canal,category=category,Serie=Serie) return elif opciones[seleccion]==config.getLocalizedString(30162): #"Buscar Trailer": config.setSetting("subtitulo", "false") xbmc.executebuiltin("Container.Update(%s?channel=%s&action=%s&category=%s&title=%s&url=%s&thumbnail=%s&plot=%s&server=%s)" % ( sys.argv[ 0 ] , "trailertools" , "buscartrailer" , urllib.quote_plus( category ) , urllib.quote_plus( title ) , urllib.quote_plus( url ) , urllib.quote_plus( thumbnail ) , urllib.quote_plus( "" ) , server )) return # Si no hay mediaurl es porque el vídeo no está :) logger.info("[xbmctools.py] mediaurl="+mediaurl) if mediaurl=="": alertnodisponibleserver(server) return # Crea un listitem para pasárselo al reproductor # Obtención datos de la Biblioteca (solo strms que estén en la biblioteca) if strmfile: logger.info("[xbmctools.py] 1") listitem = getLibraryInfo(mediaurl) else: logger.info("[xbmctools.py] 2") listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail) listitem.setInfo( "video", { "Title": title, "Plot" : plot , "Studio" : canal , "Genre" : category } ) # Lanza el reproductor if strmfile: #Si es un fichero strm no hace falta el play logger.info("[xbmctools.py] 3") xbmcplugin.setResolvedUrl(int(sys.argv[ 1 ]),True,listitem) else: logger.info("[xbmctools.py] 4") launchplayer(mediaurl, listitem) if (config.getSetting("subtitulo") == "true") and (opciones[seleccion].startswith("Ver")): xbmc.Player().setSubtitles(os.path.join( config.DATA_PATH, 'subtitulo.srt' ) ) config.setSetting("subtitulo", "false")
def playvideoEx(canal,server,url,category,title,thumbnail,plot,desdefavoritos,desdedescargados,desderrordescargas,strmfile=False,Serie=""): xbmc.output("[xbmctools.py] playvideo") xbmc.output("[xbmctools.py] playvideo canal="+canal) xbmc.output("[xbmctools.py] playvideo server="+server) xbmc.output("[xbmctools.py] playvideo url="+url) xbmc.output("[xbmctools.py] playvideo category="+category) xbmc.output("[xbmctools.py] playvideo serie="+Serie) # Abre el diálogo de selección opciones = [] default_action = getPluginSetting("default_action") # Los vídeos de Megavídeo sólo se pueden ver en calidad alta con cuenta premium # Los vídeos de Megaupload sólo se pueden ver con cuenta premium, en otro caso pide captcha if (server=="Megavideo" or server=="Megaupload") and getPluginSetting("megavideopremium")=="true": opciones.append("Ver en calidad alta ["+server+"]") # Si la accion por defecto es "Ver en calidad alta", la seleccion se hace ya if default_action=="2": seleccion = len(opciones)-1 # Los vídeos de Megavídeo o Megaupload se pueden ver en calidad baja sin cuenta premium, aunque con el límite if (server=="Megavideo" or server=="Megaupload"): opciones.append("Ver en calidad baja [Megavideo]") # Si la accion por defecto es "Ver en calidad baja", la seleccion se hace ya if default_action=="1": seleccion = len(opciones)-1 else: opciones.append("Ver ["+server+"]") # Si la accion por defecto es "Ver en calidad baja", la seleccion se hace ya if default_action<>"0": #Si hay alguna calidad elegida (alta o baja) seleccionarmos esta para los no megavideo seleccion = len(opciones)-1 opciones.append("Descargar") if desdefavoritos: opciones.append("Quitar de favoritos") else: opciones.append("Añadir a favoritos") if desdedescargados: opciones.append("Quitar de lista de descargas") else: opciones.append("Añadir a lista de descargas") if desderrordescargas: opciones.append("Borrar descarga definitivamente") opciones.append("Pasar de nuevo a lista de descargas") if not strmfile: # if category in LIBRARY_CATEGORIES: opciones.append("Añadir a Biblioteca") # Busqueda de trailers en youtube if not canal in ["Trailer","ecarteleratrailers"]: opciones.append("Buscar Trailer") # Si la accion por defecto es "Preguntar", pregunta if default_action=="0": dia = xbmcgui.Dialog() seleccion = dia.select("Elige una opción", opciones) #dia.close() xbmc.output("seleccion=%d" % seleccion) xbmc.output("seleccion=%s" % opciones[seleccion]) # No ha elegido nada, lo más probable porque haya dado al ESC if seleccion==-1: if strmfile: #Para evitar el error "Uno o más elementos fallaron" al cancelar la selección desde fichero strm listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail) xbmcplugin.setResolvedUrl(int(sys.argv[ 1 ]),False,listitem) # JUR Added return # Ver en calidad alta if opciones[seleccion].startswith("Ver en calidad alta"): if server=="Megaupload": mediaurl = servertools.getmegauploadhigh(url) else: mediaurl = servertools.getmegavideohigh(url) # Ver (calidad baja megavideo o resto servidores) elif opciones[seleccion].startswith("Ver"): if server=="Megaupload": mediaurl = servertools.getmegauploadlow(url) if mediaurl == "": alertanomegauploadlow(server) return elif server=="Megavideo": if getPluginSetting("megavideopremium")=="false": advertencia = xbmcgui.Dialog() resultado = advertencia.ok('Megavideo tiene un límite de reproducción de 72 minutos' , 'Para evitar que los vídeos se corten pasado ese tiempo' , 'necesitas una cuenta Premium') mediaurl = servertools.getmegavideolow(url) else: mediaurl = servertools.findurl(url,server) # Descargar elif opciones[seleccion]=="Descargar": if server=="Megaupload": if getPluginSetting("megavideopremium")=="false": mediaurl = servertools.getmegauploadlow(url) else: mediaurl = servertools.getmegauploadhigh(url) elif server=="Megavideo": if getPluginSetting("megavideopremium")=="false": mediaurl = servertools.getmegavideolow(url) else: mediaurl = servertools.getmegavideohigh(url) else: mediaurl = servertools.findurl(url,server) keyboard = xbmc.Keyboard(downloadtools.limpia_nombre_excepto_1(title)) keyboard.doModal() if (keyboard.isConfirmed()): title = keyboard.getText() downloadtools.downloadtitle(mediaurl,title) return elif opciones[seleccion]=="Quitar de favoritos": # La categoría es el nombre del fichero en favoritos os.remove(urllib.unquote_plus( category )) advertencia = xbmcgui.Dialog() resultado = advertencia.ok('Vídeo quitado de favoritos' , title , 'Se ha quitado de favoritos') return elif opciones[seleccion]=="Borrar descarga definitivamente": # La categoría es el nombre del fichero en favoritos os.remove(urllib.unquote_plus( category )) advertencia = xbmcgui.Dialog() resultado = advertencia.ok('Vídeo quitado de la lista' , title , 'Se ha quitado de la lista') return elif opciones[seleccion]=="Pasar de nuevo a lista de descargas": # La categoría es el nombre del fichero en favoritos, así que lee el fichero titulo,thumbnail,plot,server,url = descargadoslist.readbookmarkfile(urllib.unquote_plus( category ),"") # Lo añade a la lista de descargas descargadoslist.savebookmark(title,url,thumbnail,server,plot) # Y lo borra de la lista de errores os.remove(urllib.unquote_plus( category )) advertencia = xbmcgui.Dialog() resultado = advertencia.ok('Vídeo de nuevo para descargar' , title , 'Ha pasado de nuevo a la lista de descargas') return elif opciones[seleccion]=="Añadir a favoritos": keyboard = xbmc.Keyboard(downloadtools.limpia_nombre_excepto_1(title)) keyboard.doModal() if keyboard.isConfirmed(): title = keyboard.getText() favoritos.savebookmark(title,url,thumbnail,server,plot) advertencia = xbmcgui.Dialog() resultado = advertencia.ok('Nuevo vídeo en favoritos' , title , 'se ha añadido a favoritos') return elif opciones[seleccion]=="Quitar de lista de descargas": # La categoría es el nombre del fichero en la lista de descargas os.remove(urllib.unquote_plus( category )) advertencia = xbmcgui.Dialog() resultado = advertencia.ok('Vídeo quitado de lista de descargas' , title , 'Se ha quitado de lista de descargas') return elif opciones[seleccion]=="Añadir a lista de descargas": keyboard = xbmc.Keyboard(downloadtools.limpia_nombre_excepto_1(title)) keyboard.doModal() if keyboard.isConfirmed(): title = keyboard.getText() descargadoslist.savebookmark(title,url,thumbnail,server,plot) advertencia = xbmcgui.Dialog() resultado = advertencia.ok('Nuevo vídeo en lista de descargas' , title , 'se ha añadido a la lista de descargas') return elif opciones[seleccion]=="Añadir a Biblioteca": # Library library.savelibrary(title,url,thumbnail,server,plot,canal=canal,category=category,Serie=Serie) return elif opciones[seleccion]=="Buscar Trailer": xbmc.executebuiltin("Container.Update(%s?channel=%s&action=%s&category=%s&title=%s&url=%s&thumbnail=%s&plot=%s&server=%s)" % ( sys.argv[ 0 ] , "trailertools" , "buscartrailer" , urllib.quote_plus( category ) , urllib.quote_plus( title ) , urllib.quote_plus( url ) , urllib.quote_plus( thumbnail ) , urllib.quote_plus( "" ) , server )) return # Si no hay mediaurl es porque el vídeo no está :) xbmc.output("[xbmctools.py] mediaurl="+mediaurl) if mediaurl=="": alertnodisponibleserver(server) return # Crea un listitem para pasárselo al reproductor # Obtención datos de la Biblioteca (solo strms que estén en la biblioteca) if strmfile: xbmc.output("[xbmctools.py] 1") listitem = getLibraryInfo(mediaurl) else: xbmc.output("[xbmctools.py] 2") listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail) listitem.setInfo( "video", { "Title": title, "Plot" : plot , "Studio" : canal , "Genre" : category } ) # Lanza el reproductor if strmfile: #Si es un fichero strm no hace falta el play xbmc.output("[xbmctools.py] 3") xbmcplugin.setResolvedUrl(int(sys.argv[ 1 ]),True,listitem) else: xbmc.output("[xbmctools.py] 4") launchplayer(mediaurl, listitem)