Esta es la primera publicación de una nueva serie que revisa algunas de las publicaciones favoritas de nuestros lectores del pasado que aún contienen información asombrosa y relevante que puede ser útil. Esta publicación fue publicada originalmente el 7 de julio de 2009..
La mejor parte de AppleScript es que no tienes que ser un programador genial para usarlo. De hecho, no tienes que tener ninguna experiencia de programación en absoluto. Este artículo le mostrará cómo escribir un AppleScript para casi cualquier aplicación utilizando las sencillas instrucciones que se ocultan en el marco de cada aplicación. Intrigado? Sigue leyendo!
AppleScript es un poderoso lenguaje de scripts que viene incorporado en OS X. El uso principal de AppleScript es la automatización de tareas que normalmente son repetitivas y requieren mucho tiempo. Por ejemplo, como freelance, odio crear facturas todas las semanas para mis diversos clientes. Para resolver este problema, escribí un AppleScript que lee las horas que inicio sesión en iCal, crea una factura en Microsoft Excel basada en esas horas y envía las facturas por correo electrónico a mis clientes. Todo con el clic de un botón.!
Para crear un AppleScript, abra la aplicación "Editor de secuencias de comandos" ubicada dentro de la carpeta AppleScript dentro de la carpeta Aplicaciones. Debería ver una ventana simple que contiene un campo de texto grande con una tira de botones en la parte superior. Dentro del campo de texto escriba el siguiente código:
[applecript]
decirle a la aplicación "Finder"
Mostrar el diálogo "Hola mundo"
decirle al final
[/ applecript]
AppleScript intenta utilizar el inglés simple siempre que sea posible para que la codificación sea extremadamente simple. La mayoría de los comandos en AppleScript se encuentran dentro de un "bloque tell". Se llama "bloque de información" porque está "diciendo" a una aplicación determinada lo que quiere que haga. Por ejemplo, el código anterior le indica al Buscador que muestre una ventana de diálogo que contenga las palabras "Hola mundo". Una vez que haya terminado con un comando o una cadena de comandos para una aplicación determinada, finalice el bloque con "finalizar".
Recuerda siempre terminar tus bloques de tell correctamente o el código no se compilará!
Una vez que haya terminado de ingresar el código anterior, haga clic en el icono del martillo "Compilar". Si su sintaxis es correcta, su código se formateará y coloreará automáticamente. Si ha cometido un error, el Editor de secuencias de comandos resaltará el área problemática y le dará un mensaje sobre lo que cree que podría haber fallado. Aquí hay una referencia rápida a los diversos colores que verá en su código compilado (que se encuentra en el Editor de secuencias de comandos> Preferencias).
Después de que su código se haya compilado, haga clic en el botón "Ejecutar". Debería ver el siguiente diálogo:
Ahora haga clic en el botón "Aceptar" y observe la parte inferior de la ventana del Editor de secuencias de comandos. Cuando ejecuta una secuencia de comandos, el Editor de secuencias de comandos le informa cuál fue el resultado o qué se "devolvió". En este caso, le indica que se hizo clic en el botón "Aceptar"..
Las variables son esencialmente las mismas en todos los lenguajes de programación. Proporcionan una manera fácil de acceder y manipular mucha información en un fragmento de código compacto. Crear o "declarar" variables es diferente para cada idioma. En AppleScript declaras variables de la siguiente manera:
[applecript]
establecer theString a "Hello World"
decirle a la aplicación "Finder"
mostrar el diálogo theString
decirle al final
[/ applecript]
Hay varias cosas a tener en cuenta sobre el ejemplo anterior. Primero, observe que las variables se declaran usando los comandos "set" y "to". Al hacer esto, está configurando el nombre de su variable, en este caso "theString", para igualar algo, en este caso el texto "Hello World". Muchos lenguajes de programación requieren que indique el tipo de variable que desea en la declaración (entero, punto flotante, texto, etc.). Sin embargo, AppleScript es lo suficientemente inteligente como para trabajar con sus variables sin ninguna instrucción sobre el formato.
También note cómo escribí mi nombre de variable. No puede tener espacios en el nombre de una variable, por lo que es una buena práctica usar camel case (theString) o el método de subrayado (the_string). Realmente no importa el método que elija, solo asegúrese de que sea consistente en todo su código. También es una buena idea dar nombres significativos a todas sus variables. Cuando busca el código de otro programador, puede ser molesto ver nombres de variables como "myVariable" que no dan ninguna indicación sobre qué son o para qué se usarán..
Finalmente, observe que ahora que he colocado el texto "Hola mundo" dentro de una variable, puedo llamar esa variable una y otra vez a lo largo de mi código. Luego, si luego decido cambiar el texto "Hola mundo" a "Buenos días Dave", solo tengo que cambiar el texto en la línea donde declaré la variable.
Puedes hacer todo tipo de cosas locas con variables, pero como esto solo pretende ser una breve introducción a AppleScript, solo te mostraré algunas. Escriba el siguiente código:
[applecript]
--Variables enteras
establece el primer numero a 3
establece el segundo número en 2
--Operaciones variables
establezca la respuesta en (theFirstNumber + theSecondNumber)
establece la respuesta a (la respuesta + 1)
--Variables de cadena
establece la Cadena a "3 + 2 + 1 ="
--Mostrar diálogo
decirle a la aplicación "Finder"
mostrar el diálogo theString & theResponder
decirle al final
[/ applecript]
Puede compilar su código rápidamente presionando la tecla "enter" (no la tecla de retorno). Este se encuentra en el teclado numérico de diez teclas en las computadoras de escritorio y al lado de la tecla "Comando" a la derecha de la barra espaciadora en las computadoras portátiles.
A medida que su guión se vuelve más complejo, un poco de organización está en orden. Al escribir dos guiones "-" antes de una línea de texto, puede insertar un comentario. Use los comentarios para separar y describir sus secciones de código para una fácil navegación. En este ejemplo, he creado una variable de cadena (solo texto) y algunas variables de enteros. Observe que puede realizar operaciones matemáticas en variables. Aquí he establecido "theFirstNumber" para que sea igual a tres y "theSecondNumber" para que sea igual a dos y luego los agregué juntos en "theResponder".
También tenga en cuenta que puede cambiar una variable después de declararla. Inmediatamente después de configurar "theAnswer" en la suma de "theFirstNumber" y "theSecondNumber" (que resulta en 5), cambié el valor de "theAnswer" agregándole uno (resultando en 6). Si ejecuta este script, debería ver el siguiente resultado:
Nuevamente, esto solo araña la superficie de los tipos de operaciones que puede realizar en las variables. Por ahora solo debes entender que una variable no es estática. Gran parte del poder de cualquier lenguaje de programación es la capacidad de manipular variables para realizar una amplia variedad de tareas.
Aunque el propio AppleScript tiene una amplia gama de comandos que pueden aplicarse a cualquier programa o elemento en OS X, los desarrolladores de cada aplicación tienen la tarea de agregar soporte completo de AppleScript a sus aplicaciones. Lo que esto significa es que los desarrolladores deben escribir manuales sencillos sobre cómo comunicarse con sus aplicaciones a través de AppleScript. Estos manuales se llaman "Diccionarios". Para ver un diccionario, vaya a Archivo> Abrir diccionario en Script Editor. Desplácese hacia abajo en la lista de aplicaciones, haga clic en Correo y presione "Aceptar". Deberías ver la siguiente ventana:
La columna de la izquierda contiene las "Suites" disponibles de comandos y elementos. Cuando hace clic en una suite, verá todo lo que se muestra en la suite que se muestra a continuación. Puede restringir esta vista previa haciendo clic en la segunda columna y luego nuevamente en la tercera. Las suites contienen comandos (C con un círculo) y clases (C con un cuadrado), las clases contienen propiedades (P) y elementos (E). Para entender cómo funciona todo esto, usemos este diccionario para crear un script.
Primero necesitamos un algoritmo, que es una forma elegante de decir que necesitamos escribir exactamente lo que hará nuestro script. Queremos crear un script para redactar y enviar un correo electrónico. Queremos usar variables para facilitar el cambio del mensaje, así como a quién se envía el mensaje. A medida que escribimos nuestro algoritmo, debemos tener en cuenta la forma en que funciona AppleScript. Aquí están los pasos que se me ocurrieron:
Ya sabemos cómo crear variables que contengan texto, por lo que ni siquiera necesitamos el diccionario para el paso uno. Así es como se ve el código:
[applecript]
--Variables
establece el nombre del destinatario en "John Doe"
configura la dirección del destinatario en "[email protected]"
configure el tema en "Correo electrónico automatizado de AppleScript"
configura el contenido en "¡Este correo electrónico fue creado y enviado usando AppleScript!"
[/ applecript]
Como puede ver, acabamos de poner texto de marcador de posición en las variables para el nombre y la dirección de correo electrónico del destinatario, así como el asunto y el contenido de nuestro mensaje. Puede cambiar estos a cualquier cosa que desee. Asegúrate de poner tu propia dirección de correo electrónico en la variable de dirección del destinatario para que puedas asegurarte de que la secuencia de comandos funciona correctamente cuando recibas el correo electrónico..
Como no tenemos idea de cómo decirle a Mail que cree un nuevo mensaje, aquí es donde debemos referirnos al diccionario de AppleScript. Si hace clic en "Suite estándar", verá varios comandos comunes que vienen de serie en AppleScript. Sabiendo que queremos "crear" un mensaje nuevo, simplemente nos desplazamos a través de las opciones y encontramos algo equivalente. Verá que no hay un comando "crear" pero casi a la mitad hay un comando "crear". Eso suena perfecto, así que ahora sabemos que decirle a AppleScript que queremos "hacer" algo.
A continuación, haga clic en la suite "Correo". Ya tenemos nuestro comando (make), así que desplácese hacia abajo más allá de los comandos (verbos) hasta que vea las clases (sustantivos). La primera clase que encontramos es el "mensaje saliente", ¡lo cual es genial porque eso es exactamente lo que queremos! Ahora haga clic en la clase "mensaje saliente" y observe las propiedades disponibles a continuación.
Necesitamos insertar nuestras variables para el nombre del destinatario, la dirección de correo electrónico del destinatario, el asunto y el contenido del mensaje. En la lista de propiedades no hay nada sobre el destinatario, pero hay propiedades para el tema y el contenido. Ahora conocemos la sintaxis adecuada para referirnos a estas propiedades. Observe que el diccionario le da el formato para definir las propiedades. Por ejemplo, para el tema, escribiremos la palabra "tema" seguido de dos puntos seguidos por el texto del tema.
También en esta suite encontrará un comando "enviar", que podemos usar para enviar el mensaje simplemente escribiendo "enviar". Aún necesitamos conocer la sintaxis adecuada para el nombre y la dirección de correo electrónico del destinatario. Como no está en esta suite, haga clic en la suite "Mensaje". Alrededor de la mitad de la lista de clases encontramos "destinatario". Haga clic en la clase del destinatario y vemos que, una vez más, podemos usar el inglés simple para referirnos a las propiedades del destinatario. Simplemente escribiremos "nombre" y "dirección".
Puede utilizar la función de búsqueda para buscar propiedades, clases, elementos y comandos rápidamente.
Ahora estamos listos para crear nuestra variable de mensaje usando la sintaxis que hemos aprendido. Así es como se ve el código:
[applecript]
--Variables
establece el nombre del destinatario en "John Doe"
configura la dirección del destinatario en "[email protected]"
configure el tema en "Correo electrónico automatizado de AppleScript"
configura el contenido en "¡Este correo electrónico fue creado y enviado usando AppleScript!"
--Mail Tell Block
Dile a la aplicación "Correo"
--Crea el mensaje
configura el Mensaje para crear un nuevo mensaje saliente con propiedades asunto: el Tema, contenido: el Contenido, visible: verdadero
decirle al final
[/ applecript]
Tenga en cuenta que he creado un bloque de información para incluir todos los comandos en la aplicación de correo. Luego configuré una variable (el Mensaje) para "hacer" un nuevo "mensaje saliente" con las propiedades explicadas anteriormente. Observe también que los conjuntos de propiedades siempre están entre paréntesis .
Ahora que hemos creado nuestra variable de mensaje, debemos llamar a esa variable y crear un nuevo mensaje con las propiedades del Mensaje. También necesitamos establecer los destinatarios y enviar el mensaje. Para hacer esto, usaremos un bloque tell en nuestra variable. Aquí está nuestro guión terminado.
[applecript]
--Variables
establece el nombre del destinatario en "John Doe"
configura la dirección del destinatario en "[email protected]"
configure el tema en "Correo electrónico automatizado de AppleScript"
configura el contenido en "¡Este correo electrónico fue creado y enviado usando AppleScript!"
--Mail Tell Block
Dile a la aplicación "Correo"
--Crea el mensaje
configura el Mensaje para crear un nuevo mensaje saliente con propiedades asunto: el Tema, contenido: el Contenido, visible: verdadero
--Establecer un destinatario
decirle al mensaje
hacer nuevo en el destinatario con propiedades nombre: destinatario, dirección: destinatario Dirección
--Enviar el mensaje
enviar
decirle al final
decirle al final
[/ applecript]
Primero, creamos una nueva copia del Mensaje (que hereda todas las propiedades que hemos puesto en él) y lo configuramos "a destinatario con propiedades". Esto le dice a Mail que queremos agregar un destinatario con las siguientes propiedades. Aquí solo usamos la sintaxis que aprendimos antes y las variables para el nombre y la dirección del destinatario.
Finalmente, invocamos el comando "enviar" para enviar nuestro mensaje. Tenga en cuenta que tenemos dos bloques de tell para cerrar esta vez. Una vez que haya compilado su código y arreglado cualquier error, presione "Ejecutar". El correo debe crear y enviar automáticamente el mensaje. ¡Tadaah! Revise su carpeta enviada para asegurarse de que todo funcionó.
¡Felicidades, has creado tu primer AppleScript! Puede guardarlo como un simple script que puede volver y editar o como una aplicación que se ejecuta automáticamente cuando lo abre..
Espero que esta guía para principiantes le haga pensar en todo tipo de procesos y tareas que le gustaría automatizar. La sintaxis que te he mostrado junto con los Diccionarios de AppleScript te ayudará a llegar muy lejos. Sin embargo, si está realmente interesado en implementar AppleScript de varias maneras útiles, tiene más lectura que hacer. Apple proporciona mucha información sobre AppleScript en su sitio web. Aquí es un buen lugar para comenzar.
Otro sitio web que he recogido mucho es T&B. Ofrece algunas explicaciones y tutoriales muy profundos para que los sigas (un poco anticuados, pero completos y gratuitos). Por favor, siéntase bienvenido a dejar un comentario y háganos saber si encontró útil este tutorial. ¿Qué otros consejos de AppleScript te gustaría ver cubiertos en el futuro??