%20con%20AppleScript.png)
Estoy tratando de encontrar una manera de automatizar la presentación de un navegador web al frente (es decir, darle enfoque, hacerlo visible en la pantalla) en función de un evento que ocurre en una página web. Tengo control total sobre la página web, por lo que puedo hacer que haga lo que necesite para activar esto.
Necesito tener varias aplicaciones abiertas con una página web en segundo plano que esté monitoreando algunas cámaras de video. Cuando una cámara de video tiene movimiento, necesito que la ventana del navegador web esté al frente para que sea visible en lugar de cualquier aplicación que se esté utilizando.
Estaba pensando en algo similar a lo que este tipo intentaba hacer:¿Cómo llevar la aplicación al frente cada 15 minutos en Mac OS X Lion?
Estaba pensando en usar AppleScript para ejecutarlo en un bucle continuo, y una vez por segundo verificar la página abierta en Safari, buscar algún cambio y luego enviar el comando "activar" a Safari para traerlo al frente. ¿Es así como debo hacerlo o hay una manera mejor?
Respuesta1
Probablemente usaría launchd o cron en lugar de ejecutar el script como proceso en segundo plano.
Guarde un script como este en algún lugar del AppleScript Editor:
try tell application "Safari" tell document 1 where name starts with "Webcam" to do JavaScript "--" if result is "--" then activate end tell end
Guarde una lista de propiedades como esta
~/Library/LaunchAgents/com.superuser.443513.plist
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>com.superuser.443513</string> <key>ProgramArguments</key> <array> <string>osascript</string> <string>/Users/username/Library/Scripts/script.scpt</string> </array> <key>StartInterval</key> <integer>5</integer> <!-- every 5 seconds --> </dict> </plist>
launchctl load ~/Library/LaunchAgents/com.superuser.443513.plist
¿Podrías usar curl para verificar la condición? Puedes ejecutarlo cada dos minutos editando el crontab EDITOR=nano crontab -e
y agregando una línea como esta:
*/2 * * * * [[ -n "$(curl -L http://superuser.com/questions/443513 | grep automate)" ]] && open http://example.com