2 votes

Comment récupérer automatiquement les images d'un site web et mettre à jour l'image du bureau pour qu'elle corresponde (dans le terminal) ?

Je suis astronome, et je consulte constamment (lire : plusieurs fois par jour) le même site web pour voir la carte du ciel clair de mon observatoire. Plus précisément, la carte qui se trouve sur cette page web :

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

Ce serait incroyablement pratique si je pouvais définir automatiquement cette image comme le bureau de mon ordinateur portable. Je sais que je pourrais le faire manuellement chaque matin, mais c'est un peu compliqué (et ce n'est pas aussi ringard).

Malheureusement, je ne suis pas aussi versé dans le C et la ligne de commande que je devrais l'être. Existe-t-il un moyen de modifier mon profil bash pour télécharger automatiquement une image à partir d'un site web et ensuite définir cette image comme mon bureau, disons à minuit tous les 2 jours ? En dehors des problèmes évidents de résolution d'image et de connexion Internet. Une tâche comme celle-ci est bien en dehors de mes compétences.

Même si ce n'est pas possible/pratique, je serais intéressé de savoir pourquoi, par simple curiosité.

Si cela a de l'importance, j'utilise la version 10.13.1 High Sierra sur un MacBook Pro.

0voto

Douglas Points 10417

Vous avez plusieurs possibilités pour résoudre ce problème : AppleScript et un Bash (Terminal) script. Puisque cela doit se produire une fois par jour (c'est-à-dire programmé ) et vous voulez garantie pour que le fichier soit téléchargé au moment où vous vous connectez afin qu'il soit là au démarrage, puis une nouvelle fois chaque nuit à minuit, je ferais cela en Bash.

Créer le script

Le script va faire deux choses :

  • Télécharger l'image
  • Définir comme image de fond

Le script est assez simple. Il prend deux arguments - l'URL et l'emplacement où enregistrer le fichier. Il va ensuite le télécharger à cet emplacement de dossier :

#!/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

Sauvegardez-le dans un endroit pratique ; donnez-lui un nom évident comme getSkyForecast.sh . Assurez-vous de rendre le script exécutable - chmod +x getSkyForecast.sh Si vous ne le faites pas, le script ne s'exécutera pas.

Programmer le script

L'opération suivante est un peu plus complexe, car elle sera exécutée à la connexion et toutes les 24 heures.

Ensuite, le script doit être lancé avec launchd . Pour ce faire, vous avez besoin d'un plist (fichier XML qui décrit la fonction)

<?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>

Enregistrez ce fichier sous com.user.SkyForecast et le copier dans le ~/Library/LaunchAgents répertoire.

Chargez-la avec la commande :

launchctl load com.user.SkyForecast

Définir l'image de fond

La chose la plus simple à faire est d'aller dans les préférences système et de définir l'image d'arrière-plan à ce fichier (exécutez d'abord manuellement le script pour qu'il crée le fichier). Lorsque le script s'exécutera, il changera le fichier, pas le nom, de sorte que l'image du bureau changera automatiquement.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X