2 votos

¿Cómo obtener automáticamente imágenes de un sitio web y actualizar la imagen del escritorio para que coincida (en el terminal)?

Soy astrónomo, y constantemente (léase: varias veces al día) consulto la misma página web para ver la carta de cielos despejados de mi observatorio. En concreto, la carta que se encuentra en esta página web:

http://www.cleardarksky.com/c/YerkesObILkey.html

Sería increíblemente útil si pudiera configurar automáticamente esta imagen para que sea el escritorio de mi portátil. Sé que podría configurarlo manualmente cada mañana, pero eso es una molestia (y no es tan nerd).

Lamentablemente, no estoy tan versado en C y en la línea de comandos como quizás debería. ¿Hay alguna manera de modificar mi perfil de bash para descargar automáticamente una imagen de un sitio web y luego establecer esa imagen como mi escritorio, digamos, a la medianoche cada 2 días? Salvo problemas obvios de resolución de la imagen y conexión a Internet. Una tarea como esta está fuera de mi alcance.

Incluso si esto no es posible/práctico, me interesaría saber por qué no, sólo por curiosidad.

Si importa, estoy ejecutando 10.13.1 High Sierra en un MacBook Pro.

0 votos

No es una respuesta directa a tu pregunta, pero usando esto: support.apple.com/kb/PH25525?locale=es_ES&viewlocale=es_ES y la creación de un clip web de la imagen en el tablero de mandos también podría ser útil.

0voto

Douglas Puntos 10417

Tienes un par de opciones para abordar esto: AppleScript y un Bash (Terminal) script. Dado que esto tiene que ocurrir una vez al día (es decir programado ) y quiere garantía que el archivo se descargue en el momento en que se inicie la sesión para que esté allí cuando se inicie y luego una vez más cada noche a medianoche, yo haría esto en Bash.

Crear el script

El script va a hacer dos cosas:

  • Descargar la imagen
  • Establecer como imagen de fondo

El script es bastante sencillo. Toma dos argumentos: la URL y la ubicación para guardar el archivo. Luego lo descargará en esa ubicación de la carpeta:

#!/bin/bash
#Bash Script to Download Forecast and Set as desktop background

#User Defined VARs below:

#URL to fetch image 
url="http://www.cleardarksky.com/c/YerkesObILcsk.gif?c=2239204"

#Picture file Location
picFile="/Users/Thomas/Pictures/test.gif"

#Command to retrieve picture and save to defined location
curl -o "${picFile}" "$url"

exit

Guárdelo en un lugar conveniente; póngale un nombre obvio como getSkyForecast.sh . Asegúrese de que el script sea ejecutable - chmod +x getSkyForecast.sh Si no lo haces, el script no se ejecutará.

Programar el script

Lo siguiente es un poco más complejo, porque se ejecutará al iniciar la sesión y cada 24 horas.

A continuación, el script debe iniciarse con launchd . Para ello, se necesita un plist (archivo XML que describe el trabajo)

<?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.user.getSkyForecast</string>
  <key>ProgramArguments</key>
  <array>
      <string>/Users/USERNAME/Path_to_Scripts/getSkyForecast.sh</string>
  <key>RunAtLoad</key> 
  <true/>
  </array>
  <key>StartCalendarInterval</key>
  <array>
  <dict>
    <key>Hour</key>
    <integer>00</integer>
    <key>Minute</key>
    <integer>00</integer>
  </dict>
</dict>
</plist>

Guarde este archivo como com.user.SkyForecast y copiarlo en el ~/Library/LaunchAgents directorio.

Cárgalo con el comando:

launchctl load com.user.SkyForecast

Establecer la imagen de fondo

Lo más fácil es ir a Preferencias del Sistema y establecer la imagen de fondo en este archivo (ejecute el script manualmente primero para que cree el archivo). Cuando el script se ejecute, cambiará el archivo, no el nombre para que la imagen del escritorio cambie automáticamente.

0 votos

Sólo mi estilo de programación.

0 votos

Afirmas que "El script va a hacer dos cosas:" la primera es "Descargar la imagen" lo cual hace, sin embargo la segunda cosa "Establecer como imagen de fondo" y no hay ningún código en el script que haga eso programáticamente. Dicho esto, has añadido un párrafo después del hecho "Establecer la imagen de fondo" en el que dices "... Cuando el script se ejecute, cambiará el archivo, no el nombre para que la imagen del escritorio cambie automáticamente.", bueno ¿has probado realmente esto? En mi prueba, mientras el archivo se sobrescribe no cambia el fondo real mostrado porque la imagen original se almacena en caché.

0 votos

Es necesario codificarla para que después de que se descargue el archivo se establezca realmente mediante programación o una vez que se sobrescriba, utilizando killall Dock forzará una actualización. Mi preferencia sería establecerlo mediante programación y no utilizar killall Dock .

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:

X