denpa-radio/scripts/restore-album-covers.sh

45 lines
1.9 KiB
Bash
Executable file

#!/usr/bin/env bash
# one-time: extract cover.jpg from each album archive in
# ~/Downloads/Telegram\ Desktop and upload to summer storage box.
# safe to re-run; skips albums whose cover already exists on summer.
set -euo pipefail
SRC="${SRC:-/c/Users/user/Downloads/Telegram Desktop}"
SSH_KEY="${SSH_KEY:-$HOME/.ssh/keys/devilreef}"
SSH_OPTS=(-o IdentityAgent=none -o IdentitiesOnly=yes -i "$SSH_KEY")
REMOTE_LIB="/mnt/trashbox/denpa-radio/library/minecraft/tracks"
declare -A MAP=(
["C418 - Minecraft - Volume Alpha.tar.gz"]="Volume Alpha"
["C418 - Minecraft - Volume Beta.tar.gz"]="Volume Beta"
["Lena_Raine,_Minecraft_Minecraft_Caves_Cliffs_Original_Game.gz"]="Caves & Cliffs"
["Minecraft - Minecraft_ Pixel Drift.tar.gz"]="Pixel Drift"
["Peter_Hont,_Minecraft_Minecraft_Dungeons_Original_Game_Soundt.gz"]="Minecraft Dungeons"
["Peter_Hont,_Minecraft_Minecraft_Dungeons_Creeping_Winter_Ori.gz"]="Minecraft Dungeons - Creeping Winter"
["Peter_Hont,_Minecraft_Minecraft_Dungeons_Echoing_Void_Origin.gz"]="Minecraft Dungeons - Echoing Void"
["Peter_Hont,_Minecraft_Minecraft_Dungeons_Howling_Peaks_Origi.gz"]="Minecraft Dungeons - Howling Peaks"
["Peter_Hont,_Minecraft_Minecraft_Dungeons_Jungle_Awakens_Orig.gz"]="Minecraft Dungeons - Jungle Awakens"
["Peter_Hont,_Samuel_berg,_Minecraft_Minecraft_Dungeons_Ultima.gz"]="Minecraft Dungeons - Ultimate Additions"
)
tmp=$(mktemp -d)
trap 'rm -rf "$tmp"' EXIT
for archive in "${!MAP[@]}"; do
album="${MAP[$archive]}"
remote_path="$REMOTE_LIB/$album/cover.jpg"
if ssh "${SSH_OPTS[@]}" summer "test -f \"$remote_path\""; then
echo "skip: $album (cover exists)"
continue
fi
echo "extract: $archive$album"
tar -xzf "$SRC/$archive" -C "$tmp" cover.jpg
echo "upload: $album"
ssh "${SSH_OPTS[@]}" summer "mkdir -p \"$REMOTE_LIB/$album\" && cat > \"$remote_path\"" < "$tmp/cover.jpg"
rm "$tmp/cover.jpg"
done
echo "done"
ssh "${SSH_OPTS[@]}" summer "ls \"$REMOTE_LIB\"/*/cover.jpg"