This commit is contained in:
deathbybandaid 2023-03-14 13:15:27 -04:00
parent aef25ea243
commit 13472f1e6a
4 changed files with 38 additions and 56 deletions

View File

@ -1,2 +1,7 @@
# plex-tools
Credits:
ChuckPa: for the database management utility, as well as a function for easily getting host information
jlim0930: for token reading from Preferences.xml and some logic for cleaning up libraries and refreshing metadata
Werner Beroux: For getting token from api

56
plex-do
View File

@ -1,56 +0,0 @@
#!/bin/sh
# automatic maintenance of PLEX
# will, optimize the database, Update the library, and empty the trash
# all the commands will work via curl over localhost
# please make sure that jq is installed
# check to see if I'm root
# you can run this script as non root use as long as its ran as the same user that plex runs so that its able to read the Preferences.xml file
#if ! [ $(id -u) = 0 ]; then
# echo "Please run as root user"
# exit 1
#fi
# configs
PREF="/var/lib/plexmediaserver/Library/Application Support/Plex Media Server/Preferences.xml"
# get token
TOKEN=`cat "${PREF}" | sed -e 's;^.* PlexOnlineToken=";;' | sed -e 's;".*$;;' | tail -1`
# print token for troubleshooting
# uncomment to put your token in the logs if you want to know what it is.
logger "[DEBUG PLEX] TOKEN: $TOKEN"
echo "[DEBUG PLEX] TOKEN: $TOKEN"
# optimize database
logger "[DEBUG PLEX] optimizing library"
echo "[DEBUG PLEX] optimizing library"
## curl -X PUT -H "X-Plex-Token: ${TOKEN}" http://127.0.0.1:32400/library/optimize\?async=1&X-Plex-Token=${TOKEN}
curl -X PUT http://127.0.0.1:32400/library/optimize\?async=1\&X-Plex-Token=${TOKEN}
# adding 120 sec sleep for things to settle
sleep 120
# run a loop against each library
for i in `curl -s -H "Accept: application/json" -H "X-Plex-Token: ${TOKEN}" http://127.0.0.1:32400/library/sections | jq -M -r '.MediaContainer.Directory[] | "\(.key)"'`
do
logger "[DEBUG PLEX] Running Update for key: ${i}"
echo "[DEBUG PLEX] Running Update for key: ${i}"
# OLD way
# curl -X PUT -H "X-Plex-Token: ${TOKEN}" http://127.0.0.1:32400/library/sections/${i}/refresh\?force=1&X-Plex-Token=${TOKEN}
# NEW way
curl -X PUT http://127.0.0.1:32400/library/sections/${i}/refresh\?force=1\&X-Plex-Token=${TOKEN}
# adding 30 sec sleep
sleep 30
# curl -X PUT -H "X-Plex-Token: ${TOKEN}" http://127.0.0.1:32400/library/sections/${i}/emptyTrash?X-Plex-Token=${TOKEN}
logger "[DEBUG PLEX] Emptying Trash for key: ${i}"
echo "[DEBUG PLEX] Emptying Trash for key: ${i}"
curl -X PUT http://127.0.0.1:32400/library/sections/${i}/emptyTrash\?X-Plex-Token=${TOKEN}
done
# clean PhotoTranscoder Cache
logger "[DEBUG PLEX] Deleting PhotoTranscoder Cache"
echo "[DEBUG PLEX] Deleting PhotoTranscoder Cache"
CACHEPATH="/opt/plex/Library/Application Support/Plex Media Server/Cache/PhotoTranscoder"
find "${CACHEPATH}" -type f -delete

29
plex-freshen Normal file
View File

@ -0,0 +1,29 @@
#!/bin/sh
# get plex token
source ./plex-token.sh
# run a loop against each library
for medialibrary in `curl -s -H "Accept: application/json" -H "X-Plex-Token: ${TOKEN}" http://127.0.0.1:32400/library/sections`
do
library_number=$(medialibrary | jq -M -r '.MediaContainer.Directory[] | "\(.key)"')
library_name=$(medialibrary | jq -M -r '.MediaContainer.Directory[] | "\(.title)"')
echo "$library_name"
echo "$library_number"
#echo "[DEBUG PLEX] Running Library Update for key: ${library_number}"
#curl -X PUT http://127.0.0.1:32400/library/sections/${library_number}/refresh\?force=1\&X-Plex-Token=${TOKEN}
# adding 30 sec sleep
#sleep 30
#echo "[DEBUG PLEX] Emptying Trash for key: ${library_number}"
#curl -X PUT http://127.0.0.1:32400/library/sections/${library_number}/emptyTrash\?X-Plex-Token=${TOKEN}
done
# clean PhotoTranscoder Cache
#echo "[DEBUG PLEX] Deleting PhotoTranscoder Cache"
#CACHEPATH="$AppSuppDir/Plex Media Server/Cache/PhotoTranscoder"
#find "${CACHEPATH}" -type f -delete

View File

@ -4,7 +4,11 @@ echo "Welcome to plex-tools wrapper utility!"
case "$1" in
token) source ./plex-token.sh;;
freshen) source ./plex-freshen.sh;;
dbrepair) source ./DBRepair.sh stop auto start exit;;
start) source ./DBRepair.sh start exit;;
stop) source ./DBRepair.sh stop exit;;
restart) source ./DBRepair.sh stop start exit;;
"") echo "No plex-tools command given";;
*) echo "'$1' is not a valid plex-tools command";;
esac