Files
fluffy-pancake/scripts/bing-wallpaper.sh
T
2026-09-30 21:45:22 +02:00

35 lines
1.6 KiB
Bash

#!/usr/bin/env bash
# bing-wallpaper: Tages-Wallpaper von Bing laden und direkt setzen.
# Quelle: HPImageArchive-API (inoffiziell, aber seit Jahren stabil),
# Markt de-DE, UHD-Aufloesung. Lizenz: nur zur privaten Nutzung als
# Hintergrund (keine Redistribution - es wird nur heruntergeladen).
# Ablage: ~/Bilder/Bing/bing-YYYY-MM-DD.jpg, Retention 7 Tage.
# Setzen via Noctalia-IPC (persistiert + triggert Theme-Resolve neu).
# Laeuft die Shell gerade nicht, bleibt die Datei fuer spaeter liegen.
set -euo pipefail
API="https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=de-DE"
OUTDIR="${HOME}/Bilder/Bing"
[[ -d "${HOME}/Bilder" ]] || OUTDIR="${HOME}/Pictures/Bing"
mkdir -p "${OUTDIR}"
TODAY="$(date +%F)"
TARGET="${OUTDIR}/bing-${TODAY}.jpg"
if [[ ! -s "${TARGET}" ]]; then
JSON="$(curl -fsSL --retry 3 --retry-delay 5 "${API}")"
URLBASE="$(printf '%s' "${JSON}" | jq -r '.images[0].urlbase // empty')"
[[ -n "${URLBASE}" ]] || { echo "Bing-Antwort ohne urlbase"; exit 1; }
curl -fsSL --retry 3 --retry-delay 5 -o "${TARGET}" "https://www.bing.com${URLBASE}_UHD.jpg"
echo "Geladen: ${TARGET}"
else
echo "Bereits vorhanden: ${TARGET}"
fi
# Alte behalten wir 7 Tage (Rotation via Noctalia-Automation moeglich)
ls -t "${OUTDIR}"/bing-*.jpg 2>/dev/null | tail -n +8 | xargs -r rm -f --
echo "Bereinigt, behalten: $(ls "${OUTDIR}"/bing-*.jpg 2>/dev/null | wc -l)"
# Direkt setzen (schlaegt fehl ohne laufende Shell -> Datei bleibt liegen)
noctalia msg wallpaper-set "${TARGET}" && echo "Gesetzt: ${TARGET}" || echo "Noctalia laeuft nicht - Datei liegt bereit"