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

Qbittorrent add torrent fixes (wait for async add) #354

Merged
merged 4 commits into from
Apr 2, 2023

Conversation

LinFor
Copy link

@LinFor LinFor commented Mar 22, 2021

В api qbittorrent процесс добавления нового торрента асинхронный - операция torrents_add завершается раньше, нежели добавленный торрент становится виден через интерфейс и api torrents_info.
Интерфейс плагинов monitorrent, судя по всему, рассчитывает на синхронное завершение операции add_torrent.

В PR добавлена синхронизация: внутри add_torrent после добавления осуществляется поллинг torrents_info до тех пор, пока вновь добавленный торрент не появится, но не более, чем 30 раз с интервалом в 1 секунду.

Исправляет: #350

PS: Если что не так по стилю и т.д. - правьте сразу, я не умею в питон, не знаю как там принято писать и т.д.

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)
Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Я бы конечно предпочёл получать готовый Torrent object снаружи (тем более он там есть), нежели заново парсить. Но это потребует изменения контрактов плагинного api.

@coveralls
Copy link

Coverage Status

Coverage decreased (-0.1%) to 99.376% when pulling f17f5d0 on LinFor:pr_qbittorrent into 871dbac on werwolfby:develop.

@werwolfby
Copy link
Owner

PRе уже почти год 😢 . Надо таки проревьювать и вкатить. И спасибо за фикс! Мне очень стыдно, что я так и не добрался.

@werwolfby werwolfby changed the base branch from develop to release/1.3.0 April 2, 2023 08:06
@codecov-commenter
Copy link

codecov-commenter commented Apr 2, 2023

Codecov Report

Merging #354 (f17f5d0) into release/1.3.0 (5c38f82) will decrease coverage by 0.09%.
The diff coverage is 80.64%.

❗ Current head f17f5d0 differs from pull request most recent head fa79096. Consider uploading reports for the commit fa79096 to get more accurate results

📣 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     
Impacted Files Coverage Δ
monitorrent/plugins/trackers/__init__.py 98.64% <0.00%> (ø)
monitorrent/plugins/clients/qbittorrent.py 95.90% <83.33%> (-4.10%) ⬇️

... and 1 file with indirect coverage changes

📣 We’re building smart automated test selection to slash your CI/CD build times. Learn more

@werwolfby
Copy link
Owner

Я как-то не уверен, что ретрай с поиском торрента в клиенте так уже нам нужен, тем более на 30 попыток.
Но я оставил для надежности. Но уменьшил до 10 попыток. И заменил while True: на for i in range(0, 10): уменьшев на несколько строк этот кусок с повторением.

@werwolfby werwolfby merged commit 217d7b1 into werwolfby:release/1.3.0 Apr 2, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants