fix: music downloads
This commit is contained in:
parent
01c65f54af
commit
d67ade06c8
|
@ -15,6 +15,6 @@
|
||||||
systemd.timers.get-music-timer = {
|
systemd.timers.get-music-timer = {
|
||||||
wantedBy = [ "timers.target" ];
|
wantedBy = [ "timers.target" ];
|
||||||
partOf = [ "get-music-sync.service" ];
|
partOf = [ "get-music-sync.service" ];
|
||||||
timerConfig.OnCalendar = [ "daily" ];
|
timerConfig.OnCalendar = [ "hourly" ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
55
hosts/profiles/sync/music/get-music.sh
Normal file → Executable file
55
hosts/profiles/sync/music/get-music.sh
Normal file → Executable file
|
@ -1,9 +1,52 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
rsync -r --ignore-existing --log-file=/data/incoming/download-log hypercube@talos.feralhosting.com:private/transmission/data/* /data/incoming
|
|
||||||
|
|
||||||
# you need to set defaults for beets
|
set -euo pipefail
|
||||||
# if already imported -> Skip
|
|
||||||
# Auto accept changes
|
REMOTE_HOST="anish@talos.feralhosting.com"
|
||||||
# also install it lmao
|
REMOTE_PATH="private/transmission/data/"
|
||||||
#beet import /data/incoming
|
LOCAL_PATH="/data/incoming"
|
||||||
|
TRACKING_FILE="/data/incoming/.downloaded_albums"
|
||||||
|
LOG_FILE="/data/incoming/download-log"
|
||||||
|
|
||||||
|
# Create tracking file if it doesn't exist
|
||||||
|
touch "$TRACKING_FILE"
|
||||||
|
|
||||||
|
# Get list of albums on remote server
|
||||||
|
echo "$(date): Checking for new albums on seedbox..." >> "$LOG_FILE"
|
||||||
|
REMOTE_ALBUMS=$(rsync --dry-run --list-only "$REMOTE_HOST:$REMOTE_PATH" | grep '^d' | awk '{print $5}' | grep -v '^\.') || true
|
||||||
|
|
||||||
|
if [ -z "$REMOTE_ALBUMS" ]; then
|
||||||
|
echo "$(date): No albums found on remote server" >> "$LOG_FILE"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Check each album against tracking file
|
||||||
|
NEW_ALBUMS=""
|
||||||
|
while IFS= read -r album; do
|
||||||
|
if [ -n "$album" ] && ! grep -q "^$album$" "$TRACKING_FILE"; then
|
||||||
|
NEW_ALBUMS="$NEW_ALBUMS$album\n"
|
||||||
|
echo "$(date): Found new album: $album" >> "$LOG_FILE"
|
||||||
|
fi
|
||||||
|
done <<< "$REMOTE_ALBUMS"
|
||||||
|
|
||||||
|
if [ -z "$NEW_ALBUMS" ]; then
|
||||||
|
echo "$(date): No new albums to download" >> "$LOG_FILE"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Download new albums only
|
||||||
|
echo "$(date): Starting download of new albums..." >> "$LOG_FILE"
|
||||||
|
while IFS= read -r album; do
|
||||||
|
if [ -n "$album" ]; then
|
||||||
|
echo "$(date): Downloading $album" >> "$LOG_FILE"
|
||||||
|
if rsync -r --log-file="$LOG_FILE" "$REMOTE_HOST:$REMOTE_PATH$album/" "$LOCAL_PATH/"; then
|
||||||
|
echo "$album" >> "$TRACKING_FILE"
|
||||||
|
echo "$(date): Successfully downloaded $album" >> "$LOG_FILE"
|
||||||
|
else
|
||||||
|
echo "$(date): Failed to download $album" >> "$LOG_FILE"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done <<< "$(echo -e "$NEW_ALBUMS")"
|
||||||
|
|
||||||
|
echo "$(date): Music sync completed" >> "$LOG_FILE"
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue