163 lines
5.3 KiB
Bash

#!/bin/bash
## Farben für das Log
red='\033[0;31m'
green='\033[0;32m'
white='\033[0;37m'
yellow='\033[0;33m'
purple='\033[0;35m' # ${purple}
log="$1"
config="$2"
count=$(($3 + 1))
# shellcheck disable=SC1090
source "$config"
if [[ -z $language ]]; then
language=$(locale | head -n 1 | sed 's/.*=\|\..*//g')
fi
if [[ $language == "C" ]] || [[ ! -d $language_Folder/$language ]]; then
language=en_US
fi
text_lang() {
if [ -f "$language_Folder"/"$language"/rename.lang ]; then
grep "$1" "$language_Folder"/"$language"/rename.lang | sed 's/^....//'
else
curl -s https://raw.githubusercontent.com/Pakobbix/JDownloader-Autoenc-rename/main/lang/en_US/rename.lang | grep "$1" | sed 's/^....//'
fi
}
log_msg() {
echo -e "${yellow}$(date +"%d.%m.%y %T")${white} $1${white}" >>"${log[@]}"
}
discord_msg() {
curl -s -H "Content-Type: application/json" -X POST -d "{\"content\": \"$1\"}" "$discord" &>/dev/null
}
nextcloud_msg() {
curl -d '{"token":"'"$NextcloudTalkToken"'", "message":"'"$1"'"}' -H "Content-Type: application/json" -H "Accept:application/json" -H "OCS-APIRequest:true" -u "$NextcloudUser:$NextcloudPassword" "$NextcloudDomain"/ocs/v1.php/apps/spreed/api/v1/chat/tokenid &>/dev/null
}
apprise_msg() {
if [[ -n $apprisetag ]]; then
curl -d '{"body":"'"$1"'", "title":"#### jdautoenc.sh ####","tag":"'"$apprisetag"'"}' -H "Content-Type: application/json" "$appriseurl" &>/dev/null
else
curl -d '{"body":"'"$1"'", "title":"#### jdautoenc.sh ####"}' -H "Content-Type: application/json" "$appriseurl" &>/dev/null
fi
}
filebot_rename() {
filebot -rename "$v" --db "$1" -non-strict --lang "$2" --format "$3/$4" --q "$5" >>"${log[@]}" 2>>"${log[@]}"
}
names() {
curl -sL https://www.thetvdb.com/dereferrer/series/"$1" | grep -i -A1 "deu" | grep "data-title" | sed 's/.*="\|"//g' | sed "s/’/'/g"
}
if [[ -f /tmp/jdautoenc.lock ]]; then # ignore
log_msg "$(text_lang "001")"
sleep 2
fi
while [ -f /tmp/jdautoenc.lock ]; do
sleep 1m
done
sleep $(((RANDOM % 6) + 1))s
while [ -f /tmp/jdautoenc.lock ]; do
sleep 1m
done
# Erstelle lock Datei, Warte 5 Sekunden und überprüfe nochmals
while [ -f /tmp/rename.lock ]; do
sleep $(((RANDOM % 6) + 1))s
done
if [[ -f /tmp/rename.lock ]]; then # ignore
log_msg "$(text_lang "002")"
sleep $(((RANDOM % 2) + 1))s
fi
echo $$ >/tmp/rename.lock
## Script start
log_msg ""
log_msg "#######################"
log_msg "$(text_lang "003") ${green}rename.sh${white} $(text_lang "004")"
log_msg "#######################"
log_msg ""
while read -r name; do
read -r keyword1
read -r keyword2
read -r format
read -r dbid
read -r nextentry
find -L "${encodes[@]}" -name '*.mkv' -or -name '*.mp4' 2>/dev/null | while IFS= read -r v; do
if [[ ${v,,} == *"${keyword1,,}"*"${keyword2,,}"* ]]; then
log_msg "$(text_lang "005") $(basename "$v" | sed 's/\./ /g;s/AAC\|1080p\|WebDL\|[a-z]26[0-9]\|[hH][eE][Vv][Cc]\|[tT]anuki\| dl \| web \|repack\|wayne\|\|[-]\|[gG]er\|[eE]ng\|[sS]ub//g;s/\[[^][]*\]\|WebDL\|JapDub\|CR\|REPACK\|V2DK\|man\|BluRay\|RSG//g;s/_/ /g;s/\( \)*/\1/g')"
case ${format,,} in
anime)
filebot_rename "$AnimeDB" "$FileBotLang" "$Animes" "$AnimeName" "$dbid"
;;
series)
filebot_rename "$SeriesDB" "$FileBotLang" "$Series" "$SeriesName" "$dbid"
;;
movie)
filebot_rename "$MovieDB" "$FileBotLang" "$Movies" "$MovieName" "$dbid"
;;
*)
log_msg "${red}$v $(text_lang "006") $name $(text_lang "007")"
log_msg "${red}$(text_lang "008")"
;;
esac
fi
done
done <"$renamelist"
find -L "${encodes[@]}" -name '*.mkv' -or -name '*.mp4' 2>/dev/null | while IFS= read -r v; do
duration=$(ffprobe -hide_banner -loglevel error -v quiet -stats -i "$v" -show_entries format=duration -v quiet -of csv="p=0" | sed -e 's/\..*//g')
if [ "$duration" -gt "4751" ]; then # ignore
log_msg "${purple}$v${white} $(text_lang "009")"
movie=$(basename "$v")
folder=$(basename "$v" .mkv)
## Hier wird nun ein Ordner mit dem Namen des Videos erstellt. Dies ist eine Vorsichtsmaßnahme, da mein Ordner (encoded) auch bei eindeutigen Film
## Namen immer wieder dazu führte, dass der Film als "ENCODED EXPLODED" umbenannt wurde -.-
log_msg "$(text_lang "010") $folder" "$yellow" "$white" "$folder"
mkdir "$encodes""$folder" 2>/dev/null
log_msg "$(text_lang "011") ${purple}$v${white} $(text_lang "012") $folder"
mv "$v" "$encodes""$folder" >>"${log[@]}" 2>/dev/null
log_msg "$(text_lang "013")"
filebot -rename "$encodes""$folder"/"$movie" --db TheMovieDB -non-strict --lang German --format "/mnt/Medien/Filme/{n} ({y})" >>"${log[@]}"
log_msg "$(text_lang "014") ${red}$(text_lang "015")${white} $(text_lang "016")"
sleep 5s
rmdir "$encodes"* 2>/dev/null
fi
done
rm -f /tmp/rename.lock
if tail -n 20 "$log" | grep "Failure" &>/dev/null; then
if [ "$count" -lt 3 ]; then
/bin/bash "$0" "$log" "$config" "$count" &
exit
else
log_msg "$(text_lang "017") $count $(text_lang "018")"
discord_msg "$(text_lang "017") $count $(text_lang "018")"
nextcloud_msg "$(text_lang "017") $count $(text_lang "018")"
apprise_msg "$(text_lang "017") $count $(text_lang "018")"
fi
else
log_msg "$(text_lang "019")"
fi