Algunos scripts disponibles
Abrir terminal Aqui:
#!/bin/sh
# From Chris Picton
# Replaces a Script by Martin Enlund
# Modified to work with spaces in path by Christophe Combelles
# This script either opens in the current directory,
# or in the selected directory
base=”`echo $NAUTILUS_SCRIPT_CURRENT_URI | cut -d’/’ -f3- | sed ’s/%20/ /g’`”
if [ -z "$NAUTILUS_SCRIPT_SELECTED_FILE_PATHS" ]; then
dir=”$base”
else
while [ ! -z "$1" -a ! -d "$base/$1" ]; do shift; done
dir=”$base/$1″
fi
gnome-terminal –working-directory=”$dir”
Covertir Wma a MP3:
#!/usr/bin/env python
# -*- coding: latin-1 -*-
import os, sys
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])),".."))
import Process
if Process.verifyCommands("mplayer|lame")==False:
sys.exit()
def ProcessDirectory(d):
files = os.listdir(d)
for f in files:
f = d + "/" + f
if os.path.isdir(f):
ProcessDirectory(f)
else:
ProcessFile(f)
def ProcessFile(f):
if Process.getExtension(f) == "WMA":
Process.ProcessFileByArgument("mplayer "" + f + "" -ao pcm")
Process.ProcessFileByArgument("lame -h -m j audiodump.wav "" + Process.getPath(f) + "/" + Process.getName(f) + ".mp3"")
Process.ProcessFileByArgument("rm audiodump.wav")
files = os.environ['NAUTILUS_SCRIPT_SELECTED_FILE_PATHS'].split("n")
for f in files:
if f != "":
if os.path.isdir(f):
ProcessDirectory(f)
else:
ProcessFile(f)
Convertir Wav a MP3:
#!/usr/bin/env python
# -*- coding: latin-1 -*-
import sys, os
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])),".."))
import Process
if Process.verifyCommands("lame")==False:
sys.exit()
Process.ProcessFiles(
"lame -h -m j $FILE$ $NAME$.mp3", # comando a ejecutar
"wav", # tipo de archivos
True, # leer directorios?
False, # procesar directorio como un archivo
"") # mensaje final
Añadir comentarios a Fotografia:
#!/usr/bin/env python
# -*- coding: latin-1 -*-
import gtk
import os
import sys
import string
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])),".."))
import Process
from xml.dom import minidom
dirPath = ""
fileXML = ""
nPhotosWithoutInfo = 0
nPhoto = 0
def ClickCancel(widget):
gtk.main_quit()
def ClickImage(widget, f=None):
global nPhotosWithoutInfo
if f == None:
return
dialog = gtk.Dialog("Modificar datos de la imagen", w, 0, (gtk.STOCK_OK, gtk.RESPONSE_OK, gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_REMOVE, gtk.RESPONSE_NO))
dialog.set_border_width(4)
dialog.set_default_size(360,100)
data = readPhotoXML(f)
table = gtk.Table(2, 2, False)
table.set_row_spacings(8)
table.set_col_spacings(8)
lTitle = gtk.Label("Título")
table.attach_defaults(lTitle, 0, 1, 0, 1)
eTitle = gtk.Entry()
eTitle.set_text(data[0])
table.attach_defaults(eTitle, 1, 2, 0, 1)
lComment = gtk.Label("Comentario")
table.attach_defaults(lComment, 0, 1, 1, 2)
eComment = gtk.Entry()
eComment.set_text(data[1])
table.attach_defaults(eComment, 1, 2, 1, 2)
dialog.vbox.pack_start(table, gtk.FALSE, gtk.FALSE, 0)
dialog.show_all()
respuesta = dialog.run()
if respuesta == gtk.RESPONSE_OK:
newNode = True
dom = minidom.parse(fileXML)
if eTitle.get_text() == "" and eComment.get_text() == "":
for node in dom.getElementsByTagName('photo'):
if node.attributes["file"].value == f:
node.parentNode.removeChild(node)
tooltips.set_tip(widget, "Sin datos")
nPhotosWithoutInfo = nPhotosWithoutInfo + 1
labelComent.set_label(getTextInfo())
widget.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(35535,0,0))
widget.show()
else:
for node in dom.getElementsByTagName('photo'):
if node.attributes["file"].value == f:
newNode = False
node.attributes["title"].value = eTitle.get_text()
node.attributes["comment"].value = eComment.get_text()
if newNode == True:
nodePhoto = dom.createElement("photo")
nodePhoto.setAttribute("file", f)
nodePhoto.setAttribute("title", eTitle.get_text())
nodePhoto.setAttribute("comment", eComment.get_text())
dom.childNodes[0].appendChild(nodePhoto)
nPhotosWithoutInfo = nPhotosWithoutInfo - 1
labelComent.set_label(getTextInfo())
widget.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(0,35535,0))
widget.show()
tooltips.set_tip(widget, "Título: " + eTitle.get_text() + "nComentario: " + eComment.get_text()[0:15] + "...")
saveXML(dom.toxml())
if respuesta == gtk.RESPONSE_NO:
dom = minidom.parse(fileXML)
for node in dom.getElementsByTagName('photo'):
if node.attributes["file"].value == f:
node.parentNode.removeChild(node)
tooltips.set_tip(widget, "Sin datos")
nPhotosWithoutInfo = nPhotosWithoutInfo + 1
labelComent.set_label(getTextInfo())
widget.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(35535,0,0))
widget.show()
saveXML(dom.toxml())
dialog.destroy()
def ClickHelp(widget):
Process.alert("Este script nos servirá para insertar Títulos y Comentariosn"+
"a fotografías que posteriormente serán usadas con otrosn"
"scripts como: Crear DVD o Crear mosaico polaroidsn"
"El script ha sido creado por Javier Perez Pachecon"+
"http://www.javielinux.com/")
def readPhotoXML(f):
global fileXML
if os.path.isfile(fileXML):
dom = minidom.parse(fileXML)
for node in dom.getElementsByTagName('photo'):
if node.attributes["file"].value == f:
return [node.attributes["title"].value, node.attributes["comment"].value]
return ["",""]
def saveXML(strXml):
xml = open(fileXML, 'w')
xml.write(strXml)
xml.close()
def getTextInfo():
return "Hay " + str(nPhoto) + " fotografías en el directorio, " + str(nPhotosWithoutInfo) + " sin comentarios"
# PROGRAMA
if Process.verifyCommands("convert%ImageMagick")==False:
sys.exit()
dirPath = Process.getCurrentDirectory()
# creamos XML si no existe
fileXML = dirPath+"/"+".comments_nautilus.xml"
if not os.path.isfile(fileXML):
saveXML("""<?xml version="1.0" encoding="iso-8859-1"?>
<photos>
</photos>""")
# ventana
w = gtk.Window(gtk.WINDOW_TOPLEVEL)
w.set_title("Añadir comentarios a directorio")
w.set_border_width(8)
w.set_default_size(600,500)
w.connect("destroy", gtk.mainquit)
# tabla de la miniatura
tableMin = gtk.Table(4, 4, True)
tableMin.set_border_width(4)
tableMin.set_row_spacings(8)
tableMin.set_col_spacings(8)
sw = gtk.ScrolledWindow()
sw.set_border_width(10)
sw.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC)
sw.show()
# creamos la tabla de imágenes
#files = os.listdir(dirPath)
row = -1
tooltips = gtk.Tooltips()
directories = os.environ['NAUTILUS_SCRIPT_SELECTED_FILE_PATHS'].split("n")
for f in directories:
if Process.getExtension(f)=="JPG" or Process.getExtension(f)=="PNG":
filePath = f
pb = gtk.gdk.pixbuf_new_from_file( filePath )
pb = pb.scale_simple(70, 70, gtk.gdk.INTERP_NEAREST)
image = gtk.Image()
image.set_from_pixbuf(pb)
image.show()
b = gtk.Button()
b.add(image)
data = readPhotoXML(Process.getFile(f))
if data[0]=="" and data[1]=="":
tooltips.set_tip(b, "Sin datos")
nPhotosWithoutInfo = nPhotosWithoutInfo + 1
b.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(35535,0,0))
else:
tooltips.set_tip(b, "Título: " + data[0] + "nComentario: " + data[1][0:15] + "...")
b.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(0,35535,0))
b.connect("clicked", ClickImage, Process.getFile(f))
b.show()
col = nPhoto % 5
if col == 0:
row = row + 1
tableMin.attach(b, col, col+1, row, row+1)
nPhoto = nPhoto + 1
sw.add_with_viewport(tableMin)
# botones
aligButtons = gtk.Alignment(1.0, 0.0)
boxButtons = gtk.HBox(True, 4)
bHelp = gtk.Button("Ayuda", gtk.STOCK_HELP)
bHelp.connect("clicked", ClickHelp)
boxButtons.pack_start(bHelp, False, False, 0)
bCancel = gtk.Button("Cerrar", gtk.STOCK_CLOSE)
bCancel.connect("clicked", ClickCancel)
boxButtons.pack_start(bCancel, False, False, 0)
aligButtons.add(boxButtons)
#row = row + 1
labelComent = gtk.Label(getTextInfo())
vbox = gtk.VBox(gtk.FALSE, 0)
vbox.set_border_width(4)
vbox.pack_start(labelComent, False, True, 0)
vbox.pack_start(sw, True, True, 0)
vbox.pack_start(aligButtons, False, True, 0)
w.add(vbox)
w.show_all()
gtk.main()
Reducir Calidad Fotografica:
#!/usr/bin/env python
# -*- coding: latin-1 -*-
import gtk
import os, sys
import string
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])),".."))
import Process
# VARIABLES POR DEFECTO
calidad = "80"
def alerta (cadena):
dialogo = gtk.MessageDialog(None, gtk.DIALOG_MODAL, gtk.MESSAGE_INFO, gtk.BUTTONS_CLOSE, cadena)
dialogo.run()
dialogo.destroy()
def ClickAceptar(widget):
archivos = os.environ['NAUTILUS_SCRIPT_SELECTED_FILE_PATHS'].split("n")
for archivo in archivos:
if archivo != "":
if os.path.isdir(archivo):
ProcesarDirectorio(archivo)
else:
ProcesarImagen(archivo)
alerta("El proceso ha finalizado satisfactoriamente")
gtk.main_quit()
def ProcesarDirectorio(directorio):
archivos = os.listdir(directorio)
for archivo in archivos:
archivo = directorio + "/" + archivo
if os.path.isdir(archivo):
ProcesarDirectorio(archivo)
else:
ProcesarImagen(archivo)
def ProcesarImagen(archivo):
program = "convert"
if getExtension(archivo) == "JPG" or getExtension(archivo) == "PNG":
arguments = ["-quality", entryCalidad.get_text(), archivo, archivo]
os.spawnvp(os.P_NOWAIT, program, (program,) + tuple(arguments))
def getExtension(archivo):
trozos = archivo.split(".")
return string.upper(trozos[len(trozos)-1])
def ClickCancelar(widget):
gtk.main_quit()
# PROGRAMA
if Process.verifyCommands("convert%ImageMagick")==False:
sys.exit()
w = gtk.Window(gtk.WINDOW_TOPLEVEL)
w.set_title("Reducir calidad")
w.set_border_width(20)
w.connect("destroy", gtk.mainquit)
#l = gtk.Label(os.environ['NAUTILUS_SCRIPT_SELECTED_FILE_PATHS'])
# tabla de la miniatura
tableMin = gtk.Table(2, 1, False)
tableMin.set_border_width(10)
tableMin.set_row_spacings(8)
tableMin.set_col_spacings(8)
lCalidad = gtk.Label("Calidad:")
tableMin.attach(lCalidad, 0, 1, 0, 1)
entryCalidad = gtk.Entry()
entryCalidad.set_text(calidad)
tableMin.attach(entryCalidad, 1, 3, 0, 1)
# botones
aligBotones = gtk.Alignment(1.0, 0.0)
boxBotones = gtk.HBox(True, 4)
bAceptar = gtk.Button("Aceptar", gtk.STOCK_OK)
bAceptar.connect("clicked", ClickAceptar)
boxBotones.pack_start(bAceptar, False, False, 0)
bCancelar = gtk.Button("Cancelar", gtk.STOCK_CANCEL)
bCancelar.connect("clicked", ClickCancelar)
boxBotones.pack_start(bCancelar, False, False, 0)
aligBotones.add(boxBotones)
tableMin.attach(aligBotones, 1, 2, 4, 5)
w.add(tableMin)
w.show_all()
gtk.main()
Unir archivos PDF:
#!/usr/bin/env python
# -*- coding: latin-1 -*-
# Creado por Javier Rovegno
import sys, os
sys.path.insert(0, os.path.join(os.path.abspath(os.path.dirname(sys.argv[0])),".."))
import Process
if Process.verifyCommands("pdftk%pdftk")==False:
sys.exit()
Process.ProcessTogetherFiles(
"pdftk $FILES$ cat output out.pdf", # comando a ejecutar
"pdf", # tipo de archivos
"") # mensaje final