「Ktorrent」の版間の差分
ナビゲーションに移動
検索に移動
Kusakata.bot (トーク | 投稿記録) 細 (文字列「Category:BitTorrent クライアント]]」を「Category:BitTorrent]]」に置換) |
Kusanaginoturugi (トーク | 投稿記録) (古い記事の差し換え) |
||
5行目: | 5行目: | ||
{{Pkg|ktorrent}} パッケージをインストールします。 |
{{Pkg|ktorrent}} パッケージをインストールします。 |
||
− | == コマンドラインで管理するスクリプト == |
||
+ | == Troubleshooting == |
||
− | Ktorrent は GUI のみのアプリケーションですが、幸運な事に DBUS インターフェースを持っています。したがって次のようなスクリプトにより (SSHなどの) コマンドラインから管理することができます。 |
||
+ | Without {{Pkg|geoip}}, KTorrent is unable to show any information about the seeders, leechers and the current trackers. [[Install]] it as a dependency. It is advised to enable DHT inside the Settings to avoid slow speeds and low amount of seeders. |
||
− | 以下は (元は amaurea によって作られた) OpenSUSE フォーラムからのコピペです。この例では ktorrent のサスペンド/リジュームとアップロード/ダウンロードコマンドを統合しています。 |
||
+ | == Script to manage it in command line == |
||
− | {{hc|/usr/local/bin/kt|<nowiki> |
||
− | #!/usr/bin/env bash |
||
− | # |
||
− | # Public domain script by amaurea/amaur on IRC (freenode for example). |
||
− | # Modified by trapanator to support download/upload rate setting and |
||
− | # to suspend/resume ktorrent network activity |
||
− | # |
||
− | # gary example |
||
− | # qdbus org.ktorrent.ktorrent /core startAll |
||
+ | Since KTorrent is a GUI only application, it fortunately has a DBUS interface, so you can use scripts to manage it in command line (i.e. from SSH). See the following [https://www.linuxquestions.org/questions/linux-software-2/terminal-commands-for-ktorrent-4175441715/#post4851070 linuxquestions forum answer] for details. |
||
− | |||
− | case $1 in |
||
− | help) |
||
− | echo "kt: A simple console interface for ktorrent. |
||
− | Usage: In the following \"id\" indicates either a torrent hash or index. |
||
− | [] indicates optional arguments. |
||
− | |||
− | kt start [id]: If ktorrent is not running, start it. Otherwise, |
||
− | if id is given, start that torrent, otherwise start |
||
− | all torrents. |
||
− | kt quit: Quit ktorrent. |
||
− | kt load url: Load the torrent given by url. Note that the torrent must |
||
− | be manually startet afterwards. |
||
− | kt ls: Print a list of all torrents, of the format: index hash name. |
||
− | kt info [id]: Print more detailed info about the selected (or all) |
||
− | torrent(s). |
||
− | kt stop [id]: Stop the torrent given by id, or all if id is missing. |
||
− | kt name [id]: Like ls, but names only. |
||
− | kt remove id: Remove the torrent given by id (but not the actual files). |
||
− | kt clear: Remove all torrents. |
||
− | kt files [id]: List information about the files of the selected torrent. |
||
− | kt pri [id] [priority]: Give the selected torrent the given priority. |
||
− | kt pri [id] [file index] [priority]: Set the priority of the given file. |
||
− | kt pri [id] equal: Give all files of the torrent the same priority. |
||
− | kt pri [id] first: Download the first files in the torrent first. |
||
− | kt stu [n] set upload rate to n. |
||
− | kt sdu [n] set download rate to n. |
||
− | kt suspend suspend all torrents. |
||
− | kt resume resume all torrents." |
||
− | exit ;; |
||
− | esac |
||
− | pid=$(pidof ktorrent) |
||
− | if [ ! $pid ]; then |
||
− | case "$1" in |
||
− | start) |
||
− | ktorrent --display :0.0 ;; |
||
− | *) |
||
− | echo "ktorrent is not running!" ;; |
||
− | esac |
||
− | exit |
||
− | fi |
||
− | eval "export $(perl -pne 's/\0/\n/g' /proc/$(pidof ktorrent)/environ | fgrep -a DBUS_SESSION_BUS_ADDRESS)" |
||
− | loc="org.ktorrent.ktorrent" |
||
− | cmd="qdbus $loc" |
||
− | case "$1" in |
||
− | stu) |
||
− | if [ "$2" ]; then |
||
− | qdbus org.ktorrent.ktorrent /settings setMaxUploadRate $2 |
||
− | qdbus org.ktorrent.ktorrent /settings apply |
||
− | else echo "upload rate missing!" ; fi ;; |
||
− | std) |
||
− | if [ "$2" ]; then |
||
− | qdbus org.ktorrent.ktorrent /settings setMaxDownloadRate $2 |
||
− | qdbus org.ktorrent.ktorrent /settings apply |
||
− | else echo "download rate missing!" ; fi ;; |
||
− | suspend) |
||
− | qdbus org.ktorrent.ktorrent /core org.ktorrent.core.setSuspended true ;; |
||
− | resume) |
||
− | qdbus org.ktorrent.ktorrent /core org.ktorrent.core.setSuspended false ;; |
||
− | load) |
||
− | res=$($cmd /core loadSilently "$2" 1) ;; |
||
− | list|ls) |
||
− | torrents=$($cmd /core torrents) |
||
− | i=0 |
||
− | for torrent in $torrents; do |
||
− | name=$($cmd /torrent/$torrent name) |
||
− | printf "%d %s %s\n" $i $torrent "$name" |
||
− | i=$(($i+1)) |
||
− | done ;; |
||
− | info) |
||
− | if [ "$2" ]; then |
||
− | if (( ${#2} < 4 )); then |
||
− | torrents=($($cmd /core torrents)) |
||
− | torrents=${torrents[$2]} |
||
− | else torrents=$2; fi |
||
− | else torrents=$($cmd /core torrents); fi |
||
− | i=0 |
||
− | for torrent in $torrents; do |
||
− | name=$($cmd /torrent/$torrent name) |
||
− | size=$($cmd /torrent/$torrent totalSize) |
||
− | dsize=$($cmd /torrent/$torrent bytesToDownload) |
||
− | prog=$($cmd /torrent/$torrent bytesDownloaded) |
||
− | speed=$($cmd /torrent/$torrent downloadSpeed) |
||
− | seed=$($cmd /torrent/$torrent seedersConnected) |
||
− | leech=$($cmd /torrent/$torrent leechersConnected) |
||
− | priority=$($cmd /torrent/$torrent priority) |
||
− | sl=$(printf "[%d|%d]" $seed $leech) |
||
− | pri=$(printf "(%d)" $priority) |
||
− | printf "%3.0lf%% of %11d %4.0lf kb/s %8s %4s %s\n" $((100*$prog/$dsize)) $dsize $(($speed/1000)) $sl $pri "$name" |
||
− | i=$(($i+1)) |
||
− | done ;; |
||
− | name|stop|start|remove|files) |
||
− | if (( ${#2} < 4 )); then |
||
− | torrents=($($cmd /core torrents)) |
||
− | torrent=${torrents[$2]} |
||
− | else torrent=$2; fi |
||
− | case "$1" in |
||
− | name) |
||
− | $cmd /torrent/$torrent name ;; |
||
− | start) |
||
− | if [ "$2" ]; then res=$($cmd /core start $torrent) |
||
− | else res=$($cmd /core startAll); fi;; |
||
− | stop) |
||
− | if [ "$2" ]; then res=$($cmd /core stop $torrent) |
||
− | else res=$($cmd /core stopAll); fi;; |
||
− | remove) |
||
− | # qdbus boolean bug workaround: use dbus-send instead |
||
− | res=$(dbus-send --type=method_call --dest=$loc /core org.ktorrent.core.remove string:"$torrent" boolean:false) ;; |
||
− | files) |
||
− | n=$($cmd /torrent/$torrent numFiles) |
||
− | for (( i=0; i < $n; i++ )); do |
||
− | path=$($cmd /torrent/$torrent filePath $i) |
||
− | pct=$($cmd /torrent/$torrent filePercentage $i) |
||
− | size=$($cmd /torrent/$torrent fileSize $i) |
||
− | priority=$($cmd /torrent/$torrent filePriority $i) |
||
− | printf "%d %3.0lf%% of %11d [%d] %s\n" $i $pct $size $priority "$path" |
||
− | done ;; |
||
− | esac ;; |
||
− | pri|priority|prioritize) |
||
− | if [ $3 ]; then |
||
− | if (( ${#2} < 4 )); then |
||
− | torrents=($($cmd /core torrents)) |
||
− | torrent=${torrents[$2]} |
||
− | else torrent=$2; fi |
||
− | if [ ! $torrent ]; then exit; fi |
||
− | n=$($cmd /torrent/$torrent numFiles) |
||
− | if [ $4 ]; then |
||
− | res=$($cmd /torrent/$torrent setFilePriority $3 $4) |
||
− | else |
||
− | case $3 in |
||
− | equal|equalize) |
||
− | for (( i=0; i < $n; i++ )); do |
||
− | res=$($cmd /torrent/$torrent setFilePriority $i 40) |
||
− | done ;; |
||
− | inc|increasing) |
||
− | for (( i=0; i < $n; i++ )); do |
||
− | pri=$(printf "%2.0lf" $(((4*$i/$n+3)*10))) |
||
− | res=$($cmd /torrent/$torrent setFilePriority $i $pri) |
||
− | done ;; |
||
− | dec|decreasing) |
||
− | for (( i=0; i < $n; i++ )); do |
||
− | pri=$(printf "%2.0lf" $(((4*($n-$i-1)/$n+3)*10))) |
||
− | res=$($cmd /torrent/$torrent setFilePriority $i $pri) |
||
− | done ;; |
||
− | first) |
||
− | m=$(($n < 3 ? $n : 3)) |
||
− | for (( i=0; i < $m; i++ )); do |
||
− | res=$($cmd /torrent/$torrent setFilePriority $i $(((6-$i)*10))) |
||
− | done |
||
− | for (( i=3; i < $n; i++ )) do |
||
− | res=$($cmd /torrent/$torrent setFilePriority $i 30) |
||
− | done ;; |
||
− | *) |
||
− | res=$($cmd /torrent/$torrent setPriority $3) ;; |
||
− | esac |
||
− | fi |
||
− | else echo Too few arguments!; fi ;; |
||
− | clear) |
||
− | torrents=$($cmd /core torrents) |
||
− | for torrent in $torrents; do |
||
− | res=$(dbus-send --type=method_call --dest=$loc /core org.ktorrent.core.remove string:"$torrent" boolean:false) |
||
− | done ;; |
||
− | quit) |
||
− | res=$($cmd /MainApplication quit) ;; |
||
− | *) |
||
− | echo "Unrecognized command: '$1'" ;; |
||
− | esac |
||
− | </nowiki>}} |
2023年2月21日 (火) 16:14時点における版
Ktorrent は KDE のための BitTorrent クライアントです。
インストール
ktorrent パッケージをインストールします。
Troubleshooting
Without geoip, KTorrent is unable to show any information about the seeders, leechers and the current trackers. Install it as a dependency. It is advised to enable DHT inside the Settings to avoid slow speeds and low amount of seeders.
Script to manage it in command line
Since KTorrent is a GUI only application, it fortunately has a DBUS interface, so you can use scripts to manage it in command line (i.e. from SSH). See the following linuxquestions forum answer for details.