コード例 #1
0
def savebookmark(titulo,url,thumbnail,server,plot):
	xbmc.output("[descargadoslist.py] savebookmark")

	try:
		os.mkdir(DOWNLOAD_PATH)
		os.mkdir(ERROR_PATH)
	except:
		pass

	# No va bien más que en Windows
	#bookmarkfiledescriptor,bookmarkfilepath = tempfile.mkstemp(suffix=".txt",prefix="",dir=DOWNLOAD_PATH)
	
	filenumber=0
	salir = False
	while not salir:
		filename = '%08d.txt' % filenumber
		xbmc.output("[descargadoslist.py] savebookmark filename="+filename)
		fullfilename = os.path.join(DOWNLOAD_PATH,filename)
		xbmc.output("[descargadoslist.py] savebookmark fullfilename="+fullfilename)
		if not os.path.exists(fullfilename):
			salir=True
		filenumber = filenumber + 1

	bookmarkfile = open(fullfilename,"w")
	bookmarkfile.write(urllib.quote_plus(downloadtools.limpia_nombre_excepto_1(titulo))+'\n')
	bookmarkfile.write(urllib.quote_plus(url)+'\n')
	bookmarkfile.write(urllib.quote_plus(thumbnail)+'\n')
	bookmarkfile.write(urllib.quote_plus(server)+'\n')
	bookmarkfile.write(urllib.quote_plus(downloadtools.limpia_nombre_excepto_1(plot))+'\n')
	bookmarkfile.flush();
	bookmarkfile.close()
コード例 #2
0
ファイル: favoritos.py プロジェクト: vdeku/xbmc-tvalacarta
def savebookmark(titulo, url, thumbnail, server, plot):
    xbmc.output("[favoritos.py] savebookmark")

    # No va bien más que en Windows
    #bookmarkfiledescriptor,bookmarkfilepath = tempfile.mkstemp(suffix=".txt",prefix="",dir=BOOKMARK_PATH)

    filenumber = 0
    salir = False
    while not salir:
        filename = '%08d.txt' % filenumber
        xbmc.output("[favoritos.py] savebookmark filename=" + filename)
        fullfilename = os.path.join(BOOKMARK_PATH, filename)
        xbmc.output("[favoritos.py] savebookmark fullfilename=" + fullfilename)
        if not os.path.exists(fullfilename):
            salir = True
        filenumber = filenumber + 1

    bookmarkfile = open(fullfilename, "w")
    bookmarkfile.write(
        urllib.quote_plus(downloadtools.limpia_nombre_excepto_1(titulo)) +
        '\n')
    bookmarkfile.write(urllib.quote_plus(url) + '\n')
    bookmarkfile.write(urllib.quote_plus(thumbnail) + '\n')
    bookmarkfile.write(urllib.quote_plus(server) + '\n')
    bookmarkfile.write(
        urllib.quote_plus(downloadtools.limpia_nombre_excepto_1(plot)) + '\n')
    bookmarkfile.flush()
    bookmarkfile.close()
コード例 #3
0
def savebookmark(titulo,url,thumbnail,server,plot):
    logger.info("[descargadoslist.py] savebookmark")

    try:
        os.mkdir(DOWNLOAD_PATH)
        os.mkdir(ERROR_PATH)
    except:
        pass

    # No va bien más que en Windows
    #bookmarkfiledescriptor,bookmarkfilepath = tempfile.mkstemp(suffix=".txt",prefix="",dir=DOWNLOAD_PATH)
    
    filenumber=0
    salir = False
    while not salir:
        filename = '%08d.txt' % filenumber
        logger.info("[descargadoslist.py] savebookmark filename="+filename)
        fullfilename = os.path.join(DOWNLOAD_PATH,filename)
        logger.info("[descargadoslist.py] savebookmark fullfilename="+fullfilename)
        if not os.path.exists(fullfilename):
            salir=True
        filenumber = filenumber + 1

    bookmarkfile = open(fullfilename,"w")
    bookmarkfile.write(urllib.quote_plus(downloadtools.limpia_nombre_excepto_1(titulo))+'\n')
    bookmarkfile.write(urllib.quote_plus(url)+'\n')
    bookmarkfile.write(urllib.quote_plus(thumbnail)+'\n')
    bookmarkfile.write(urllib.quote_plus(server)+'\n')
    bookmarkfile.write(urllib.quote_plus(downloadtools.limpia_nombre_excepto_1(plot))+'\n')
    bookmarkfile.flush();
    bookmarkfile.close()
コード例 #4
0
def savebookmark(titulo,url,thumbnail,server,plot):
	logger.info("[favoritos.py] savebookmark")

	# No va bien m�s que en Windows
	#bookmarkfiledescriptor,bookmarkfilepath = tempfile.mkstemp(suffix=".txt",prefix="",dir=BOOKMARK_PATH)

	# Crea el directorio de favoritos si no existe
	try:
		os.mkdir(BOOKMARK_PATH)
	except:
		pass
	
	filenumber=0
	salir = False
	while not salir:
		filename = '%08d.txt' % filenumber
		logger.info("[favoritos.py] savebookmark filename="+filename)
		fullfilename = os.path.join(BOOKMARK_PATH,filename)
		logger.info("[favoritos.py] savebookmark fullfilename="+fullfilename)
		if not os.path.exists(fullfilename):
			salir=True
		filenumber = filenumber + 1

	bookmarkfile = open(fullfilename,"w")
	bookmarkfile.write(urllib.quote_plus(downloadtools.limpia_nombre_excepto_1(titulo))+'\n')
	bookmarkfile.write(urllib.quote_plus(url)+'\n')
	bookmarkfile.write(urllib.quote_plus(thumbnail)+'\n')
	bookmarkfile.write(urllib.quote_plus(server)+'\n')
	bookmarkfile.write(urllib.quote_plus(downloadtools.limpia_nombre_excepto_1(plot))+'\n')
	bookmarkfile.flush();
	bookmarkfile.close()
コード例 #5
0
ファイル: favoritos.py プロジェクト: hmemar/xbmc-tvalacarta
def savebookmark(
    canal=CHANNELNAME, titulo="", url="", thumbnail="", server="", plot="", fulltitle="", savepath=BOOKMARK_PATH
):
    logger.info("[favoritos.py] savebookmark(path=" + savepath + ")")

    # Crea el directorio de favoritos si no existe
    if not usingsamba(savepath):
        try:
            os.mkdir(savepath)
        except:
            pass

    # Lee todos los ficheros
    if usingsamba(savepath):
        ficheros = samba.get_files(savepath)
    else:
        ficheros = os.listdir(savepath)
    ficheros.sort()

    # Averigua el último número
    if len(ficheros) > 0:
        # XRJ: Linea problemática, sustituida por el bucle siguiente
        # filenumber = int( ficheros[len(ficheros)-1][0:-4] )+1
        filenumber = 1
        for fichero in ficheros:
            logger.info("[favoritos.py] fichero=" + fichero)
            try:
                tmpfilenumber = int(fichero[0:8]) + 1
                if tmpfilenumber > filenumber:
                    filenumber = tmpfilenumber
            except:
                pass
    else:
        filenumber = 1

    # Genera el contenido
    filecontent = ""
    filecontent = filecontent + urllib.quote_plus(downloadtools.limpia_nombre_excepto_1(titulo)) + "\n"
    filecontent = filecontent + urllib.quote_plus(url) + "\n"
    filecontent = filecontent + urllib.quote_plus(thumbnail) + "\n"
    filecontent = filecontent + urllib.quote_plus(server) + "\n"
    filecontent = filecontent + urllib.quote_plus(downloadtools.limpia_nombre_excepto_1(plot)) + "\n"
    filecontent = filecontent + urllib.quote_plus(fulltitle) + "\n"
    filecontent = filecontent + urllib.quote_plus(canal) + "\n"

    # Genera el nombre de fichero
    from core import scrapertools

    filename = "%08d-%s.txt" % (filenumber, scrapertools.slugify(fulltitle))
    logger.info("[favoritos.py] savebookmark filename=" + filename)

    # Graba el fichero
    if not usingsamba(savepath):
        fullfilename = os.path.join(savepath, filename)
        bookmarkfile = open(fullfilename, "w")
        bookmarkfile.write(filecontent)
        bookmarkfile.flush()
        bookmarkfile.close()
    else:
        samba.write_file(filename, filecontent, savepath)
コード例 #6
0
ファイル: favoritos.py プロジェクト: vdeku/xbmc-tvalacarta
def savebookmark(canal=CHANNELNAME,titulo="",url="",thumbnail="",server="",plot="",fulltitle="",savepath=BOOKMARK_PATH):
    logger.info("[favoritos.py] savebookmark(path="+savepath+")")

    # Crea el directorio de favoritos si no existe
    if not usingsamba(savepath):
        try:
            os.mkdir(savepath)
        except:
            pass

    # Lee todos los ficheros
    if usingsamba(savepath):
        ficheros = samba.get_files(savepath)
    else:
        ficheros = os.listdir(savepath)
    ficheros.sort()
    
    # Averigua el último número
    if len(ficheros)>0:
        # XRJ: Linea problemática, sustituida por el bucle siguiente
        #filenumber = int( ficheros[len(ficheros)-1][0:-4] )+1
        filenumber = 1
        for fichero in ficheros:
            logger.info("[favoritos.py] fichero="+fichero)
            try:
                tmpfilenumber = int( fichero[0:8] )+1
                if tmpfilenumber > filenumber:
                    filenumber = tmpfilenumber
            except:
                pass
    else:
        filenumber=1

    # Genera el contenido
    filecontent = ""
    filecontent = filecontent + urllib.quote_plus(downloadtools.limpia_nombre_excepto_1(titulo))+'\n'
    filecontent = filecontent + urllib.quote_plus(url)+'\n'
    filecontent = filecontent + urllib.quote_plus(thumbnail)+'\n'
    filecontent = filecontent + urllib.quote_plus(server)+'\n'
    filecontent = filecontent + urllib.quote_plus(downloadtools.limpia_nombre_excepto_1(plot))+'\n'
    filecontent = filecontent + urllib.quote_plus(fulltitle)+'\n'
    filecontent = filecontent + urllib.quote_plus(canal)+'\n'

    # Genera el nombre de fichero
    from core import scrapertools
    filename = '%08d-%s.txt' % (filenumber,scrapertools.slugify(fulltitle))
    logger.info("[favoritos.py] savebookmark filename="+filename)

    # Graba el fichero
    if not usingsamba(savepath):
        fullfilename = os.path.join(savepath,filename)
        bookmarkfile = open(fullfilename,"w")
        bookmarkfile.write(filecontent)
        bookmarkfile.flush();
        bookmarkfile.close()
    else:
        samba.write_file(filename, filecontent, savepath)
コード例 #7
0
ファイル: favoritos.py プロジェクト: vdeku/xbmc-tvalacarta
def savebookmark(titulo,url,thumbnail,server,plot):
    logger.info("[favoritos.py] savebookmark")

    # No va bien más que en Windows
    #bookmarkfiledescriptor,bookmarkfilepath = tempfile.mkstemp(suffix=".txt",prefix="",dir=BOOKMARK_PATH)

    # Crea el directorio de favoritos si no existe
    if not usingsamba:
        try:
            os.mkdir(BOOKMARK_PATH)
        except:
            pass

    # Lee todos los ficheros
    if usingsamba:
        ficheros = samba.get_files(BOOKMARK_PATH)
    else:
        ficheros = os.listdir(BOOKMARK_PATH)
    ficheros.sort()
    #print ficheros
    #Filtra solo los ficheros
    ficheros2 = [f for f in ficheros
                if os.path.isfile(os.path.join(BOOKMARK_PATH, f)) and os.path.join(BOOKMARK_PATH, f).endswith(".txt")]

    # Averigua el último número
    if len(ficheros)>0:
        filenumber = int( ficheros[len(ficheros)-1][0:-4] )+1
    else:
        filenumber=1

    # Genera el contenido
    filecontent = ""
    filecontent = filecontent + urllib.quote_plus(downloadtools.limpia_nombre_excepto_1(titulo))+'\n'
    filecontent = filecontent + urllib.quote_plus(url)+'\n'
    filecontent = filecontent + urllib.quote_plus(thumbnail)+'\n'
    filecontent = filecontent + urllib.quote_plus(server)+'\n'
    filecontent = filecontent + urllib.quote_plus(downloadtools.limpia_nombre_excepto_1(plot))+'\n'

    # Genera el nombre de fichero    
    filename = '%08d.txt' % filenumber
    logger.info("[favoritos.py] savebookmark filename="+filename)

    # Graba el fichero
    if not usingsamba:
        fullfilename = os.path.join(BOOKMARK_PATH,filename)
        bookmarkfile = open(fullfilename,"w")
        bookmarkfile.write(filecontent)
        bookmarkfile.flush();
        bookmarkfile.close()
    else:
        samba.write_file(filename, filecontent, BOOKMARK_PATH)
コード例 #8
0
ファイル: mcanime.py プロジェクト: hmemar/xbmc-tvalacarta
def addalltodownloadlist(params,url,category):
	logger.info("[mcanime.py] addalltodownloadlist")

	title = urllib.unquote_plus( params.get("category") )
	thumbnail = urllib.unquote_plus( params.get("thumbnail") )
	plot = unicode( xbmc.getInfoLabel( "ListItem.Plot" ), "utf-8" )

	# Pide el tÌtulo de la serie como "prefijo"
	keyboard = xbmc.Keyboard(downloadtools.limpia_nombre_excepto_1(title))
	keyboard.doModal()
	if (keyboard.isConfirmed()):
		title = keyboard.getText()
	else:
		return

	# Descarga la p·gina
	data = scrapertools.cachePage(url)
	#logger.info(data)

	# ------------------------------------------------------------------------------------
	# Busca los enlaces a los videos
	# ------------------------------------------------------------------------------------
	listavideos = servertools.findvideos(data)

	# Di·logo de progreso
	pDialog = xbmcgui.DialogProgress()
	ret = pDialog.create('pelisalacarta', 'AÒadiendo vÌdeos a la lista de descargas')
	pDialog.update(0, 'VÌdeo...')
	totalepisodes = len(listavideos)

	i = 1

	for video in listavideos:
		try:
			fulltitle = unicode( title.strip() + " (%d) " + video[0], "utf-8" ).encode("iso-8859-1")
		except:
			fulltitle = title.strip() + " (%d) " + video[0]
		fulltitle = fulltitle % i
		i = i + 1
		url = video[1]
		server = video[2]

		# AÒade el enlace a la lista de descargas
		descargadoslist.savebookmark(fulltitle,url,thumbnail,server,plot)
		
		pDialog.update(i*100/totalepisodes, 'VÌdeo...',fulltitle)
		if (pDialog.iscanceled()):
			pDialog.close()
			return

	# ------------------------------------------------------------------------------------
	pDialog.close()

	advertencia = xbmcgui.Dialog()
	resultado = advertencia.ok('VÌdeos en lista de descargas' , 'Se han aÒadido todos los vÌdeos' , 'a la lista de descargas')

	# Cierra el directorio
	xbmcplugin.setPluginCategory( handle=pluginhandle, category=category )
	xbmcplugin.addSortMethod( handle=pluginhandle, sortMethod=xbmcplugin.SORT_METHOD_NONE )
	xbmcplugin.endOfDirectory( handle=pluginhandle, succeeded=True )
コード例 #9
0
def descargasub(canal,server,url,category,title,thumbnail,plot):
	
	xbmc.output("[casttv.py] playvideo")
	xbmc.output("[casttv.py] playvideo canal="+canal)
	xbmc.output("[casttv.py] playvideo server="+server)
	xbmc.output("[casttv.py] playvideo url="+url)
	xbmc.output("[casttv.py] playvideo category="+category)

	# Abre el diálogo de selección
	opciones = []
	opciones.append("Descargar")
	
	dia = xbmcgui.Dialog()
	seleccion = dia.select("Elige una opción", opciones)
	xbmc.output("seleccion=%d" % seleccion)
		
	if seleccion==-1:
		return
	if seleccion==0:
		keyboard = xbmc.Keyboard(downloadtools.limpia_nombre_excepto_1(title))
		keyboard.doModal()
		if (keyboard.isConfirmed()):
			title = keyboard.getText()
		downloadtools.downloadtitle(url,title)
		return
コード例 #10
0
def playvideoEx(canal,server,url,category,title,thumbnail,plot,desdefavoritos,desdedescargados):
	
	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)

	# Abre el diálogo de selección
	if (server=="Megavideo" or server=="Megaupload") and xbmcplugin.getSetting("megavideopremium")=="true":
		opciones = []
		opciones.append("Ver en calidad alta [Megavideo]")
		opciones.append("Ver en calidad baja [Megavideo]")
		if desdefavoritos:
			opciones.append("Quitar de favoritos")
		else:
			opciones.append("Añadir a favoritos")

		dia = xbmcgui.Dialog()
		seleccion = dia.select("Elige una opción", opciones)
		xbmc.output("seleccion=%d" % seleccion)

		if seleccion==-1:
			return
		if seleccion==0:
			if server=="Megaupload":
				mediaurl = servertools.getmegauploadhigh(url)
			else:
				mediaurl = servertools.getmegavideohigh(url)
		elif seleccion==1:
			#advertencia = xbmcgui.Dialog()
			#resultado = advertencia.ok('Megavideo tiene un límite de reproducción de 72 minutos' , 'Aunque tengas una cuenta Premium el límite sigue existiendo' , 'cuando ves los vídeos en calidad baja')
			if server=="Megaupload":
				mediaurl = servertools.getmegauploadlow(url)
			else:
				mediaurl = servertools.getmegavideolow(url)
		elif seleccion==2:
			if desdefavoritos:
				# 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')
			else:
				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

	else:
		opciones = []
		opciones.append("Ver ["+server+"]")
		if desdefavoritos:
			opciones.append("Quitar de favoritos")
		else:
			opciones.append("Añadir a favoritos")
	
		dia = xbmcgui.Dialog()
		seleccion = dia.select("Elige una opción", opciones)
		xbmc.output("seleccion=%d" % seleccion)
		
		if seleccion==-1:
			return
		if seleccion==0:
			if server=="Megavideo":
				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.findurl(url,server)
		elif seleccion==1:
			if desdefavoritos:
				# 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')
			else:
				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

	xbmc.output("[xbmctools.py] mediaurl="+mediaurl)
	
	if mediaurl=="":
		alertnodisponibleserver(server)
		return
	
	# Abre dialogo
	dialogWait = xbmcgui.DialogProgress()
	dialogWait.create( 'Accediendo al video...', title )

	# Playlist vacia
	playlist = xbmc.PlayList( xbmc.PLAYLIST_VIDEO )
	playlist.clear()

	# Crea la entrada y la añade al playlist
	listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail )
	listitem.setInfo( "video", { "Title": title, "Plot" : plot , "Studio" : canal , "Genre" : category } )
	playlist.add( mediaurl, listitem )

	# Cierra dialogo
	dialogWait.close()
	del dialogWait

	# Reproduce
	xbmcPlayer = xbmc.Player( xbmc.PLAYER_CORE_DVDPLAYER )
	xbmcPlayer.play(playlist)   
コード例 #11
0
ファイル: xbmctools.py プロジェクト: vdeku/xbmc-tvalacarta
def playvideoEx(canal,
                server,
                url,
                category,
                title,
                thumbnail,
                plot,
                desdefavoritos,
                desdedescargados,
                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 = []

    # 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 xbmcplugin.getSetting("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 xbmcplugin.getSetting("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 xbmcplugin.getSetting("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 xbmcplugin.getSetting("default_action") == "1":
            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 canal == "seriesyonkis":  #De momento sólo en seriesyonkis
        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 xbmcplugin.getSetting("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,
                                        path="")  # JUR Modified
            xbmcplugin.setResolvedUrl(int(sys.argv[1]), False,
                                      listitem)  # JUR Added
        return
    # Ver en calidad alta
    if opciones[seleccion].startswith("Ver"):
        mediaurl = ""

    # Descargar
    elif opciones[seleccion] == "Descargar":
        mediaurl = ""

        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] == "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(plot), 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 la playlist para pasársela al reproductor
    playlist = createplaylist(canal, title, mediaurl, thumbnail, plot,
                              category, strmfile)

    # Lanza el reproductor
    launchplayer(strmfile, playlist)
コード例 #12
0
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")
コード例 #13
0
ファイル: xbmctools.py プロジェクト: hmemar/xbmc-tvalacarta
def playvideoEx(canal,server,url,category,title,thumbnail,plot,desdefavoritos,desdedescargados,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 = []

	# 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 xbmcplugin.getSetting("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 xbmcplugin.getSetting("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 xbmcplugin.getSetting("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 xbmcplugin.getSetting("default_action")=="1":
			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 canal == "seriesyonkis": #De momento sólo en seriesyonkis
		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 xbmcplugin.getSetting("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, path="")    # JUR Modified
			xbmcplugin.setResolvedUrl(int(sys.argv[ 1 ]),False,listitem)    # JUR Added
		return
	# Ver en calidad alta
	if opciones[seleccion].startswith("Ver"):
		mediaurl = ""

	# Descargar
	elif opciones[seleccion]=="Descargar":
		mediaurl = ""

		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]=="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( plot ) , 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 la playlist para pasársela al reproductor
	playlist = createplaylist(canal,title,mediaurl,thumbnail,plot,category,strmfile)

	# Lanza el reproductor
	launchplayer(strmfile,playlist)
コード例 #14
0
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)
コード例 #15
0
def playvideoEx(canal, server, url, category, title, thumbnail, plot,
                desdefavoritos, desdedescargados):

    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)

    # Abre el diálogo de selección
    if (server == "Megavideo" or server == "Megaupload"
        ) and xbmcplugin.getSetting("megavideopremium") == "true":
        opciones = []
        opciones.append("Ver en calidad alta [Megavideo]")
        opciones.append("Ver en calidad baja [Megavideo]")
        if desdefavoritos:
            opciones.append("Quitar de favoritos")
        else:
            opciones.append("Añadir a favoritos")

        dia = xbmcgui.Dialog()
        seleccion = dia.select("Elige una opción", opciones)
        xbmc.output("seleccion=%d" % seleccion)

        if seleccion == -1:
            return
        if seleccion == 0:
            if server == "Megaupload":
                mediaurl = servertools.getmegauploadhigh(url)
            else:
                mediaurl = servertools.getmegavideohigh(url)
        elif seleccion == 1:
            #advertencia = xbmcgui.Dialog()
            #resultado = advertencia.ok('Megavideo tiene un límite de reproducción de 72 minutos' , 'Aunque tengas una cuenta Premium el límite sigue existiendo' , 'cuando ves los vídeos en calidad baja')
            if server == "Megaupload":
                mediaurl = servertools.getmegauploadlow(url)
            else:
                mediaurl = servertools.getmegavideolow(url)
        elif seleccion == 2:
            if desdefavoritos:
                # 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')
            else:
                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

    else:
        opciones = []
        opciones.append("Ver [" + server + "]")
        if desdefavoritos:
            opciones.append("Quitar de favoritos")
        else:
            opciones.append("Añadir a favoritos")

        dia = xbmcgui.Dialog()
        seleccion = dia.select("Elige una opción", opciones)
        xbmc.output("seleccion=%d" % seleccion)

        if seleccion == -1:
            return
        if seleccion == 0:
            if server == "Megavideo":
                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.findurl(url, server)
        elif seleccion == 1:
            if desdefavoritos:
                # 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')
            else:
                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

    xbmc.output("[xbmctools.py] mediaurl=" + mediaurl)

    if mediaurl == "":
        alertnodisponibleserver(server)
        return

    # Abre dialogo
    dialogWait = xbmcgui.DialogProgress()
    dialogWait.create('Accediendo al video...', title)

    # Playlist vacia
    playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
    playlist.clear()

    # Crea la entrada y la añade al playlist
    listitem = xbmcgui.ListItem(title,
                                iconImage="DefaultVideo.png",
                                thumbnailImage=thumbnail)
    listitem.setInfo("video", {
        "Title": title,
        "Plot": plot,
        "Studio": canal,
        "Genre": category
    })
    playlist.add(mediaurl, listitem)

    # Cierra dialogo
    dialogWait.close()
    del dialogWait

    # Reproduce
    xbmcPlayer = xbmc.Player(xbmc.PLAYER_CORE_DVDPLAYER)
    xbmcPlayer.play(playlist)
コード例 #16
0
ファイル: mcanime.py プロジェクト: vdeku/xbmc-tvalacarta
def addalltodownloadlist(params, url, category):
    logger.info("[mcanime.py] addalltodownloadlist")

    title = urllib.unquote_plus(params.get("category"))
    thumbnail = urllib.unquote_plus(params.get("thumbnail"))
    plot = unicode(xbmc.getInfoLabel("ListItem.Plot"), "utf-8")

    # Pide el tÌtulo de la serie como "prefijo"
    keyboard = xbmc.Keyboard(downloadtools.limpia_nombre_excepto_1(title))
    keyboard.doModal()
    if (keyboard.isConfirmed()):
        title = keyboard.getText()
    else:
        return

    # Descarga la p·gina
    data = scrapertools.cachePage(url)
    #logger.info(data)

    # ------------------------------------------------------------------------------------
    # Busca los enlaces a los videos
    # ------------------------------------------------------------------------------------
    listavideos = servertools.findvideos(data)

    # Di·logo de progreso
    pDialog = xbmcgui.DialogProgress()
    ret = pDialog.create('pelisalacarta',
                         'AÒadiendo vÌdeos a la lista de descargas')
    pDialog.update(0, 'VÌdeo...')
    totalepisodes = len(listavideos)

    i = 1

    for video in listavideos:
        try:
            fulltitle = unicode(title.strip() + " (%d) " + video[0],
                                "utf-8").encode("iso-8859-1")
        except:
            fulltitle = title.strip() + " (%d) " + video[0]
        fulltitle = fulltitle % i
        i = i + 1
        url = video[1]
        server = video[2]

        # AÒade el enlace a la lista de descargas
        descargadoslist.savebookmark(fulltitle, url, thumbnail, server, plot)

        pDialog.update(i * 100 / totalepisodes, 'VÌdeo...', fulltitle)
        if (pDialog.iscanceled()):
            pDialog.close()
            return

    # ------------------------------------------------------------------------------------
    pDialog.close()

    advertencia = xbmcgui.Dialog()
    resultado = advertencia.ok('VÌdeos en lista de descargas',
                               'Se han aÒadido todos los vÌdeos',
                               'a la lista de descargas')

    # Cierra el directorio
    xbmcplugin.setPluginCategory(handle=pluginhandle, category=category)
    xbmcplugin.addSortMethod(handle=pluginhandle,
                             sortMethod=xbmcplugin.SORT_METHOD_NONE)
    xbmcplugin.endOfDirectory(handle=pluginhandle, succeeded=True)