plex-tools/untested scripts/plexgeneratefolderlist.sh
deathbybandaid a0de5d88a2 test
2024-02-21 11:19:26 -05:00

56 lines
2.6 KiB
Bash

#!/bin/bash
## THIS SCRIPT WILL GENERATE FOLDER LIST BEFORE UPLOADING WITH RCLONE.
## THE SECOND SCRIPT PLEXREFRESHFOLDERS WILL RUN PLEX SCANNER ONLY ON GENERATED FOLDERS.
## FOLDER LIST WILL HAVE LOCAL PATH REPLACED WITH UNIONFS ONES
# EXIT IF SCRIPT IF ALREADY RUNNING
if pidof -o %PPID -x "$0"; then
echo "$(date "+%d.%m.%Y %T") Already running, exiting."
exit 1
fi
TIMESTAMP=`date +%Y-%m-%d_%H-%M-%S`
LOGFILE="/home/plex/logs/local2acdcrypt.cron.log"
MOVIES="/storage/local/movies"
SERIES="/storage/local/series"
LOCALPATH="/storage/local/"
UNIONFSPATH="/mnt/unionfs/"
RCLONEREMOTE="acdcrypt:"
MINFOLDERAGE="15" # MINIMUM FOLDER AGE IN MINUTES. SCRIPT WILL ONLY STARTED WHEN THERE IS A MATCH
readarray -t MOVIEFOLDERS < <(find "$MOVIES" -mindepth 1 -type d -mmin +$MINFOLDERAGE -not -iname '*.partial*')
readarray -t SERIESFOLDERS < <(find "$SERIES" -mindepth 2 -type d -mmin +$MINFOLDERAGE -not -iname '*.partial*')
readarray -t UPLOAD < <(find "$LOCALPATH" -mindepth 1 -type f -mmin +$MINFOLDERAGE -not -path '*/\.*' -not -iname '*.partial*')
if [[ -n $UPLOAD ]]; then
start=$(date +'%s')
echo "$(date "+%d.%m.%Y %T") START" | tee -a "$LOGFILE"
# RCLONE MOVE FILES ( CHANGE TO YOUR PATHS )
/usr/bin/rclone move $LOCALPATH $RCLONEREMOTE -v --no-traverse --transfers=20 --checkers=20 --delete-after --min-age ${MINFOLDERAGE}m --stats 30s --log-file=$LOGFILE
#GENERATE AND UPLOAD PLEX.LIST
for mfolder in "${MOVIEFOLDERS[@]}"
do
if [[ $mfolder == *"/movies/"* ]] ; then # Change /movies/ to match your path
MREFRESHFOLDER="${mfolder/$LOCALPATH/$UNIONFSPATH}" # Change path from /storage/local/ to /mnt/unionfs
echo "Adding to plex.list: $MREFRESHFOLDER" | tee -a "$LOGFILE"
echo "$MREFRESHFOLDER" >>/home/plex/.cache/$TIMESTAMP-plex.list
fi
done
for sfolder in "${SERIESFOLDERS[@]}"
do
if [[ $sfolder == *"/series/"* ]] ; then # Change /series/ to match your path
SREFRESHFOLDER="${sfolder/$LOCALPATH/$UNIONFSPATH}" # Change path from /storage/local/ to /mnt/unionfs
echo "Adding to plex.list: $SREFRESHFOLDER" | tee -a "$LOGFILE"
echo "$SREFRESHFOLDER" >>/home/plex/.cache/$TIMESTAMP-plex.list
fi
done
if [[ -f /home/plex/.cache/$TIMESTAMP-plex.list ]]; then
echo "Uploading: $TIMESTAMP-plex.list" | tee -a "$LOGFILE"
/usr/bin/rclone move /home/plex/.cache/$TIMESTAMP-plex.list $RCLONEREMOTE/tmp/ -v --no-traverse --log-file=$LOGFILE #Change acdcrypt: to match your remote
fi
echo "$(date "+%d.%m.%Y %T") ENDED in $(($(date +'%s') - $start)) seconds" | tee -a "$LOGFILE"
fi
exit