torrt icon indicating copy to clipboard operation
torrt copied to clipboard

utorrent rpc support [RU]

Open st7105 opened this issue 4 years ago • 5 comments

После нескольких фиксов возникла концептуальная проблема. А именно, в api utorrent в методе добавления торрента используется относительный путь (в принципе неподдерживается абсолютный путь, только относительный), а в возвращаемом списке всех торрентов уже абсолютный (известная проблема в utorrent).

В функции update_torrents происходит передача абсолютного пути при добавлении нового торрента:

            rpc_object.method_add_torrent(
                tracker_torrent,
                rpc_torrent['download_to'],
                params=rpc_torrent.get('params', None)
            )

Это приводит к постоянному дублированию: /home/download/home/download/home/...

Варианты решения:

  • Хранить путь загрузки в TorrentData, а не использовать параметр из api.

st7105 avatar Jul 20 '21 10:07 st7105

Да, интересно получается. Можно попробовать находить общий префикс у файлов и не добавлять его, если он уже есть.

А что это за известная проблема, на неё есть задача в каком-нибудь трекере?

idlesign avatar Jul 21 '21 06:07 idlesign

https://forum.utorrent.com/topic/71523-possible-bug-add-file-sub-path-issue/

st7105 avatar Jul 21 '21 07:07 st7105

Хранить путь загрузки в TorrentData, а не использовать параметр из api.

Боюсь, что тут могут возникнуть проблемы с обратной совместимостью. Сейчас источником данных является торрент-клиент, а торрт всего лишь помогает ему. То есть, пользователь может прямо в клиенте задать нужный путь и торрт будет это учитывать.

В предлагаемом решении мы пытаемся обойти странность поведения одного из клиентов, размазав ответственность ещё и на торрт. Утрируя: пытаемся превратить торрт в ещё один интерфейс для клиента.

idlesign avatar Jul 24 '21 01:07 idlesign

Предложите решение, с меня реализация.

st7105 avatar Jul 24 '21 04:07 st7105

Пока только такие варианты, один исследовательский, два радикальных:

  • Можно попробовать находить общий префикс у файлов и не добавлять его, если он уже есть. Вероятно тут же можно поиграться с sub_path (считаем, что если торрент был когда-то добавлен, то директория уже создана).
  • Перейти на Transmission.
  • Добраться до кода ядра мюторрента и продавить патч. Правда не очень понятно, как его сделать обратно совместимым.

idlesign avatar Jul 25 '21 12:07 idlesign