AppleScript: Cambiar centenares de firmas en un pis-pas por Juan de Dios Santander

applescript-icon_2009.jpgMi colección de firmas con citas tiene un tamaño considerable —más de 150 la semana pasada—, pero además tiene una parte fija, y una variable. Este artículo muestra cómo cambiar la parte fija de las firmas, respetando la variable, utilizando AppleScript.

Antes de que entrara en el IAA(Instituto de Astrofísíca de Andalucía), firmaba los mensajes de correo electrónico de esta forma:

––

Juan de Dios Santander Vela

Ingeniero en Electrónica, Desarrollador Palm OS

William Golding: Hay que reivindicar el valor de la palabra, poderosa herramienta que puede cambiar nuestro mundo, aún en esta época de satélites y ordenadores.

Lo que quería era cambiar la parte fija (la que pone mi nombre, mi titulación, y lo de “Desarrollador Palm OS”), dejando la frase última.

En primer lugar, el proceso ha sido más fácil, porque la cita era exactamente el último párrafo de las firmas, y por tanto fácil de aislar en un script. Así, utilicé el siguiente script:

tell application “Mail”

set firmas to the signatures

set elementos to the count of firmas

repeat with i from 3 to elementos

set contenido to content of item i of signatures

set frase to the last paragraph of contenido

set cabecera to ”—” & return & ¬

“Juan de Dios Santander Vela” & return & ¬

“Diplomado en CC. Físicas, Ingeniero en Electrónica” & return & ¬

“Doctorando en Tecnologías Multimedia” & return & ¬

“Becario Predoctoral del Instituto de Astrofísica de Andalucía” & return & return

set nuevoContenido to cabecera & frase

set content of item i of signatures to nuevoContenido

end repeat

end tell

Cómo funciona

El script es todo lo que está entre “tell application” y “end tell”. Si habéis seguido los cursos de AppleScript de Julifos, sabréis que esa es la forma en que se indica qué aplicación es la que debe responder a los comandos que se van a enviar.

En primer lugar, un poco de notación. Los términos como tell, repeat, of, etcétera, que están en negrita, representan palabras clave de AppleScript. Los términos como return, content, paragraph, etcétera, que están en cursiva, representan objetos de la aplicación a la que nos estamos dirigiendo con tell, y pueden ser diferentes según la aplicación que estemos utilizando, aunque en muchos casos son equivalentes entre aplicaciones. Por último, los ´terminos sin ningún realce, como “firmas”, “elementos”, “contenido”, etc., son variables que hemos definido nosotros para poder hacer operaciones en el script.

Lo primero que hacemos es obtener todas las firmas, y las guardamos en una variable “firmas”. A continuación, contamos cuántas firmas hay, y guardamos el resultado en elementos.

A partir de ese momento, comenzamos un bucle en el que i va a ir tomando valores entre 3 y el número total de firmas (repeat with i in 3 to elementos). ¿Por qué empezamos en 3? Porque en mi caso las firmas 1 y 2 son firmas especiales, que no se ajustaban al modelo de firmas que queríamos cambiar.

Dentro de ese bucle, ¿qué es lo que hacemos? Pues obtenemos esa firma en particular (i-ésima), y la guardamos en “contenido” (set contenido to content of item i). De ese contenido, obtenemos el último párrafo, que sabemos que contendrá nuestra cita (set frase to the last paragraph of contenido). Y en las dos órdenes siguientes concatenamos nuestra nueva cabecera con la frase que habíamos recuperado, guardando el resultado en “nuevoContenido”. Por último, hacemos que la i-ésima firma sea la que acabamos de crear con nuestra nueva cabecera y la cita: set content of item i of signatures to nuevoContenido.

Espero que el script os resulte útil, o que al menos sirva para que entendáis mejor cómo manipular elementos de una aplicación con AppleScript.

Un artículo de Juan de Dios Santander en Memoria de Acceso aleatorio

0 0 votos
Article Rating
Subscribe
Notify of
0 Comments
Opiniones Inline
Ver todos los comentarios
0
Me encantaría saber tu opinión, por favor, deja un comentariox
()
x