astroport-iptubes/trans-ctl.sh

128 lines
3.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="$@"
name="${@:2}"
[[ -z $1 ]] && echo "Please choose an option:
- list
- rmtracker
- getid" && exit 1
# Functions
getid() {
# Check if no name, give last ID
if [[ -z $name ]]; then
result=$($transcmd --list | grep -vE 'Sum:|ID Done' | tail -n1 | awk '{ print $1 }')
elif [[ $name =~ ^[+-]?[0-9]+([.][0-9]+)?$ ]]; then
result=$name
# Get ID
else
j=0
for i in $name; do
if [[ $j == 0 ]];then
result=$($transcmd --list | grep -vE 'Sum:|ID Done' | grep -iw "$i")
else
result=$(echo "$result" | grep -iw "$i")
fi
((j++))
done
fi
if [[ $result ]]; then
echo "$result" | awk '{ print $1 }'
else
echo "No torrent found"
fi
}
getlowerid() {
result=$($transcmd --list | head -n2 | tail -n1 | awk '{ print $1 }')
echo $result
}
gethigherid() {
result=$($transcmd --list | tail -n2 | head -n1 | awk '{ print $1 }')
echo $result
}
checkdisk() {
diskSize=$(du -hs data/files/ | awk '{ print $1 }')
[[ $diskSize =~ "G" ]] && diskSize=$(echo $diskSize | tr -d 'G') || diskSize=1
[[ "$diskSize" -ge "$diskLimit" ]] && echo "You have reached the maximum space allocated to torrents: $diskSize" || echo "$diskSize" | tr ',' '.'
}
downloading() {
result=$($transcmd --list | grep -E 'Downloading')
[[ $result ]] && echo "There is a torrent downloading"
}
case "$1" in
list)
$transcmd --list
;;
rmtracker)
if [[ -z $name ]]; then
echo "Please precise an torrentID or title of the torrent you want to anonymize"
else
if [[ ! "$name" =~ ^[+-]?[0-9]+([.][0-9]+)?$ ]]; then
idt=$(getid | tr -d '*')
else
idt=$name
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" && exit 1
fi
;;
getid)
getid
;;
remove)
idt=$(getid | tr -d '*')
if [[ $idt =~ ^[+-]?[0-9]+([.][0-9]+)?$ ]]; then
torrentList=$($transcmd --list | grep -vE 'Sum:|ID Done' )
IFS=$'\n'
for i in $torrentList; do
if [[ $(echo "$i" | awk '{ print $1 }') == $idt ]]; then
fileName=$(echo "$i" | awk '{ print $NF }')
break
fi
done
IFS=$' '
[[ ! $fileName ]] && echo "Can't find torrent to remove." && exit 1
cd data/meta
torrentId=$(grep -r $fileName | head -n1 | awk -F '/' '{ print $1 }')
rm -rf $torrentId
$transcmd -t $idt --remove-and-delete > /dev/null && echo "Torrent $idt removed." || echo "Failed to remove $1"
else
echo "$idt"
fi
;;
checkdisk)
checkdisk
;;
getlowerid)
getlowerid
;;
gethigherid)
gethigherid
;;
downloading)
downloading
;;
*)
cmd="$args"
$transcmd "$cmd"
;;
esac