idk some stuff, mostly 25.11 and opencode stuff
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
REMOTE_HOST="aynish@talos.feralhosting.com"
|
||||
REMOTE_PATH="private/transmission/data/tv-sonarr/"
|
||||
LOCAL_PATH="/tank/media/tv"
|
||||
TRACKING_FILE="/tank/media/tv/.downloaded_shows"
|
||||
LOG_FILE="/tank/media/tv/download-log"
|
||||
|
||||
# Create local directory and tracking file if they don't exist
|
||||
mkdir -p "$LOCAL_PATH"
|
||||
touch "$TRACKING_FILE"
|
||||
|
||||
# Get list of shows on remote server
|
||||
echo "$(date): Checking for new TV shows on seedbox..." >>"$LOG_FILE"
|
||||
REMOTE_SHOWS=$(rsync --dry-run --list-only "$REMOTE_HOST:$REMOTE_PATH" | grep '^d' | awk '{$1=$2=$3=$4=""; sub(/^ +/, ""); print}' | grep -v '^\.') || true
|
||||
|
||||
if [ -z "$REMOTE_SHOWS" ]; then
|
||||
echo "$(date): No shows found on remote server" >>"$LOG_FILE"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Check each show against tracking file
|
||||
NEW_SHOWS=""
|
||||
while IFS= read -r show; do
|
||||
if [ -n "$show" ] && ! grep -qF "$show" "$TRACKING_FILE"; then
|
||||
NEW_SHOWS="$NEW_SHOWS$show\n"
|
||||
echo "$(date): Found new show: $show" >>"$LOG_FILE"
|
||||
fi
|
||||
done <<<"$REMOTE_SHOWS"
|
||||
|
||||
if [ -z "$NEW_SHOWS" ]; then
|
||||
echo "$(date): No new shows to download" >>"$LOG_FILE"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Download new shows only
|
||||
echo "$(date): Starting download of new shows..." >>"$LOG_FILE"
|
||||
while IFS= read -r show; do
|
||||
if [ -n "$show" ]; then
|
||||
echo "$(date): Downloading $show" >>"$LOG_FILE"
|
||||
# Set umask to allow group read/write access for Jellyfin
|
||||
umask 002
|
||||
if rsync -r --log-file="$LOG_FILE" "$REMOTE_HOST:$REMOTE_PATH$show/" "$LOCAL_PATH/$show/"; then
|
||||
echo "$show" >>"$TRACKING_FILE"
|
||||
echo "$(date): Successfully downloaded $show" >>"$LOG_FILE"
|
||||
else
|
||||
echo "$(date): Failed to download $show" >>"$LOG_FILE"
|
||||
fi
|
||||
fi
|
||||
done <<<"$(echo -e "$NEW_SHOWS")"
|
||||
|
||||
# Trigger Jellyfin library scan
|
||||
echo "$(date): Triggering Jellyfin library refresh..." >>"$LOG_FILE"
|
||||
if curl -s -X POST "http://localhost:8096/Library/Refresh" \
|
||||
-H "X-Emby-Token: aef1b1e0cd5445dc97b755ef8c6224e5"; then
|
||||
echo "$(date): Jellyfin library refresh triggered" >>"$LOG_FILE"
|
||||
else
|
||||
echo "$(date): Failed to trigger Jellyfin library refresh" >>"$LOG_FILE"
|
||||
fi
|
||||
|
||||
echo "$(date): TV sync completed" >>"$LOG_FILE"
|
||||
Reference in New Issue
Block a user