「Ktorrent」の版間の差分
表示
削除された内容 追加された内容
細 1版 をインポートしました |
Kusanaginoturugi (トーク | 投稿記録) 飜訳 |
||
| (3人の利用者による、間の3版が非表示) | |||
| 1行目: | 1行目: | ||
[[Category: |
[[Category:BitTorrent]] |
||
[[en:Ktorrent]] |
[[en:Ktorrent]] |
||
[ |
[https://www.kde.org/applications/internet/ktorrent/ Ktorrent] は KDE のための BitTorrent クライアントです。 |
||
== インストール == |
== インストール == |
||
{{Pkg|ktorrent}} パッケージをインストールします。 |
{{Pkg|ktorrent}} パッケージをインストールします。 |
||
== トラブルシューティング == |
|||
== コマンドラインで管理するスクリプト == |
|||
{{Pkg|geoip}} がないと、KTorrent はシーダー、リーチャー、現在のトラッカーに関する情報を一切表示できません。依存関係として [[インストール]]してください。速度が遅くなったり、シーダーの数が少なくなったりしないように、設定で DHT を有効にすることをお勧めします。 |
|||
Ktorrent は GUI のみのアプリケーションですが、幸運な事に DBUS インターフェースを持っています。したがって次のようなスクリプトにより (SSHなどの) コマンドラインから管理することができます。 |
|||
== コマンドラインで管理するためのスクリプト == |
|||
以下は (元は amaurea によって作られた) OpenSUSE フォーラムからのコピペです。この例では ktorrent のサスペンド/リジュームとアップロード/ダウンロードコマンドを統合しています。 |
|||
KTorrent は GUI のみのアプリケーションですが、幸いなことに DBUS インターフェースを備えているので、スクリプトを使用してコマンドライン(つまり SSH)から管理することができます。詳細は、以下の [https://www.linuxquestions.org/questions/linux-software-2/terminal-commands-for-ktorrent-4175441715/#post4851070 linuxquestions forum answer] を参照してください。 |
|||
{{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 |
|||
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:17時点における最新版
Ktorrent は KDE のための BitTorrent クライアントです。
インストール
ktorrent パッケージをインストールします。
トラブルシューティング
geoip がないと、KTorrent はシーダー、リーチャー、現在のトラッカーに関する情報を一切表示できません。依存関係として インストールしてください。速度が遅くなったり、シーダーの数が少なくなったりしないように、設定で DHT を有効にすることをお勧めします。
コマンドラインで管理するためのスクリプト
KTorrent は GUI のみのアプリケーションですが、幸いなことに DBUS インターフェースを備えているので、スクリプトを使用してコマンドライン(つまり SSH)から管理することができます。詳細は、以下の linuxquestions forum answer を参照してください。