Script APOD - Diario de un Tecnopata

Script APOD

Script APOD

Pues bien, esta es una nueva y pequeña sección donde iré subiendo algún que otro script interesante de cara a un usuario medio que o pretenda trastear con su pc o que simplemente quiera darle cierto toque personal y único.

En este caso, os traigo un script un tanto curioso, bastante inútil en términos generales pero muy interesante si se quiere automatizar el cambio de fondo de escritorio de nuestro pc a diario.


Como bien pone en el título, este script tiene la peculiaridad de que saca las nuevas imágenes de la pagina web:


https://apod.nasa.gov/apod/astropix.html


Esta es la web donde la NASA sube a diario una nueva imagen astronómica, normalmente relacionada con algún tipo de acontecimiento o noticia astronómica actual.


Pues bien, nuestro script revisa con cada inicio de sesión si hay alguna foto nueva subida en la susodicha web, descargándola y usándola como fondo de pantalla. A continuación el script:


#!/bin/bash
# apod.sh

x="xd"
y="0"

while [ "$x" != "0" ] ; do
if [ "$y" = "5" ] ; then
exit
fi
sleep 1
let y=y+1
ping -c 1 apod.nasa.gov
x=$?
done

green="\033[32m"
white="\033[0m"
blue="\033[34m"

#Crea la carpeta apod.d en el mismo directiorio en que se encuentra apod.sh
path="$( cd "$(dirname "$0")" ; pwd -P )/apod.d"


mkdir -p $path

#Descargamos el index en apod.d
wget https://apod.nasa.gov/apod/ -P $path

#Sacamos el path de la imagen
img="$(grep -E 'a href="ima|A HREF="ima' $path/index.html | cut -d\" -f2)"

#Creamos un archivo en caso de que no lo hubiese, y si lo habia, sobrescribe el contenido con vacio
>> $path/ni.txt 

#sacamos el contenido del archivo en una variable y comparamos para saber si debemos descargar la imagen de nuevo o no.
img2="$(cat $path/ni.txt)"
if [ "$img2" = "$img" ] ; then
rm $path/index.html
exit
fi
rm $path/wallpaper.*
echo $img > $path/ni.txt
# sometimes the APOD is an iframe containing a video/flash/js element
# this condition should detect the absence of an image and use the previous APOD
if [[ -z "$img" ]]; then
  yesterday="https://apod.nasa.gov/apod/$(grep "&lt" $path/index.html | cut -d\" -f2)"
  echo -e "${blue}Using yesterday's image: $yesterday ${white}"
  wget $yesterday -O $path/index.html
  img="$(grep -E 'a href="ima|A HREF="ima' $path/index.html | cut -d\" -f2)"
fi

# deal with external images
if [[ $img =~ ^https?://.*$ ]]; then
  url=$img
else
  url="https://apod.nasa.gov/apod/$img"
fi

wget $url -O $path/wallpaper.*

rm $path/index.html

Para que este funcione como debería, se debe colocar en un directorio que no necesite permisos root y crear un archivo en profile.d que redirija hacia nuestro script. Tras esto, ejecutamos nuestro script (el cual se me a olvidado comentar que es .sh) y asignar como fondo de pantalla a la imagen descargada.


Tras esto, y sin eliminar ninguno de los archivos generados, cada día y si la NASA sube foto, tendremos un nuevo fondo de pantalla listo.


admin

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *