diff --git a/dmenu-transmission b/dmenu-transmission index 28e7110..d8bf5b2 100755 --- a/dmenu-transmission +++ b/dmenu-transmission @@ -1,12 +1,47 @@ -#!/bin/sh +#!/bin/env bash id=$(transmission-remote -l | dmenu -l 10 | awk '{print $1}'| sed 's/*//') [ -z "$id" ] && exit 0 -case "$(printf "Start\\nStop\\nRemove" | dmenu -p "Torrent Action: ")" in - Remove) transmission-remote -t $id -r ;; - Start) transmission-remote -t $id -s ;; - Stop) transmission-remote -t $id -S ;; - *) exit ;; +move () { + declare -a paths=( + "$HOME/Videos/anime" + "$HOME/Videos/movies" + "$HOME/Documents/manga" + "$HOME/Documents/lightnovels" + "$HOME/Games/torrents" + ) + + current=$(transmission-remote -t 1 -i | grep -i location | awk '{print $2}') + + choice=$(printf '%s\n' "${paths[@]}" | dmenu -p "Current: $current") + + [ -z "$choice" ] && quick-notify "Transmission" "No path chosen" && exit + + [ ! -d "$choice" ] && mkdir -p "$choice" + + if transmission-remote -t $1 --move $choice ; then + quick-notify "Transmission" "Moved $1 to $choice" + else + quick-notify "Transmission" "Couldn't move $1 to $choice" + fi + + +} + +case "$(printf "Start\\nStop\\nMove\\nRemove" | dmenu -p "Torrent Action: ")" in + Remove) transmission-remote -t $id -r + quick-notify "Transmission" "Removed $id" + ;; + Start) transmission-remote -t $id -s + quick-notify "Transmission" "Started $id" + ;; + Stop) transmission-remote -t $id -S + quick-notify "Transmission" "Stoped $id" + ;; + Move) move $id + ;; + *) quick-notify "Transmission" "No action chosen" + ;; esac