-
Notifications
You must be signed in to change notification settings - Fork 71
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
Qbittorrent add torrent fixes (wait for async add) #354
Conversation
return res | ||
res = client.torrents_add(save_path=savepath, use_auto_torrent_management=auto_tmm, torrent_contents=[('file.torrent', torrent_content)]) | ||
if 'Ok' in res: | ||
torrent = Torrent(torrent_content) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Я бы конечно предпочёл получать готовый Torrent object снаружи (тем более он там есть), нежели заново парсить. Но это потребует изменения контрактов плагинного api.
PRе уже почти год 😢 . Надо таки проревьювать и вкатить. И спасибо за фикс! Мне очень стыдно, что я так и не добрался. |
f17f5d0
to
8db204d
Compare
Codecov Report
📣 This organization is not using Codecov’s GitHub App Integration. We recommend you install it so Codecov can continue to function properly for your repositories. Learn more @@ Coverage Diff @@
## release/1.3.0 #354 +/- ##
=================================================
- Coverage 99.49% 99.40% -0.09%
=================================================
Files 56 56
Lines 4709 4719 +10
=================================================
+ Hits 4685 4691 +6
- Misses 24 28 +4
... and 1 file with indirect coverage changes 📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more |
Я как-то не уверен, что ретрай с поиском торрента в клиенте так уже нам нужен, тем более на 30 попыток. |
В api qbittorrent процесс добавления нового торрента асинхронный - операция torrents_add завершается раньше, нежели добавленный торрент становится виден через интерфейс и api torrents_info.
Интерфейс плагинов monitorrent, судя по всему, рассчитывает на синхронное завершение операции add_torrent.
В PR добавлена синхронизация: внутри add_torrent после добавления осуществляется поллинг torrents_info до тех пор, пока вновь добавленный торрент не появится, но не более, чем 30 раз с интервалом в 1 секунду.
Исправляет: #350
PS: Если что не так по стилю и т.д. - правьте сразу, я не умею в питон, не знаю как там принято писать и т.д.