LINUX.ORG.RU

Переходим с Deluge на KTorrent

 ,


0

1

Пользуясь торрент-клиентом Deluge и обнаружив существенные неудобства, решил подыскать альтернативу и остановился на KTorrent. Так как к тому времени в Deluge имелось немалое количество закачек и раздач, то написал скрипт для переноса этого добра.

Что не устроило в Deluge?
Общая причина одна — отнимает много времени при использовании, ибо:

  • Создаёт «пустые» файлы и каталоги для неотмеченных при закачке файлов/каталогов.
  • Неудобная реализация выбора каталога для сохранения содержимого закачек (если используются разные каталоги).
  • По непонятной причине некоторые раздачи иногда самопроизвольно останавливаются (несмотря на отсутствие ограничений в настройках).

Почему переход именно на KTorrent?
KTorrent лишён вышеприведённых недостатков Deluge, при этом по функционалу и отзывчивости не уступает. Памяти потребляет примерно столько же, несмотря на kde'шные библиотеки. Что же касается других торрент-клиентов, то они не дотягивают до функционала Deluge и KTorrent. Лишь qBittorrent мог стать альтернативой, но он забанен на pornolab'е и всё-таки создаёт пустые каталоги (с «пустыми» файлами проблема решена).

Итак, изучая регулярные выражения и консольные юникс-утилиты, написал скрипт для переноса делюговских закачек и раздач. Хотелось бы обратить внимание на тройку вещей:

  • Статус неотмеченных для закачки файлов в мультифайловых раздачах не перенесётся (т.е. по умолчанию будут все отмечены).
  • Когда запустите KTorrent, то все перенесённые раздачи/закачки будут остановлены и нужно будет их перехешировать, выделяя каждую раздачу и нажимая SHIFT+C (более быстрого способа не нашёл. В некоторых торрент-клиентах достаточно нажать «стартовать все», но KTorrent в этом случае будет перезакачивать, а не перехешировать).
  • Работоспособность проверялась на Ubuntu 12.04, Deluge 1.3.5, KTorrent 4.1.3
#!/bin/bash
#Deluge2KTorrent script
#written by takiz aka dadd
printf '%s\n' '...ждите...';

#отсеиваем пути к файлам из torrents.state и фиксим русскую кодировку
egrep '^S.\/' ~/.config/deluge/state/torrents.state | sed -e 's/^..//;s/.$/\//;s/\//#/g' > paths;
t=`cat paths`; printf '%b\n' $t > paths;

#отсеиваем названия торрентов и удаляем дублирующиеся по одному из каждой пары
egrep '[0-9a-zA-Z]{22,99}' ~/.config/deluge/state/torrents.state | sed -e 's/^..//;s/.$//' | perl -ne 'print unless $U{$_};$U{$_}=1;' > torrents;

#создаём временный файл скрипта для создания каталогов и запускаем
printf '%b\n' '#!/bin/bash\nmkdir ~/.kde/share/apps/ktorrent/tor{1..100500}' > temp1.sh; chmod 774 temp1.sh;
strok=`sed -n '$=' torrents`; sed -i -e 's/100500/'$strok'/' temp1.sh; ./temp1.sh;

#создаём скрипт копирования и запускаем
printf '%s\n' '#!/bin/bash' > temp2.sh; chmod 774 temp2.sh;
cat torrents | awk '{print $0".torrent ~/.kde/share/apps/ktorrent/tor"NR"/torrent"}' | sed 's/^/cp ~\/\.config\/deluge\/state\//' >> temp2.sh; ./temp2.sh;

sleep 10;
#создаём шаблон stats
printf '%b\n' 'AUTOSTART=0\nOUTPUTDIR=' > stats;

#создаём stats файлы с путями
a=2; while read f2; do sed -e "1,/.*/{n;s/\(.*\)/\1$f2/}" stats >stats$a; a=$(($a + 1)); done < paths; sed -i -e 's/#/\//g' stats*;

#добавляем в скрипт копирования пути stats и запускаем
cat temp2.sh | awk '{sub(/\~\/[^ ]*\.torrent/, "stats"NR)}1' | sed 's/\/torrent/\/stats/;s/cp st/mv st/' > tmpfile; mv tmpfile temp2.sh; chmod 774 temp2.sh; ./temp2.sh;

sleep 5;
#удаляем временные файлы
rm paths torrents stats temp1.sh temp2.sh;

printf '%s\n' 'ok';
★★★

Чего люди только не напридумывают, чтобы не использовать rtorrent.

post-factum ★★★★★ ()

временный файл скрипта это бесспорно вин

сейчас придут гуру и покажут как это в 1 строчку переписать, но ты не расстраивайся, в скриптах главное работоспособность, а не длина

zolden ★★★★★ ()
Последнее исправление: zolden (всего исправлений: 1)

Зря переходишь. У меня кторрент в последнее время себя странно ведет, сидов не воспринимает много где. Перешел на трансмиссию с демоном.

vurdalak ★★★★★ ()

Памяти потребляет примерно столько же

Рассказывай. Там, где KTorrent жрет 60, Deluge жрет все 200.

redgremlin ★★★★★ ()
Ответ на: комментарий от vurdalak

Пользуюсь ktorrent'ом примерно пару месяцев. Такого не замечал.

dadd ★★★ ()
Ответ на: комментарий от vurdalak

подтверждаю, тоже ушел на трансмиссию, возможно мигрирую на qbittorrent

Ingvarr ★★★ ()
Ответ на: комментарий от redgremlin

После перехода с Deluge на KTorrent свежезагрузившаяся операционка со всеми необходимыми мне приложениями как занимала 29% памяти из 2ГБ, так и продолжает занимать. Более дотошно не замерял.

dadd ★★★ ()

Создаёт «пустые» файлы и каталоги для неотмеченных при закачке файлов/каталогов.

Пла-

Неудобная реализация выбора каталога для сохранения содержимого закачек (если используются разные каталоги).

це-

По непонятной причине некоторые раздачи иногда самопроизвольно останавливаются (несмотря на отсутствие ограничений в настройках).

бо.

У меня почему-то Deluge никогда не жрал больше 40-60 мегабайт, пустые файлы создаёт любой клиент, а если ты их не видишь — это значит, что он просто прячет их в свой кеш. Про разные каталоги вообще первый раз слышу, а «самопроизвольный останов» легко объясняется реаквайрингом сессии с трекером, максимальным числом и поиском пиров.

Deleted ()

Ну что ж, респект за юниксовый подход к решению задачи и за то, что выложил опыт.

По теме:

Сам когда-то облизывался на KTorrent, но остановило одно: не клиент-серверная архитектура, а уж очень хотелось, чтобы висел демоном, и чтобы закачка начиналась еще до того, как произойдет логин.

Сейчас пользуюсь deluge, который запускается демоном при старте, торрент-файлы подсасывает автоматом из каталога ~/p2p/deluge/torrents . Клиент запускаю из-под юзера когда нужно, он коннектится к серверу. Еще есть WEB интерфейс, если захочу издалека зайти. Вообще радует, что есть все 3 интерфейса (GUI, WEB, CLI) и все нормальные. Пока доволен.

Создаёт «пустые» файлы и каталоги для неотмеченных при закачке файлов/каталогов.

Есть такое.

Неудобная реализация выбора каталога для сохранения содержимого закачек (если используются разные каталоги).

Все файлы складываются в один каталог ~/p2p/deluge/downloads . Когда доходят руки - перемещаешь куда надо и (!) переименовываешь, а потом делаешь соотв. симлинки - отличное решение! Если просто переместить средствами торрент клиента, AFAIK ты не можешь переименовать часть файлов (если в раздаче несколько файлов).

По непонятной причине некоторые раздачи иногда самопроизвольно останавливаются (несмотря на отсутствие ограничений в настройках).

Есть баг, что раздача «замирает» на 100%. Нужно либо подождать минут 10 (хм, иногда сама закачка занимает 1мин) или перезапустить демон. Это то? В принципе, не очень напрягает. Особенно если учесть что, если это видеофайл, его и таким можно смотреть.

Что же касается других торрент-клиентов, то они не дотягивают до функционала Deluge и KTorrent

Еще transmission неплох.

Kroz ★★★★★ ()
Ответ на: комментарий от dadd

Файлы всё равно создаются, иногда даже закачивается несколько процентов

кстати, в кторренте, насколько я помню, тоже качаются файлы, которые входят в куски на границе двух файлов даже если их не отметить. просто эти небольшие кусочки кторрент складывает не в ту же папку, а аккуратненько помещает в директорию с настройками торрента

xsektorx ★★★ ()
Ответ на: комментарий от Kroz

уж очень хотелось, чтобы висел демоном, и чтобы закачка начиналась еще до того, как произойдет логин

у меня например однопользовательская система и я реализовывал это так:

1) кторрент всовывается в автостарт

2) настраивается автологин

3) настраивается автоблокировка экрана после автологина, чтобы без пароля не зайти

вполне нормально, пока не нужен полноценный удалённый интерфейс

xsektorx ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.