>Укажи, пожалуйста, причины, по которым тебя не устраивает rtorrent?
Сначала хочу сказать, что пользуюсь rtorrent года три, так что взгляд не такой уж поверхностный :)
1) Отсутствие workaround для длинных имён файлов (ограничения оси: в винде - макс. 255 СИМВОЛОВ, в linux - 255 БАЙТ, поэтому в раздачах, особенно библиотек, встречаются файлы, которые не могут быть сохранены под тем же именем.). Проблема известна давно, многие клиенты позволяют задать своё имя файлу или автоматически обрезать до допустимых 255 байт (qbittorrent, ktorrent, deluge), rtorrent- нет. Также, в некоторых других клиентах (transmission, например) можно отказаться от скачивания проблемных файлов, успешно получив остальное, а в rtorrent при наличии проблемных файлов невозможно скачать ничего из раздачи (да, пробовал отмечать файлы как off, всё равно ошибка).
2) частые зависания при запуске (через дцать секунд после запуска, потом только kill -9). Возможно, как-то связано с screen, но без него rtorrent ИМХО бесполезен.
3) работа с unicode через одно место. Файлы получают правильные имена, в конфиге можно прописать пути с русскими буквами, но в интерфейсе нельзя вводить русские буквы. В новых ванильных релизах даже эту поддержку старательно выпиливают (по крайней мере, именно такое впечатление создаётся)
>Если в торренте несколько файлов, и я отключаю один из них, то он все равно пытается забить место под все файлы.
Зависит от того, как файлы разбиты по extent'ам. Если один extent принадлежит двум файлам, писать данные torrent-клиент будет в оба файла, даже если один велено не скачивать, это нормально.
Он не умеет правильно определять время окончания закачки, если один или несколько файлов отключены.
A у меня он в последнее время тоже часто падал, написав в консоль какую то невнятную ошибку. Места на диске полно.
Ещё он логи стал засирать жалобами на то что пиры шлют ему какие то непонятные ему сообщения (больше всего жаловался на transmission).
Может и не от screen зависит, а от количества запущенных torrent'ов. Если rtorrent успешно взлетел, работать будет 24/7, но вот взлетает не всегда.
Старался не замечать так: если виснет - kill -9. Потом запускаю и пока опять не завис останавливаю все torrent'ы. Потом перезапускаю rtorrent, запускаю заново все torrent'ы
* двух других названных причин (long filenames и юникод)
* того, что я не программист
* отсутствия программистсткой документации (API, классов и их взаимодействий) rtorrent
* отсутствия даже элементарных комментариев в исходниках
я предпочту выбрать другой клиент, а не тратить много времени на допиливание rtorrent. Честно, я сначала полез читать исходники, но через неделю понял, что без документации я это не осилю.
Кстати, в deluge 1.2.3 можно переименовывать файлы с длинными именами ПРИ добавлении торрента, но не после.
Поэтому, нужно проверять торрент на длинные имена до добавления в deluge. Perl с модулем Bencode. torrent_check.pl
#!/usr/bin/perl
use Bencode;
use strict;
# расшифруем это
my $decode = Bencode::bdecode( join("", <>) );
# проверяем каждый файл
for (my $i=0; $i < @{ $decode->{"info"}{"files"} }; $i++) {
# можно было бы ограничиться проверкой
# $decode->{"info"}{"files"}[$i]{"path"}[-1]
# но имена каталогов тоже могут быть слишком длинные
# лучше проверить всё
$_ = $decode->{"info"}{"files"}[$i]{"path"};
my $err=0;
foreach my $name ( @{ $_ } ) {
if ( length ( $name ) > 255 ) {
$err = 1;
}
}
if ( $err ) {
printf "%s\n", join('/', @{ $decode->{"info"}{"files"}[$i]{"path"} });
}
}
cat file.torrent | ./torrent_check.pl
В выводе будут все файлы с слишком длинными именами.
А у меня сколько не пробовал deluge, ни разу не получалось найти с ним общий язык. Особенно при использовании его в связке с web-интерфейсом. Поэтому успокоился и использую спокойно rtorrent+rutorrent и бед не знаю.
Можно пруфпик наподобие вот такого, где четко видно, что время соответствует или не соответствует действительности?
На моем показывается 8 часов, хотя на самом деле должно быть не более 10 минут.
То видно, что время определяется исходя из размера всего торрента или всего списка файлов, без учета выключенных.
Каким образом оно у тебя «нормально» определяет, если нет никаких кастомных патчей?