2 votos

AppleScript: escritura compleja de acceso WIFI, conseguir tiempo y lanzamiento screensaver

Los expertos!

Soy nuevo en el script de apple y luchando con su complejidad...Pero tal vez alguien pueda ayudar. La cosa que yo quiero hacer mi iMac:

El iMac se utiliza para trabajar como un gama alta de presentación de diapositivas para un artista el trabajo. Es extremadamente importante que el iMac se pone la hora correcta para mostrar la presentación de diapositivas.

Así que lo que el iMac tiene que hacer:

  • el iMac se despierta cada mañana a las 8 AM y se pone a dormir a las 11 PM (hecho en forma de ahorro de energía)

  • iMac alterna Wifi encendido y apagado (ver script1 a continuación)

  • A partir de Safari (script 2)
  • iMac encuentra la correcta Wifi y registros en la (falta de)
  • Página de inicio de sesión de Wifi, se necesita un "haga clic en la casilla de verificación" para aceptar los términos de uso (SCRIPT 3 traté de adaptar un guión encontrado en la red, pero no realmente)
  • iMac de espera hasta que un tiempo dedicado (9 AM) y se lanza protector de pantalla. (Secuencia de COMANDOS 4 es el lanzamiento, pero se espera hasta específico de tiempo falta)

Cualquier ayuda y sugerencia sería muy apreciada!! Andreas

Lo que tengo:

--SCRIPT 1

set status to do shell script "networksetup -getairportpower en1"

if status ends with "On" then

    do shell script "networksetup -setairportpower en1 off; sleep 2"

end if


set status to do shell script "networksetup -getairportpower en1"

if status ends with "Off" then

    do shell script "networksetup -setairportpower en1 on"

end if

--SCRIPT 2

tell application "Safari" activate

end tell

--SCRIPT 3 hacer clic en la casilla para aceptar los términos de uso

to clickID(theId) 

    tell application "Safari"

        do JavaScript "document.getElementById('" & theId & "').click();" in document 1 

    end tell 

end clickID

--SCRIPT 4 es necesario para obtener el tiempo de espera y el lanzamiento de protector de pantalla

set ntpdPID to do shell script "pgrep ntpd; exit 0"

if ntpdPID is not "" then

    do shell script "systemsetup -setusingnetworktime On" with administrator privileges

end if

try

    tell application id "com.apple.Screensaver.engine" to launch

end try

1voto

Pirooz Puntos 486

WIP

Guión 1

repeat 2 times
    set status to do shell script "networksetup -getairportpower en0"
    if status ends with "On" then
        do shell script "networksetup -setairportpower en1 off"
        delay 2
    else
        do shell script "networksetup -setairportpower en1 on"
    end if
end repeat

Guión 2

tell application "Safari" to activate

Secuencia de comandos de 2.5

El uso de @CJK código para conectarse. A continuación, utilice la secuencia de Comandos de 3 a aceptar los términos y condiciones.


Script 3

  1. Safari > Preferencias > Avanzado > Mostrar el menú desarrollo en la barra de menú

  2. Desarrollar > Permitir JavaScript de Eventos de Apple

3.

tell application "Safari"
    activate
    make new document with properties {URL: "http://captive.apple.com"}
    if not (exists document 1) then reopen
    tell current tab of window 1 to set URL to "https://stackoverflow.com/questions/24500011/how-to-wait-for-webpage-to-fully-load-before-proceeding-script"
    set the_state to missing value
    repeat until the_state is "complete"
        set the_state to (do JavaScript "document.readyState" in document 1)
        delay 0.2
    end repeat
    set theId to "WillBeAddedOnceCodeIsAddedInQuestion"
    do JavaScript "document.getElementById('" & theId & "').click();" in document 1
end tell

Secuencia de comandos de 4

Si el script está trabajando, a continuación, haga lo siguiente:

Cron Método (Depreciado)

1.

export VISUAL=nano; crontab -e

2. Copia y pega el siguiente

0 9 * * * osascript /path/to/YourAppleScript.scpt

3. Pulse ^O (Control + O)

  1. Presione Entrar

Nota: Cron no se ejecutará si el equipo está dormido

launchd

  1. sudo nano /Library/LaunchDaemons/com.mycompany.plist

  2. Copia y pega el siguiente:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.mycompany.daemon</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/bin/osascript</string>
        <string>/path/to/YourAppleScript.scpt</string>
    </array>
    <key>StartCalendarInterval</key>
    <dict>
        <key>Hour</key>
        <integer>9</integer>
        <key>Minute</key>
        <integer>0</integer>
    </dict>
</dict>
</plist>
  1. Pulse ^O (Control + O)

  2. Presione Entrar

5.

 sudo launchctl load-w /Library/LaunchDaemons/com.mycompany.plist

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by: