Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

utorrent rpc support [RU] #69

Open
st7105 opened this issue Jul 20, 2021 · 5 comments
Open

utorrent rpc support [RU] #69

st7105 opened this issue Jul 20, 2021 · 5 comments
Labels

Comments

@st7105
Copy link
Contributor

st7105 commented Jul 20, 2021

После нескольких фиксов возникла концептуальная проблема. А именно, в 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.
@idlesign
Copy link
Owner

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

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

@st7105
Copy link
Contributor Author

st7105 commented Jul 21, 2021

@idlesign
Copy link
Owner

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

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

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

@st7105
Copy link
Contributor Author

st7105 commented Jul 24, 2021

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

@idlesign
Copy link
Owner

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

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants