diff options
Diffstat (limited to 'scripts')
-rw-r--r-- | scripts/Makefile.am | 1 | ||||
-rwxr-xr-x | scripts/ktshell | 384 |
2 files changed, 0 insertions, 385 deletions
diff --git a/scripts/Makefile.am b/scripts/Makefile.am deleted file mode 100644 index 2c6a020..0000000 --- a/scripts/Makefile.am +++ /dev/null @@ -1 +0,0 @@ -bin_SCRIPTS=ktshell diff --git a/scripts/ktshell b/scripts/ktshell deleted file mode 100755 index 45979e0..0000000 --- a/scripts/ktshell +++ /dev/null @@ -1,384 +0,0 @@ -#!/bin/bash - -declare -a filenames priorities torinfo filecounts ints info tors usernms ktorrents dcops - -filemenu () { - local IFS=' -' - filenames=( `$ktorrent getFileNames $tornum` ) - unset IFS - while true; do - local IFS=' -' - priorities=( `$ktorrent getFilePriorities $tornum` ) - unset IFS - clear - echo $torname; - for ((B=0; B < filecounts[$i]; B++)); do - echo -n "$B. ${filenames[$B]:0:60} - " - case "${priorities[$B]}" in - "0") - echo "Excluded" - ;; - "1") - echo "Download Last" - ;; - "3") - echo "Download First" - ;; - "2") - echo "Download Normally" - ;; - esac - done - echo - echo "Enter a list of file numbers you want to set to the same priority" - echo -n "separated by spaces, or enter to go back to this torrent's menu: " - read filenums - if [ "x$filenums" = "x" ]; then - break - fi - echo "0 = Do Not Download, 1 = Download Last, 2 = Download Normally, 3 = Download First" - echo -n "Enter the priority you want to set the files to: " - read priority - for A in $filenums; do - echo $A - done|$ktorrentp setFilePriority $tornum %1 $priority - done -} - -tormenu () { - i=${tors[$tornum]} - torname=${torinfo[$i*10]} - while true; do - clear - echo $torname - select name in 'Stop Torrent' 'Start Torrent' 'Remove Torrent' \ - 'Manual Announce' 'File Names & Priorities' 'Back to Torrent List' \ - 'Back to Main Menu' 'Quit'; do - echo - case "$REPLY" in - "1") - $ktorrent stop $tornum 0 - echo "Torrent Stopped" - ;; - "2") - echo "Torrent Started" - $ktorrent start $tornum - ;; - "3") - echo -n "Enter 1 to delete any incomplete data " - echo "or enter 0 to keep it: " - read deldata - $ktorrent remove $tornum $deldata - if (( $deldata == 1 )); then - echo "Torrent and Any Incomplete Data Removed" - else - echo "Torrent Removed" - fi - return - ;; - "4") - $ktorrent announce $tornum - echo "Manual Announce Completed" - ;; - "5") - if ((${filecounts[$i]} == 0)); then - echo "Single File Torrent" - continue - fi - filemenu - break - ;; - "6") - return - ;; - "7") - return 1 - ;; - "8") - exit 0 - ;; - esac - done - done -} - -torlist () { - while true; do - local IFS=' -' - tornums=`$ktorrent getTorrentNumbers $1` - unset IFS - if [ "x$tornums" = "x" ]; then - echo "No Torrents of the Selected Type Are Loaded" - return 1 - fi - clear - if (( $1 == 1 )); then - echo "Downloads:" - fi - if (( $1 == 2 )); then - echo "Seeds:" - fi - if (( $1 == 3 )); then - echo "All Torrents:" - fi - unset torns - for A in $tornums; do - torns="$torns -$A" - done - local IFS=' -' - torinfo=( `for A in $torns; do - echo $A - done|$ktorrentp getTorrentInfo %1|sed s/^$/-/` ) - filecounts=( `for A in $torns; do - echo $A - done|$ktorrentp getFileCount %1` ) - unset IFS - i=0 - for A in $tornums; do - let tors[$A]=$i/13 - echo "$A. ${torinfo[$i]:0:40} (${torinfo[$i+1]:0:32})" - echo -n "Size:${torinfo[$i+3]} (Have ${torinfo[$i+9]}) " - echo -n "Time Left:${torinfo[$i+7]} " - echo "Peers: ${torinfo[$i+8]}" - echo -n "Seeders: ${torinfo[$i+11]} Leechers: ${torinfo[$i+12]} " - echo "Share Ratio: ${torinfo[$i+10]} " - echo -n "DL:${torinfo[$i+2]} DL Rate:${torinfo[$i+5]} " - echo "UL:${torinfo[$i+4]} UL Rate:${torinfo[$i+6]} " - echo - let i=$i+13 - done - echo -n "Type a torrent's number or press enter to go back to the main menu:" - read -p " " command - unset tornum - if [ "x$command" = "x" ]; then - return - fi - for A in $tornums; do - if [ "x$command" = "x$A" ]; then - tornum=$A - break - fi - done - if [ "x$tornum" != "x" ]; then - tormenu - if [ "x$?" = "x1" ]; then - return - fi - fi - done -} - -settings () { - while true; do - local IFS=' -' - ints=( `$ktorrent intSettings` ); - ints[7]=`$ktorrent dataDir` - unset IFS - clear - echo "Current Settings: " - echo "Max Downloads: ${ints[0]}" - echo "Max Seeds: ${ints[1]}" - echo "Max Connections Per Download: ${ints[2]}" - echo "Max Upload Speed: ${ints[3]}" - echo "Max Download Speed: ${ints[4]}" - echo "Keep Seeding When Complete: ${ints[5]}" - echo "Show System Tray Icon: ${ints[6]}" - echo "Temporary Data Dir: ${ints[7]}" - echo - echo "Change Settings" - select name in 'Set Max Downloads' 'Set Max Seeds' \ - 'Set Keep Seeding When Complete' 'Set Max Upload Speed' 'Set Max Download Speed' \ - 'Set Max Connections Per Download' 'Set Show System Tray Icon' \ - 'Change Temporary Data Dir' 'Back to Main Menu' 'Quit'; do - case "$REPLY" in - "1") - read -p "How many downloads? " maxdown - $ktorrent setMaxDownloads $maxdown - break - ;; - "2") - read -p "How many seeds? " maxseeds - $ktorrent setMaxSeeds $maxseeds - break - ;; - "3") - read -p "Keep Seeding After downloading? 0 for no, 1 for yes: " ks - $ktorrent setKeepSeeding $ks - break - ;; - "4") - read -p "Max Upload Speed in K/s: " ulspeed - $ktorrent setMaxUploadSpeed $ulspeed - break - ;; - "5") - read -p "Max Download Speed in K/s: " dlspeed - $ktorrent setMaxDownloadSpeed $dlspeed - break - ;; - "6") - read -p "Max Connections Per Download: " conn - $ktorrent setMaxConnectionsPerDownload $conn - break - ;; - "7") - read -p "Show the System Tray Icon? 0 for no, 1 for yes: " st - $ktorrent setShowSysTray $st - break - ;; - "8") - read -p "Enter full path to new temp data directory: " ddpath - $ktorrent changeDataDir "$ddpath" - break - ;; - "9") - return - ;; - "10") - exit 0 - ;; - esac - done - done -} - -about () { - clear -echo "This script uses KDE's DCOP interface to control a running instance of KTorrent." -echo "It uses the console DCOP client, dcop, to connect. It organizes the features of and" -echo "simplifies the use of this interface. It is intended to be used as a replacement for" -echo "a true console BitTorrent client for KTorrent users. It was written by Adam Forsyth." -echo -echo "Hint: pressing enter at most menus will redisplay the menu choices." -echo "Press enter to go back to the main menu." -read -} - -mainmenu () { - local IFS=' -' - info=( `$ktorrent getInfo` ) - unset IFS - clear - echo "Totals:" - echo "${info[0]}" - echo "${info[1]}" - echo "${info[2]}" - select name in 'List All Torrents' 'List Seeds' 'List Downloads' 'Start All' 'Stop All' \ - 'Load a Torrent' 'Change Settings' 'Redisplay Totals & Menu' 'About this Script' 'Quit'; do - case "$REPLY" in - "1"|"2"|"3") - let A=4-$REPLY - torlist $A - if (( $? == 1 )); then - continue - fi - return - ;; - "4") - echo "Enter 1 to start downloads, 2 to start seeds, 3 to start all: " - read starttype - $ktorrent startAll $starttype - echo "Torrents of type $starttype Started" - ;; - "5") - echo "Enter 1 to stop downloads, 2 to stop seeds, 3 to stop all: " - read stoptype - $ktorrent stopAll $stoptype - echo "Torrents of type $stoptype Stopped" - ;; - "6") - read -p "Enter full path to the torrent: " tpath - $ktorrent openTorrentSilently "$tpath" - echo "$tpath added" - ;; - "7") - settings - return - ;; - "8") - return - ;; - "9") - about - return - ;; - "10") - exit 0 - ;; - esac - done -} - -init () { - if ! which dcop 2>/dev/null >/dev/null; then - echo "The dcop command line client cannot be found" - exit 1 - fi - dcop="dcop" - ktorrents=( `$dcop 2>/dev/null` ) - if (( $? != 0 )); then - echo "Looking for DCOP servers..." - local IFS=' -' - usernms=( `ps -C dcopserver --no-heading -o user` ) - unset IFS - if (( ${#usernms[*]} == 0 )); then - echo "There is no DCOP server running." - exit 1 - fi - echo "Found a DCOP server." - usernm=${usernms[0]} - if (( ${#usernms[*]} > 1 )); then - echo "Which user's DCOP server do you wish to connect to?" - select usernm in ${usernms[*]}; do - break - done - fi - dcop="dcop --user $usernm" - ktorrents=( `$dcop 2>/dev/null` ) - if (( $? != 0 )); then - echo "Cannot connect to the DCOP server." - exit 1 - fi - fi - echo "Connected to a DCOP server." - unset ktorrentid - for A in ${ktorrents[*]}; do - if [ "x${A:0:8}" = "xktorrent" ]; then - ktorrentid=$A - echo "Found KTorrent." - break - fi - done - if [ "x$ktorrentid" = "x" ]; then - echo "KTorrent is not running in the KDE session for this DCOP server." - echo "You can start KTorrent with something like \"ktorrent --display :0\"" - echo "while logged in as a user who has KDE running." - exit 1 - fi - dcops=( $dcop ) - dcop=${dcops[0]} - for A in ${dcops[*]:1}; do - dcop="$dcop -$A" - done - ktorrent="$dcop -$ktorrentid -KTorrent" - ktorrentp="$dcop ---pipe -$ktorrentid -KTorrent" -} - -init -while true; do - mainmenu -done |