astroport-iptubes/trans-ctl.sh

84 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# Config
diskLimit="15"
[[ -z $transUser ]] && transUser=$(grep "transUser" login.py | awk -F '=' '{ print $2 }' | tr -d '"' | tr -d ' ')
[[ -z $transPwd ]] && transPwd=$(grep "transPwd" login.py | awk -F '=' '{ print $2 }' | tr -d '"' | tr -d ' ')
transcmd="transmission-remote --auth $transUser:$transPwd"
args="$@"
[[ -z $1 ]] && echo "Please choose an option:
- list
- rmtracker
- getid" && exit 1
# Functions
getid() {
if [[ -z $2 ]]; then
result=$($transcmd --list | grep -vE 'Sum:|ID Done' | tail -n1 | awk '{ print $1 }')
elif [[ $2 =~ ^[+-]?[0-9]+([.][0-9]+)?$ ]]; then
result=$2
else
j=0
for i in "${@:2}"; do
[[ $j == 0 ]] && result=$($transcmd --list | grep -vE 'Sum:|ID Done' | grep -i "$i")
result=$(echo "$result" | grep -vE 'Sum:|ID Done' | grep -iw "$i")
((j++))
done
fi
if [[ $result ]]; then
echo "$result" | awk '{ print $1 }'
else
echo "No torrent found"
fi
}
checkdisk() {
diskSize=$(du -hs data/files/ | awk '{ print $1 }')
[[ $diskSize =~ "G" ]] && diskSize=$(echo $diskSize | tr -d 'G') || return 0
[[ "$diskSize" -ge "$diskLimit" ]] && echo "You have reached the maximum space allocated to torrents: $diskSize" || echo "$diskSize" | tr ',' '.'
}
case "$1" in
list)
$transcmd --list
;;
rmtracker)
if [[ -z $2 ]]; then
echo "Please precise an torrentID or title of the torrent you want to anonymize"
else
if [[ ! "$2" =~ ^[+-]?[0-9]+([.][0-9]+)?$ ]]; then
idt=$(getid "$args" | tr -d '*')
else
idt=$2
fi
nbrID=$(echo "$idt" | wc -l)
[[ $nbrID > 1 ]] && echo "You selected $nbrID torrents, please choose just one" && exit 1
[[ $idt ]] && rmtk=$($transcmd -t $idt --tracker-remove http://ygg.peer2peer.cc:8080)
[[ $rmtk =~ "Error: invalid argument" ]] && echo "Tracker still removed on this torrent" && exit 1
[[ ! $idt && ! $rmtk =~ "Error: invalid argument" ]] && echo "No torrent found"
fi
;;
getid)
getid "$args"
;;
remove)
idt=$(getid "$args" | tr -d '*')
if [[ $idt =~ ^[+-]?[0-9]+([.][0-9]+)?$ ]]; then
$transcmd -t $idt --remove-and-delete > /dev/null && echo "Torrent $idt removed." || echo "Failed to remove $1"
else
echo "$idt"
fi
;;
checkdisk)
checkdisk
;;
*)
cmd="$args"
$transcmd "$cmd"
;;
esac