Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Computer Skills
  2. App Training

Flujos de trabajo Alfred para intermedios

by
Read Time:17 minsLanguages:

Spanish (Español) translation by Andrea J (you can also view the original English article)

¡Bienvenido! Ya que estás leyendo esto, debes haber disfrutado del tutorial para principiantes. ¡Bien! Ahora, profundicemos un poco más haciendo un flujo de trabajo que ayudará a administrar nuestra carpeta de descargas, así como un administrador de proyectos.

Descargas Tamer Workflow

Constantemente estoy cargando/descargando archivos desde y hacia la red y creando capturas de pantalla que van automáticamente a mi carpeta de Descargas. Consecuentemente, mi carpeta de Descargas se vuelve muy desordenada. Así es como lo controlo.

Creating Workflow: Downloads TamerCreating Workflow: Downloads TamerCreating Workflow: Downloads Tamer
Creación de flujo de trabajo: Descargas Tamer

Primero, crea una nueva etiqueta de flujo de trabajo que sea Downloads Tamer. La descripción está configurada como Un flujo de trabajo para trabajar con elementos de la carpeta Descargas, pero puedes hacerlo como quieras. El ID del paquete es com.customct.MTDownload.

El ID del paquete es muy importante y debe ser muy exclusivo del flujo de trabajo. Siempre utilizo la dirección de mi sitio y el nombre del flujo de trabajo para identificar de forma única el flujo de trabajo.

El autor puedes ser tú. El sitio web es tu sitio web, o nada.

Filtros de archivos

El bloque de Filtros de archivos es una unidad muy flexible y potente. Es un gran lugar para comenzar a trabajar con archivos en un flujo de trabajo. Por ejemplo, ofrece una forma sencilla de buscar archivos.

File Filter: First Page OptionsFile Filter: First Page OptionsFile Filter: First Page Options
Filtro de archivos: Opciones de primera página

Selecciona un bloque de Filtro de archivos y complétalo como se muestra arriba. Configura la palabra clave en mtdl:today, el título del marcador de posición en MT:archivos de descargas y el subtexto del marcador de posición en Cargando el problema de hoy….

Si solo quieres centrarte en un tipo de archivo, puedes arrastrar y soltar un archivo de ejemplo en el cuadro Tipos de archivo. La intención aquí es encontrar cualquier tipo de archivo en o alrededor de un día determinado. Por lo tanto, el cuadro Tipos de archivo no se utiliza en este ejemplo.

File Filter: Search Scope OptionsFile Filter: Search Scope OptionsFile Filter: Search Scope Options
Filtro de archivos: opciones de alcance de búsqueda

Al seleccionar Alcance de búsqueda, nos da la segunda página de opciones. Con Finder, arrastra el directorio Descargas desde Finder al área de Alcance de búsqueda. Esto le dice a Alfred que solo busque archivos en estos directorios. Dado que este flujo de trabajo solo está interesado en la carpeta Descargas, será suficiente.

File Filter: Advanced OptionsFile Filter: Advanced OptionsFile Filter: Advanced Options
Filtro de archivos: Opciones avanzadas

Seleccionar Avanzado nos dará las opciones Avanzadas. Aquí, configura el Rango de fechas en Hoy para que solo muestre los archivos creados hoy. Presiona Guardar y se completará la primera función de nuestro flujo de trabajo.

El área Campos proporciona una lista de campos en los que puedes buscar la información relevante. Esto realmente puede darle más poder a tu búsqueda para encontrar específicamente lo que se está buscando. Para cada campo, puedes configurar la marca de Palabras para buscar dentro de los límites de palabras. La marca de División dividirá cada palabra en parámetros separados que se buscarán individualmente.

La marca Precisión se utiliza para hacer que la búsqueda no comience con un comodín si la marca de Palabras está deshabilitada. En otras palabras, si la marca de Palabras no está configurada, la configuración de esta marca hará que la búsqueda siempre se base en el principio del texto y no en el medio. Si la marca de Palabras está activada, esta marca no tiene sentido.

Estas diferentes marcas pueden resultar confusas sobre cómo usarlas. Puedes configurar diferentes casos de prueba y ver cómo cada uno afecta sus resultados. Generalmente, siempre mantengo configuradas las marcas de Palabras y División.

Lo que ahora se creó es un explorador de archivos que solo mostrará los archivos en el directorio de descargas que se agregaron hoy. Ahora, para hacer algo con el archivo seleccionado.

Downloads Tamer: Adding Opening the FileDownloads Tamer: Adding Opening the FileDownloads Tamer: Adding Opening the File
Descargas Tamer: Agregar la apertura del archivo

En el menú +, selecciona el bloque Abrir archivo y adjúntalo al bloque Filtro de archivos. Ahora, cuando se ejecute el comando mtdl:today, aparecerá una lista de los archivos descargados hoy. Seleccionar uno hará que se abra en la aplicación preferida para ese tipo de archivo.

Downloads Tamer: Adding Preview – ScriptDownloads Tamer: Adding Preview – ScriptDownloads Tamer: Adding Preview – Script
Descargas Tamer: Agregar vista previa, Script

A veces, solo quieres revisar rápido al archivo. OS X lo tiene incorporado, pero ¿cómo usarlo? Ahí es donde los scripts de shell son útiles. Agrega un bloque Ejecutar script y conéctalo al bloque Filtro de archivos, al igual que el bloque Abrir archivo.

Configura el Idioma en /usr/bash. En el área de Script, escribe qlmanage -p “1” >& /dev/null &. Desmarca todas las opciones de Escaping para que no se cambie el nombre de tu archivo.

Observa la macro 1. Esta macro se expandirá a lo que se haya pasado a este bloque desde el bloque anterior. En este caso, será la ruta completa al archivo en el directorio de Descargas.

Lo que hará este bloque es reemplazar la cadena 1 con la ruta completa del archivo que seleccionaste y luego ejecutar el script como un script de shell bash.

Sugerencia: Todos los scripts se ejecutan directamente sin leer tus archivos de preferencias para el tipo de script. Por lo tanto, el archivo ".bashrc" no se cargará en un script bash, ni el archivo ".zshrc" en un script zsh. Solo la configuración del entorno simple por parte del sistema está en su lugar.

Si los comandos que utilizas necesitan que se configuren algunas variables de entorno, debes cargar manualmente el archivo de preferencias o agregar las variables de entorno a tu secuencia de comandos.

Alfred trabaja de esta manera para ejecutar los scripts más rápido. ¡Pero puede dificultar la escritura de guiones que funcionen la primera vez!

Downloads Tamer: Adding Control Key ModifierDownloads Tamer: Adding Control Key ModifierDownloads Tamer: Adding Control Key Modifier
Descargas Tamer: Agregar el modificador de tecla de control

Puedes conectar tantos bloques a un solo bloque como quieras. Pero, si ejecutas la macro ahora, abrirá el archivo en su aplicación predeterminada y en una vista previa rápida. Ese realmente no es el comportamiento necesario.

Downloads Tamer: Adding Preview OptionDownloads Tamer: Adding Preview OptionDownloads Tamer: Adding Preview Option
Descargas Tamer: Agregar la opción de vista previa

Para solucionar esto, haz doble clic en la línea que va al bloque Ejecutar script. Esto te permitirá configurar un Modificador de acción y un Subtexto modificador. Configúralos como se ve aquí. Lo que esto hace es permitirte cambiar la acción del bloque Filtro de archivos basado en una tecla modificadora. Ahora, si solo seleccionas un archivo, se abrirá en su aplicación predeterminada. Pero, si mantienes presionada la tecla Control mientras seleccionas un archivo, obtendrá una vista previa del archivo en su lugar.

Downloads Tamer: Previewing in AlfredDownloads Tamer: Previewing in AlfredDownloads Tamer: Previewing in Alfred
Descargas Tamer: Vista previa en Alfred

El flujo de trabajo ahora debería verse así. Puedes ver la etiqueta modificadora en la línea que va al bloque Ejecutar script. De esta manera, es fácil ver cómo desencadenar cada acción.

Downloads Tamer: Adding Delete to Trash - ScriptDownloads Tamer: Adding Delete to Trash - ScriptDownloads Tamer: Adding Delete to Trash - Script
Descargas Tamer: Agregar eliminar a la papelera, Script

Cuando se activa el flujo de trabajo, si mantienes presionada la tecla Control, el texto debajo del nombre del archivo se cambiará a Vista previa. Ahora usará el sistema de vista previa de OS X (Vista rápida) para mostrar el archivo.

Downloads Tamer: Adding Delete to TrashDownloads Tamer: Adding Delete to TrashDownloads Tamer: Adding Delete to Trash
Descargas Tamer: Agregar eliminar a la papelera

La siguiente función es eliminar el archivo. Una vez más, se puede utilizar un script bash para realizar esta tarea. Agrega un bloque Ejecutar secuencia de comandos. Recuerda desmarcar todas las opciones de Escaping y configurarlo para que ejecute un script bash.

Ahora para algunas decisiones de diseño. Simplemente puedes utilizar el comando rm -f para forzar la eliminación del archivo del directorio de descargas. Pero, nunca podrás deshacer esa decisión. Por lo tanto, sería mejor mover el archivo a la carpeta Papelera de OS X. Dado que no hay una línea de comando incorporada para eso, tendrás que descargar el trabajo de otra persona y hacer uso de él. Solo recuerda decirle a los demás que usen tu flujo de trabajo dónde obtener el programa. ¡Los programas gratuitos son geniales!

Por lo tanto, descarga el programa de línea de comandos trash y colócalo en tu ruta (/usr/local/bin sería bueno. El programa viene con un script de instalación, así.). Luego, completa el área de la secuencia de comandos con /usr/local/bin/trash “1”. Debería verse como la anterior captura de pantalla.

Downloads Tamer: Adding Delete to TrashDownloads Tamer: Adding Delete to TrashDownloads Tamer: Adding Delete to Trash
Descargas Tamer: Agregar eliminar a la papelera

Configura esa línea para usar la tecla modificadora de Función. Ahora, cuando selecciones un archivo con la tecla de Función presionada, ese archivo se moverá a la papelera. Si quieres recuperarlo, simplemente abre la carpeta de la papelera y dile que restaure el elemento.

Downloads Tamer: Adding Open in Alfred blockDownloads Tamer: Adding Open in Alfred blockDownloads Tamer: Adding Open in Alfred block
Descargas Tamer: Agregar Abrir en el bloque Alfred

Ahora, agrega un bloque Examinar en Alfred. Esto nos permitirá utilizar las acciones creadas por Alfred en los archivos de la carpeta. Cambia la conexión del bloque Examinar en Alfred a la tecla modificadora Mayús.

Sugerencia: Realmente no es necesario agregar un bloque Abrir en Finder. Esa es la acción predeterminada de la tecla Comando en el navegador Alfred.
Downloads Tamer: Alfred BrowserDownloads Tamer: Alfred BrowserDownloads Tamer: Alfred Browser
Descargas Tamer: Navegador Alfred

Este es el navegador Alfred. Como solo tengo un archivo allí en este momento, es el único que se muestra. Con ese archivo seleccionado, puedes presionar la tecla de flecha derecha, obtendrás una lista de acciones a realizar en ese archivo.

Downloads Tamer: Alfred Browser - File ActionsDownloads Tamer: Alfred Browser - File ActionsDownloads Tamer: Alfred Browser - File Actions
Descargas Tamer: navegador Alfred, Acciones de archivo

Con esta lista de acciones, puedes desplazarte para verlas todas o comenzar a escribir el nombre de la acción para reducir el tamaño de la lista hasta que encuentres la que quieres. Hay bastantes acciones de archivo predefinidas y muchos flujos de trabajo agregan sus propias acciones de archivo.

Supongamos que el software de captura de pantalla guarda las imágenes en la carpeta Descargas (la mayoría se guardan en el escritorio, pero no me gusta saturar mi escritorio. Por lo tanto, las guardo en mi carpeta de Descargas). Una acción de archivo Enviar al proyecto actual me ayudaría a limpiar estos archivos en mi carpeta Descargas.

Flujo de trabajo del administrador de proyectos

Un bloque de Acción de archivo permite la creación de nuevas acciones para realizar en un archivo o grupo de archivos seleccionados en el navegador Alfred. Dado que una acción de archivo Mover al proyecto actual está fuera del alcance de un Administrador de descargas, es necesario crear un nuevo flujo de trabajo para administrar nuestro proyecto.

Downloads Tamer: Project Manager WorkflowDownloads Tamer: Project Manager WorkflowDownloads Tamer: Project Manager Workflow
Descargas Tamer: flujo de trabajo del administrador de proyectos

Crea un nuevo flujo de trabajo y etiquétalo como Administrador de proyectos. La descripción se configura en Un flujo de trabajo para ayudar a administrar tus proyectos., pero puedes hacerlo como quieras.

El identificador del paquete es com.customct.MTProject. El identificador de agrupación es muy importante y debe ser muy único para el flujo de trabajo. Siempre uso la dirección de mi sitio en orden de búsqueda inversa (tomado de las convenciones de nomenclatura de DNS) y el nombre del flujo de trabajo para identificar de forma única el flujo de trabajo. El autor puedes ser tú. El sitio web es tu sitio web o nada.

Acciones de archivo

Ya que tenemos un flujo de trabajo para administrar nuestro proyecto, podemos usar un bloque de Acción de archivo para mover archivos al directorio de nuestro proyecto seleccionado.

Downloads Tamer: File Action - Move to Current ProjectDownloads Tamer: File Action - Move to Current ProjectDownloads Tamer: File Action - Move to Current Project
Descargas Tamer: Acción de archivo, Mover al proyecto actual

Crea un bloque de Acción de archivo con el nombre configurado en Mover al proyecto actual. Además, marca la opción para aceptar varios archivos. De esa manera, será posible seleccionar muchos archivos y hacer que la Acción de archivo funcione en todos ellos a la vez. Dado que se permite cualquier tipo de archivo, dejarás el área de Tipos en blanco.

Downloads Tamer: File Action - Move to Current Project - ScriptDownloads Tamer: File Action - Move to Current Project - ScriptDownloads Tamer: File Action - Move to Current Project - Script
Descargas Tamer: Acción de archivo, Mover al proyecto actual, Script

Para realizar el trabajo, debes utilizar un bloque Ejecutar script para realizar el trabajo muscular. Configura el Idioma en /bin/bash y desactiva todas las opciones de Escaping. Configura el script para:

El ~/projects/myproject debe cambiarse al directorio de tu proyecto actual. Este es el enfoque codificado de forma rígida que no se puede compartir demasiado, pero que se solucionará más adelante.

Con los dos bloques conectados de esta manera, puedes enviar cualquier archivo a nuestro directorio de proyecto actual. Pero, el bloque Acción de archivo está configurado para permitir que se envíen varios archivos. Cuando se seleccionan varios archivos en el navegador Alfred usando Option-Shift, Alfred enviará la lista de archivos a tu Acción de archivo en una lista separada por pestañas (se puede encontrar una descripción completa del uso del búfer de archivos en Soporte de Alfred).

Para solucionar este problema, se deben realizar más secuencias de comandos. Cambia el script a lo siguiente:

Tu bloque Ejecutar script ahora debería verse así:

Downloads Tamer: File Action - Move to Current Project - Script fixedDownloads Tamer: File Action - Move to Current Project - Script fixedDownloads Tamer: File Action - Move to Current Project - Script fixed
Descargas Tamer: Acción de archivo, Mover al proyecto actual, Script fijo

La función generate_list es una forma rápida de convertir la cadena separada por tabulaciones en una lista de valores para el bucle for. El bucle for… asignará cada elemento de la lista a la variable $filen y realizará el movimiento. Configuré el directorio del proyecto en una variable. El siguiente paso es completar la variable dinámicamente en lugar de codificar el valor.

Consejo: Observa el uso de comillas dobles alrededor de las variables en la instrucción mv. Esto asegura que tu ruta se seguirá correctamente incluso si hay espacios en los nombres de las rutas. Es muy importante recordar esto. Muchos scripts mueren a causa de este problema.

Scripting en Alfred

Para corregir el problema de codificar el directorio del proyecto, es necesario utilizar una forma de almacenar información. Alfred se encarga de esto permitiendo que los flujos de trabajo tengan dos áreas de almacenamiento de datos que se denominan datos y caché.

El directorio de almacenamiento de datos es para el almacenamiento de información a largo plazo. Depende del flujo de trabajo mantener la información actualizada y relevante.

El directorio de caché es para la información que es temporal. Los programas que borran las cachés de datos en tu sistema eliminarán automáticamente estos archivos.

En el futuro, Alfred creará y eliminará estos directorios automáticamente. Pero ahora mismo, depende del flujo de trabajo mantenerlos.

El directorio de datos se encuentra en ~/Library/Application Support/Alfred 2/Workflow Data/{BundleID}.

El directorio de caché se encuentra en ~/Library/Caches/com.runningwithcrayons.Alfred–2/Workflow Data/{BundleID}.

El {BundleID} es el ID de paquete que se le dio al flujo de trabajo cuando lo creaste. Dado que cada flujo de trabajo está representado en estos directorios, es muy importante que cada flujo de trabajo tenga un ID de paquete diferente.

Consejo: Recuerda: ~ es la forma de Unix de referirse a tu directorio de inicio.

Como puedes ver, estas estructuras de directorios ya tienen espacios en sus nombres. Es por eso que realmente necesitas cuidarlos adecuadamente cuando estás escribiendo scripts.

El bloque Ejecutar Script de Alfred permite utilizar directamente una variedad de lenguajes de programación. Por ejemplo, un script se puede escribir en bash, zsh, AppleScript (también conocido como osascript en la línea de comandos), PHP, Python, Pearl o Ruby. Indirectamente, puedes usar un script bash o zsh para ejecutar un script en algún otro lenguaje, como node.

La razón por la que Alfred solo enumera estos idiomas es porque son los únicos idiomas que vienen en la plataforma Mac OS X automáticamente. Cualquier otro idioma habría sido instalado por el usuario.

Además, Alfred solo llama al idioma desde la ubicación en la que se instaló originalmente. Si instalas otra versión de Ruby, tendrás que hacer referencia a ella directamente en un script de shell en lugar de usar el descriptor de script estándar de Ruby en un bloque Ejecutar script.

Si creas un flujo de trabajo que necesita algún otro lenguaje de programación instalado, asegúrate de que el usuario lo sepa en la descripción del flujo de trabajo. También se recomienda poner esa información en el área Readme del flujo de trabajo.

Para utilizar este conocimiento, debes cambiar el script a lo siguiente:

La sección en la parte superior es para definir nuestras diferentes ubicaciones de directorio de datos en constantes que se utilizarán en el script. Siempre es una buena práctica de programación poner elementos de valor constante en una constante para que los utilice tu script. Por lo tanto, si es necesario cambiarlo más tarde, será muy sencillo.

Downloads Tamer: Open workflow folder buttonDownloads Tamer: Open workflow folder buttonDownloads Tamer: Open workflow folder button
Descargas Tamer: Botón Abrir carpeta de flujo de trabajo

Luego, la función getBundleId usa un programa en OS X para leer el plist para el flujo de trabajo, info.plist, y recuperar esa identificación. El plist se encuentra en el directorio de flujos de trabajo. Cuando observes un bloque Ejecutar Script, notarás que en la parte inferior derecha de la ventana de secuencia de comandos hay un botón denominado Abrir carpeta de flujo de trabajo. Eso abrirá la carpeta para tu flujo de trabajo en Finder.

Si tu programa utiliza gráficos u otros scripts que nunca se modifican, esta es una excelente área para almacenarlos. Cuando compartes un flujo de trabajo, todo este directorio se comprime en el archivo de flujo de trabajo.

La función getDataDir simplemente utiliza las constantes definidas y el identificador de agrupación para crear la ubicación del directorio de datos. El directorio de caché no se utiliza en este ejemplo.

El bloque if se usa para crear nuestro directorio de datos y el archivo de datos usado para el almacenamiento del directorio del proyecto si aún no existen. Todos los scripts que escribas que utilicen estos directorios deben tener este tipo de codificación para funcionar correctamente. ¡No confíes en una palabra clave de inicialización, ya que es posible que el usuario no la utilice primero!

El siguiente cambio es cómo se define la variable projDir. Simplemente ingresa el contenido del archivo projectDir.txt en la variable. Por lo tanto, ese archivo debe tener una sola línea que contenga el directorio de nuestro proyecto.

Después de obtener el conjunto de variables projectDir, se debe verificar la validez de los datos. Si el usuario aún no ha configurado un directorio de proyecto, la variable debe estar en blanco. Por lo tanto, el script probará una variable en blanco. Si está en blanco, envía un mensaje de advertencia y sal.

Sugerencia: asegúrate siempre de que tus datos sean correctos. Esto evita muchos errores en tus flujos de trabajo y ayuda a otros a sentir que realmente entregaste un buen producto. Si olvidas esto, ¡puedes estar seguro de que volverá a molestarte hasta la muerte!
Downloads Tamer: Adding a Post Notification blocDownloads Tamer: Adding a Post Notification blocDownloads Tamer: Adding a Post Notification bloc
Descargas Tamer: Agregar un bloque de notificación posterior

Al final, el script le dice al usuario que los archivos se movieron. Siempre me gusta darle retroalimentación al usuario. Ayuda al usuario a sentir que se está haciendo algo. Por lo tanto, los mensajes deben mostrarse en un bloque de notificación posterior. Agrega uno al final del flujo de trabajo. Tu flujo de trabajo debe parecerse a la imagen de arriba.

Downloads Tamer: Setting the Project Directory: File FilterDownloads Tamer: Setting the Project Directory: File FilterDownloads Tamer: Setting the Project Directory: File Filter
Descargas Tamer: Configuración del directorio del proyecto: Filtro de archivos

Si el archivo projectDir.txt fue creado por el script, entonces no contendrá ninguna información. Por lo tanto, ¡es necesario crear una forma de configurar este archivo! La forma más sencilla es utilizar un bloque de Filtro de archivos establecido en directorios como en el primer tutorial. Agrega un bloque de Filtro de archivos y rellénalo como se ve.

Downloads Tamer: Setting the Project Directory: Run Script blockDownloads Tamer: Setting the Project Directory: Run Script blockDownloads Tamer: Setting the Project Directory: Run Script block
Descargas Tamer: Configuración del directorio del proyecto: Ejecutar bloque de Script

Ahora, agrega un bloque Ejecutar script con el siguiente script:

Observa que esta vez la macro 1 se usa dos veces. Puedes usarla las veces que quieras en los scripts.

El directorio pasado del bloque Filtro de archivos siempre será un directorio válido. Por lo tanto, no es necesario probarlo. Simplemente repítelo en el archivo de nuestro directorio de datos y estará seguro.

Downloads Tamer: Setting the Project Directory: Final SetupDownloads Tamer: Setting the Project Directory: Final SetupDownloads Tamer: Setting the Project Directory: Final Setup
Descargas Tamer: Configuración del directorio del proyecto: Configuración final

Cuando conectes el bloque Ejecutar script al bloque Publicar notificación, debería verse como la imagen de arriba. Ahora el directorio del proyecto se puede configurar y cambiar con facilidad.

Conclusión

Ahora tienes dos nuevos flujos de trabajo para ayudarte en tus rutinas diarias: uno para revisar tu carpeta de Descargas y otro para administrar tus proyectos. Intenta expandirlos con funciones más útiles. Por ejemplo, crea una acción de Filtro de archivo y Abrir archivo para editar los archivos de tu proyecto, o copia el código de eliminación de archivo del flujo de trabajo de Descargas Tamer para eliminar archivos de tu proyecto. ¡Nunca aprendes hasta que pruebas las cosas por tu cuenta!

El tutorial avanzado ampliará estos dos flujos de trabajo con secuencias de comandos aún más complejas y hará uso de otras bibliotecas para facilitar el trabajo con los flujos de trabajo de Alfred. ¡Diviértete escribiendo!

Actualización: Ahora está disponible un nuevo sitio de uso compartido de flujos de trabajo: Packal que promete tener un flujo de trabajo para trabajar con este sitio también.

Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.