···11#!/usr/bin/env bash
22-rsync -r --ignore-existing --log-file=/data/incoming/download-log hypercube@talos.feralhosting.com:private/transmission/data/* /data/incoming
22+33+set -euo pipefail
44+55+REMOTE_HOST="anish@talos.feralhosting.com"
66+REMOTE_PATH="private/transmission/data/"
77+LOCAL_PATH="/data/incoming"
88+TRACKING_FILE="/data/incoming/.downloaded_albums"
99+LOG_FILE="/data/incoming/download-log"
1010+1111+# Create tracking file if it doesn't exist
1212+touch "$TRACKING_FILE"
1313+1414+# Get list of albums on remote server
1515+echo "$(date): Checking for new albums on seedbox..." >> "$LOG_FILE"
1616+REMOTE_ALBUMS=$(rsync --dry-run --list-only "$REMOTE_HOST:$REMOTE_PATH" | grep '^d' | awk '{print $5}' | grep -v '^\.') || true
1717+1818+if [ -z "$REMOTE_ALBUMS" ]; then
1919+ echo "$(date): No albums found on remote server" >> "$LOG_FILE"
2020+ exit 0
2121+fi
2222+2323+# Check each album against tracking file
2424+NEW_ALBUMS=""
2525+while IFS= read -r album; do
2626+ if [ -n "$album" ] && ! grep -q "^$album$" "$TRACKING_FILE"; then
2727+ NEW_ALBUMS="$NEW_ALBUMS$album\n"
2828+ echo "$(date): Found new album: $album" >> "$LOG_FILE"
2929+ fi
3030+done <<< "$REMOTE_ALBUMS"
3131+3232+if [ -z "$NEW_ALBUMS" ]; then
3333+ echo "$(date): No new albums to download" >> "$LOG_FILE"
3434+ exit 0
3535+fi
3636+3737+# Download new albums only
3838+echo "$(date): Starting download of new albums..." >> "$LOG_FILE"
3939+while IFS= read -r album; do
4040+ if [ -n "$album" ]; then
4141+ echo "$(date): Downloading $album" >> "$LOG_FILE"
4242+ if rsync -r --log-file="$LOG_FILE" "$REMOTE_HOST:$REMOTE_PATH$album/" "$LOCAL_PATH/"; then
4343+ echo "$album" >> "$TRACKING_FILE"
4444+ echo "$(date): Successfully downloaded $album" >> "$LOG_FILE"
4545+ else
4646+ echo "$(date): Failed to download $album" >> "$LOG_FILE"
4747+ fi
4848+ fi
4949+done <<< "$(echo -e "$NEW_ALBUMS")"
35044-# you need to set defaults for beets
55-# if already imported -> Skip
66-# Auto accept changes
77-# also install it lmao
88-#beet import /data/incoming
5151+echo "$(date): Music sync completed" >> "$LOG_FILE"
952