def extraevideos(patronvideos,data,category,title,thumbnail,plot,servidor): logger.info("patron="+patronvideos) matches = re.compile(patronvideos,re.DOTALL).findall(data) scrapertools.printMatches(matches) if len(matches)>0: # A�ade al listado de XBMC if servidor == "Directo": xbmctools.addnewvideo( CHANNELNAME , "play" , category , "Directo" , title, matches[0] , thumbnail , plot ) elif servidor == "Veoh": veohurl = servertools.findurl(matches[0],"veoh") logger.info(" veohurl = " +veohurl) if len(veohurl)>0: if veohurl=="http://./default.asp": advertencia = xbmcgui.Dialog() resultado = advertencia.ok('El Video Documental' , title , 'no existe en Veoh','visite la pagina www.documaniatv.com para reportarlo' ) return logger.info(" newmatches = "+veohurl) xbmctools.addnewvideo( CHANNELNAME , "play" , category , "Directo" , title, veohurl , thumbnail , plot ) else: advertencia = xbmcgui.Dialog() resultado = advertencia.ok('El Video Documental' , title , 'no existe en Veoh') return elif servidor == "Google": url = "http://www.flashvideodownloader.org/download.php?u=http://video.google.com/videoplay?docid="+matches[0] logger.info(" Url = "+url) data = scrapertools.cachePage(url) newpatron = '</script>.*?<a href="(.*?)" title="Click to Download">' newmatches = re.compile(newpatron,re.DOTALL).findall(data) if len(newmatches)>0: logger.info(" newmatches = "+newmatches[0]) xbmctools.addnewvideo( CHANNELNAME , "play" , category , "Directo" , title, newmatches[0] , thumbnail , plot ) elif servidor == "Stagevu": url= "http://stagevu.com/video/"+matches[0] url = servertools.findurl(url,servidor) logger.info(" url = "+url) videotitle = "Video en Stagevu" server = servidor xbmctools.addnewvideo( CHANNELNAME , "play" , category , "Directo" , title.strip().replace(server,"").replace(" "," ") + " - " + videotitle , url , thumbnail , plot )
def extraevideos(patronvideos,data,category,title,thumbnail,plot,servidor): logger.info("patron="+patronvideos) matches = re.compile(patronvideos,re.DOTALL).findall(data) scrapertools.printMatches(matches) if len(matches)>0 : # A�ade al listado de XBMC if servidor == "Directo": if "youtube.com" in matches[0]: from youtube import Extract_id url = Extract_id(matches[0]) xbmctools.addnewvideo( CHANNELNAME , "play" , category , "Youtube" , "%s [YOUTUBE]" %title , url , thumbnail , plot ) else: xbmctools.addnewvideo( CHANNELNAME , "play" , category , "Directo" , "%s [Directo]" %title, matches[0] , thumbnail , plot ) elif servidor == "Veoh": veohurl = servertools.findurl(matches[0],"veoh") logger.info(" veohurl = " +veohurl) if len(veohurl)>0: if veohurl=="http://./default.asp": advertencia = xbmcgui.Dialog() resultado = advertencia.ok('El Video Video' , title , 'no existe en Veoh','visite la pagina www.sonolatino.com para reportarlo' ) return logger.info(" newmatches = "+veohurl) xbmctools.addnewvideo( CHANNELNAME , "play" , category , "Directo" , title, veohurl , thumbnail , plot ) else: advertencia = xbmcgui.Dialog() resultado = advertencia.ok('El Video Video' , title , 'no existe en Veoh') return elif servidor == "Google": url = "http://www.flashvideodownloader.org/download.php?u=http://video.google.com/videoplay?docid="+matches[0] logger.info(" Url = "+url) data1 = scrapertools.cachePage(url) newpatron = '</script>.*?<a href="(.*?)" title="Click to Download">' newmatches = re.compile(newpatron,re.DOTALL).findall(data1) if len(newmatches)>0: logger.info(" newmatches = "+newmatches[0]) xbmctools.addnewvideo( CHANNELNAME , "play" , category , "Directo" , title, newmatches[0] , thumbnail , plot ) elif servidor == "Stagevu": url= "http://stagevu.com/video/"+matches[0] url = servertools.findurl(url,servidor) logger.info(" url = "+url) videotitle = "Video en Stagevu" server = servidor xbmctools.addnewvideo( CHANNELNAME , "play" , category , "Directo" , title.strip().replace(server,"").replace(" "," ") + " - " + videotitle , url , thumbnail , plot ) elif servidor == "izlesene": url = "http://www.izlesene.com/actions/video/embed.php?video="+matches[0] data1 = scrapertools.cachePage(url) newpatron = "fURL=([^\&]+)\&vduration=([^\&]+)\&" newmatches = re.compile(newpatron,re.DOTALL).findall(data1) if len(newmatches)>0: logger.info(" izlesene furl = "+newmatches[0][0]) url = "http://dcdn.nokta.com/%s%s" %(newmatches[0][0], "_1_5_1.xml") xbmctools.addnewvideo( CHANNELNAME , "play" , category , "izlesene" , "%s (%s) [IZLESENE]" %(title,newmatches[0][1]) , url , thumbnail , plot ) elif servidor == "Dailymotion": if "/" in matches[0]: idd = matches[0].split("/") id = idd[len(idd)-1] else: id = matches[0] daily = 'http://www.dailymotion.com/video/%s'%id data2 = scrapertools.cachePage(daily) Lowres=re.compile('%22sdURL%22%3A%22(.+?)%22').findall(data2) if len(Lowres)>0: videourl = urllib.unquote(Lowres[0]) videourl = videourl.replace("\/","/") subtitle = "[FLV-Directo-Dailymotion]" xbmctools.addnewvideo( CHANNELNAME , "play" , category , "Directo" , title + " - "+subtitle, videourl , thumbnail , plot ) # Busca el enlace al video con formato HQ (H264) Highres=re.compile('%22hqURL%22%3A%22(.+?)%22').findall(data2) if len(Highres)>0: videourl = urllib.unquote(Highres[0]) videourl = videourl.replace("\/","/") subtitle = "[h264-Directo-Dailymotion-este video no es soportado en versiones antiguas o xbox plataforma]" xbmctools.addnewvideo( CHANNELNAME , "play" , category , "Directo" , title + " - "+subtitle, videourl , thumbnail , plot ) elif servidor == "Vimeo": subtitle = "[Vimeo]" xbmctools.addnewvideo( CHANNELNAME , "play" , category , "Vimeo" , title + " - "+subtitle, matches[0] , thumbnail , plot ) ## ------------------------- elif servidor == "Yahoo": import yahoo subtitle = "[Yahoo]" video_url = yahoo.geturl(matches[0]) if len(video_url)>0: if "rtmp" in video_url: addnewvideo( CHANNELNAME , "playRtmp" , category , "Directo" , title + " - "+subtitle, video_url , thumbnail , plot ) else: xbmctools.addnewvideo( CHANNELNAME , "play" , category , "Directo" , title + " - "+subtitle, video_url , thumbnail , plot )
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.get_setting("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.get_setting("megavideopremium")=="true": opciones.append(config.get_localized_string(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.get_localized_string(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.get_localized_string(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.get_localized_string(30153)) # "Descargar" if desdefavoritos: opciones.append(config.get_localized_string(30154)) # "Quitar de favoritos" else: opciones.append(config.get_localized_string(30155)) # "Añadir a favoritos" if (parametrizacion.DOWNLOAD_ENABLED): if desdedescargados: opciones.append(config.get_localized_string(30156)) # "Quitar de lista de descargas" else: opciones.append(config.get_localized_string(30157)) # "Añadir a lista de descargas" opciones.append(config.get_localized_string(30158)) # "Enviar a JDownloader" if default_action=="3": seleccion = len(opciones)-1 if (parametrizacion.DOWNLOAD_ENABLED): if desderrordescargas: opciones.append(config.get_localized_string(30159)) # "Borrar descarga definitivamente" opciones.append(config.get_localized_string(30160)) # "Pasar de nuevo a lista de descargas" if not strmfile: if category in LIBRARY_CATEGORIES: opciones.append(config.get_localized_string(30161)) # "Añadir a Biblioteca" # Busqueda de trailers en youtube if not canal in ["Trailer","ecarteleratrailers"]: opciones.append(config.get_localized_string(30162)) # "Buscar Trailer" # Si la accion por defecto es "Preguntar", pregunta if default_action=="0": dia = xbmcgui.Dialog() seleccion = dia.select(config.get_localized_string(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.get_setting("subtitulo") == "true": config.setSetting("subtitulo", "false") return if opciones[seleccion]==config.get_localized_string(30158): # "Enviar a JDownloader" if server=="Megaupload": d = {"web": "http://www.megaupload.com/?d=" + url} else: d = {"web": "http://www.megavideo.com/?v=" + url} from core import scrapertools data = scrapertools.cachePage(config.get_setting("jdownloader")+"/action/add/links/grabber0/start1/"+urllib.urlencode(d)+ " " +thumbnail) return # Ver en calidad alta if opciones[seleccion].startswith(config.get_localized_string(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.get_localized_string(30151)) or opciones[seleccion].startswith(config.get_localized_string(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.get_setting("megavideopremium")=="false": advertencia = xbmcgui.Dialog() resultado = advertencia.ok(config.get_localized_string(30052) , config.get_localized_string(30053) , config.get_localized_string(30054)) mediaurl = servertools.getmegavideolow(url) else: mediaurl = servertools.findurl(url,server) # Descargar elif opciones[seleccion]==config.get_localized_string(30153): # "Descargar" if server=="Megaupload": if config.get_setting("megavideopremium")=="false": mediaurl = servertools.getmegauploadlow(url) else: mediaurl = servertools.getmegauploadhigh(url) elif server=="Megavideo": if config.get_setting("megavideopremium")=="false": mediaurl = servertools.getmegavideolow(url) else: mediaurl = servertools.getmegavideohigh(url) else: mediaurl = servertools.findurl(url,server) from core import downloadtools 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]==config.get_localized_string(30154): #"Quitar de favoritos" from core import favoritos # La categoría es el nombre del fichero en favoritos favoritos.deletebookmark(category) advertencia = xbmcgui.Dialog() resultado = advertencia.ok(config.get_localized_string(30102) , title , config.get_localized_string(30105)) # 'Se ha quitado de favoritos' xbmc.executebuiltin( "Container.Refresh" ) return # TODO: Mover a modulo descargadoslist elif opciones[seleccion]==config.get_localized_string(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.get_localized_string(30101) , title , config.get_localized_string(30106)) # 'Se ha quitado de la lista' return # TODO: Mover a modulo descargadoslist elif opciones[seleccion]==config.get_localized_string(30160): #"Pasar de nuevo a lista de descargas": from core 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.get_localized_string(30101) , title , config.get_localized_string(30107)) # 'Ha pasado de nuevo a la lista de descargas' return # TODO: Mover a modulo favoritos elif opciones[seleccion]==config.get_localized_string(30155): #"Añadir a favoritos": from core import favoritos from core import downloadtools keyboard = xbmc.Keyboard(downloadtools.limpia_nombre_excepto_1(title)+" ["+canal+"]") keyboard.doModal() if keyboard.isConfirmed(): title = keyboard.getText() favoritos.savebookmark(title,url,thumbnail,server,plot) advertencia = xbmcgui.Dialog() resultado = advertencia.ok(config.get_localized_string(30102) , title , config.get_localized_string(30108)) # 'se ha añadido a favoritos' return # TODO: Mover a modulo descargadoslist elif opciones[seleccion]==config.get_localized_string(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.get_localized_string(30101) , title , config.get_localized_string(30106)) # 'Se ha quitado de lista de descargas' return # TODO: Mover a modulo descargadoslist elif opciones[seleccion]==config.get_localized_string(30157): #"Añadir a lista de descargas": from core import descargadoslist from core 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.get_localized_string(30101) , title , config.get_localized_string(30109)) # 'se ha añadido a la lista de descargas' return elif opciones[seleccion]==config.get_localized_string(30161): #"Añadir a Biblioteca": # Library from core import library library.savelibrary(title,url,thumbnail,server,plot,canal=canal,category=category,Serie=Serie) return elif opciones[seleccion]==config.get_localized_string(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.get_setting("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=""): 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.get_setting("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.get_setting("megavideopremium") == "true": opciones.append( config.get_localized_string(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.get_localized_string(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.get_localized_string(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.get_localized_string(30153)) # "Descargar" if desdefavoritos: opciones.append( config.get_localized_string(30154)) # "Quitar de favoritos" else: opciones.append( config.get_localized_string(30155)) # "Añadir a favoritos" if (parametrizacion.DOWNLOAD_ENABLED): if desdedescargados: opciones.append(config.get_localized_string( 30156)) # "Quitar de lista de descargas" else: opciones.append(config.get_localized_string( 30157)) # "Añadir a lista de descargas" opciones.append( config.get_localized_string(30158)) # "Enviar a JDownloader" if default_action == "3": seleccion = len(opciones) - 1 if (parametrizacion.DOWNLOAD_ENABLED): if desderrordescargas: opciones.append(config.get_localized_string( 30159)) # "Borrar descarga definitivamente" opciones.append(config.get_localized_string( 30160)) # "Pasar de nuevo a lista de descargas" if not strmfile: if category in LIBRARY_CATEGORIES: opciones.append( config.get_localized_string(30161)) # "Añadir a Biblioteca" # Busqueda de trailers en youtube if not canal in ["Trailer", "ecarteleratrailers"]: opciones.append(config.get_localized_string(30162)) # "Buscar Trailer" # Si la accion por defecto es "Preguntar", pregunta if default_action == "0": dia = xbmcgui.Dialog() seleccion = dia.select(config.get_localized_string(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.get_setting("subtitulo") == "true": config.setSetting("subtitulo", "false") return if opciones[seleccion] == config.get_localized_string( 30158): # "Enviar a JDownloader" if server == "Megaupload": d = {"web": "http://www.megaupload.com/?d=" + url} else: d = {"web": "http://www.megavideo.com/?v=" + url} from core import scrapertools data = scrapertools.cachePage( config.get_setting("jdownloader") + "/action/add/links/grabber0/start1/" + urllib.urlencode(d) + " " + thumbnail) return # Ver en calidad alta if opciones[seleccion].startswith( config.get_localized_string(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.get_localized_string( 30151)) or opciones[seleccion].startswith( config.get_localized_string( 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.get_setting("megavideopremium") == "false": advertencia = xbmcgui.Dialog() resultado = advertencia.ok(config.get_localized_string(30052), config.get_localized_string(30053), config.get_localized_string(30054)) mediaurl = servertools.getmegavideolow(url) else: mediaurl = servertools.findurl(url, server) # Descargar elif opciones[seleccion] == config.get_localized_string( 30153): # "Descargar" if server == "Megaupload": if config.get_setting("megavideopremium") == "false": mediaurl = servertools.getmegauploadlow(url) else: mediaurl = servertools.getmegauploadhigh(url) elif server == "Megavideo": if config.get_setting("megavideopremium") == "false": mediaurl = servertools.getmegavideolow(url) else: mediaurl = servertools.getmegavideohigh(url) else: mediaurl = servertools.findurl(url, server) from core import downloadtools 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] == config.get_localized_string( 30154): #"Quitar de favoritos" from core import favoritos # La categoría es el nombre del fichero en favoritos favoritos.deletebookmark(category) advertencia = xbmcgui.Dialog() resultado = advertencia.ok( config.get_localized_string(30102), title, config.get_localized_string(30105)) # 'Se ha quitado de favoritos' xbmc.executebuiltin("Container.Refresh") return # TODO: Mover a modulo descargadoslist elif opciones[seleccion] == config.get_localized_string( 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.get_localized_string(30101), title, config.get_localized_string(30106)) # 'Se ha quitado de la lista' return # TODO: Mover a modulo descargadoslist elif opciones[seleccion] == config.get_localized_string( 30160): #"Pasar de nuevo a lista de descargas": from core 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.get_localized_string(30101), title, config.get_localized_string( 30107)) # 'Ha pasado de nuevo a la lista de descargas' return # TODO: Mover a modulo favoritos elif opciones[seleccion] == config.get_localized_string( 30155): #"Añadir a favoritos": from core import favoritos from core import downloadtools keyboard = xbmc.Keyboard( downloadtools.limpia_nombre_excepto_1(title) + " [" + canal + "]") keyboard.doModal() if keyboard.isConfirmed(): title = keyboard.getText() favoritos.savebookmark(title, url, thumbnail, server, plot) advertencia = xbmcgui.Dialog() resultado = advertencia.ok( config.get_localized_string(30102), title, config.get_localized_string( 30108)) # 'se ha añadido a favoritos' return # TODO: Mover a modulo descargadoslist elif opciones[seleccion] == config.get_localized_string( 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.get_localized_string(30101), title, config.get_localized_string( 30106)) # 'Se ha quitado de lista de descargas' return # TODO: Mover a modulo descargadoslist elif opciones[seleccion] == config.get_localized_string( 30157): #"Añadir a lista de descargas": from core import descargadoslist from core 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.get_localized_string(30101), title, config.get_localized_string( 30109)) # 'se ha añadido a la lista de descargas' return elif opciones[seleccion] == config.get_localized_string( 30161): #"Añadir a Biblioteca": # Library from core import library library.savelibrary(title, url, thumbnail, server, plot, canal=canal, category=category, Serie=Serie) return elif opciones[seleccion] == config.get_localized_string( 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.get_setting("subtitulo") == "true") and (opciones[seleccion].startswith("Ver")): xbmc.Player().setSubtitles( os.path.join(config.DATA_PATH, 'subtitulo.srt')) config.setSetting("subtitulo", "false")