Este artículo se publicó originalmente en mi blog personal
Situación: estás haciendo una tarea en un sitio de internet que hiciste ayer, anteayer y la semana pasada. Te genera incomodidad pero no la suficiente cómo automatizarla haciendo un script, mucho menos levantar un proyecto en Playwright o Cypress. Así que continuas perdiendo tiempo repitiendo la tarea.
Automa ofrece extensiones para Firefox y Chrome e hijos y su función es la de automatizar tareas del navegador. Desde tomar capturas de pantallas a rellenar formularios y scrapear información de cualquier sitio. Y todo de una manera visual minimalista y muy pulida simplemente uniendo componentes. Y con los cerca de 60 bloques que actualmente dispone se puede automatizar la mayoría de las tareas.
Mi primer tarea molesta que no quiero hacer más es limpiar las notificaciones de GitHub. Cuando uno está suscrito a muchos repos los mensajes se pueden acumular rápidamente y GitHub no tiene el mejor de los sistemas de organización en los casos que uno quisiera estar al tanto de la actividad del proyecto pero no hacer micromanagement. Entonces lo que normalmente hago es ver los mensajes de las PR y cuales se mergearon, si noto algo que me llame la atención veo el detalle. Bien, el problema es que cuando son muchas las notificaciones ocupan varias paginaciones. Entonces hay que marcar todas, click en Done, ir a la siguiente página y volver a hacer lo mismo... Automa al rescate
Con sólo conectar 3 clicks y la apertura / cerrado de una tab es suficiente para lograrlo y mejorar la experiencia en GitHub.
Me gusta escuchar soundtracks de videojuegos y el sitio khinsider.com tiene una colección interesante para bajar. Uno puede ver todas las canciones en el listado y haciendo click en cada una de las canciones va a la página donde está el link de descarga. La estructura del HTML es la siguiente:
Ahora vamos a ver el workflow de Automa:
Lo poderoso de Automa es que uno puede utilizar tablas y variables para mover datos entre bloques, logrando así realizar casi cualquier tarea. La explicación del workflow es el siguiente:
href
de los elementos .playlistDownloadSong a
y los almaceno en una tabla. Ya tengo toda la lista de links de canciones.#audio
y asigno el valor del atributo src
a la variable $$songURL
(así se setean las variables){{variables.$$songURL}}
en vez de directamente $$songURL cómo dice la documentación.XorxEs
para cerrar la iteración. Básicamente el GOTO
de toda la vida.¿Cuanto puedo haber tardado en hacer esto? Una vez que conoces cómo funcionan los bloques, no más de 5 minutos.
Esta extensión así cómo está tiene algunos bugs pero en general funciona bastante bien. La documentación está bastante bien pero en el apartado de variables quedó desactualizada, estuve un buen rato para poder entender y acceder a las variables. El potencial de automatización que tiene es enorme ya que además de todo el control que dispone también tiene un bloque para realizar HTTP requests, por lo que no debería ser difícil integrarlo con PushBullet o IFTTT.