53 lines
1.9 KiB
Bash
53 lines
1.9 KiB
Bash
#!/bin/bash
|
|
## THIS SCRIPT WILL RUN PLEX SCANNER ONLY ON FOLDERS PREVIOUSLY GENERATED BY plexgeneratefolderlist.sh
|
|
|
|
if pidof -o %PPID -x "$0"; then
|
|
echo "$(date "+%d.%m.%Y %T") Exit, already running."
|
|
exit 1
|
|
fi
|
|
TIMESTAMP=`date +%Y-%m-%d_%H-%M-%S`
|
|
LOGFILE="/home/plex/logs/plexrefresh.cron.log"
|
|
UNIONFSPATH="/mnt/unionfs"
|
|
RCLONEREMOTE="acdcrypt:"
|
|
PLEXLIST="${UNIONFSPATH}/tmp/ "
|
|
CACHE="/home/plex/.cache/"
|
|
TVSECTION=1
|
|
MOVIESECTION=2
|
|
|
|
export LD_LIBRARY_PATH=/usr/lib/plexmediaserver
|
|
export PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR=/var/lib/plexmediaserver/Library/Application\ Support
|
|
|
|
# EXIT IF THERE ARE NO PLEX LIST FILES
|
|
if [[ -z $(find $PLEXLISTPATH -type f -iname "*.list" -mmin +1) ]];then
|
|
echo "Exit: No list available"
|
|
exit
|
|
fi
|
|
# FIND LISTS, MERGE INTO ONE FILE AND DELETE RLONE REMOTE
|
|
find $PLEXLISTPATH -type f -iname "*.list" -mmin +1 |
|
|
while read FILEPATH; do
|
|
cat $FILEPATH >> ${CACHE}$TIMESTAMP-plex.list
|
|
FILE=$(basename "${FILEPATH}")
|
|
/usr/bin/rclone delete ${RCLONEPATH2LIST}{$FILE}
|
|
done
|
|
|
|
# REMOVE DUPLICATE FOLDERS
|
|
sort $CACHE/$TIMESTAMP-plex.list | uniq | tee $CACHE/$TIMESTAMP-plex.list > /dev/null
|
|
|
|
# PLEX SCAN NEW FOLDERS
|
|
readarray -t FOLDERS < ${CACHE}$TIMESTAMP-plex.list
|
|
for FOLDER in "${FOLDERS[@]}"
|
|
do
|
|
if [[ $FOLDER == *"/movies/"* ]] ; then
|
|
echo "$(date "+%d.%m.%Y %T") Refreshing movie folder: $FOLDER" | tee -a "$LOGFILE"
|
|
${LD_LIBRARY_PATH}/Plex\ Media\ Scanner --scan --refresh --section $MOVIESECTION --directory "${FOLDER}" | tee -a "$LOGFILE"
|
|
fi
|
|
if [[ $FOLDER == *"/series/"* ]] ; then
|
|
echo "$(date "+%d.%m.%Y %T") Refreshing serie folder: $FOLDER" | tee -a "$LOGFILE"
|
|
${LD_LIBRARY_PATH}/Plex\ Media\ Scanner --scan --refresh --section $TVSECTION --directory "${FOLDER}" | tee -a "$LOGFILE"
|
|
fi
|
|
done
|
|
# ADD SUFFIX DONE TO THE FINISHED LIST
|
|
echo "$TIMESTAMP-plex.list.done" | tee -a "$LOGFILE"
|
|
mv ${CACHE}$TIMESTAMP-plex.list ${CACHE}$TIMESTAMP-plex.list.done
|
|
exit
|