#!/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