qBitrr2 5.6.2__tar.gz → 5.7.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. {qbitrr2-5.6.2/qBitrr2.egg-info → qbitrr2-5.7.0}/PKG-INFO +24 -2
  2. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/README.md +23 -1
  3. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/config.example.toml +36 -0
  4. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/pyproject.toml +1 -1
  5. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/arss.py +237 -88
  6. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/bundled_data.py +2 -2
  7. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/main.py +232 -10
  8. qbitrr2-5.7.0/qBitrr/static/assets/ArrView.js +2 -0
  9. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/ArrView.js.map +1 -1
  10. qbitrr2-5.7.0/qBitrr/static/assets/ConfigView.js +6 -0
  11. qbitrr2-5.7.0/qBitrr/static/assets/ConfigView.js.map +1 -0
  12. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/LogsView.js +1 -1
  13. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/LogsView.js.map +1 -1
  14. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/ProcessesView.js +1 -1
  15. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/ProcessesView.js.map +1 -1
  16. qbitrr2-5.7.0/qBitrr/static/assets/app.js +11 -0
  17. qbitrr2-5.7.0/qBitrr/static/assets/app.js.map +1 -0
  18. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/vendor.js +1 -1
  19. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/vendor.js.map +1 -1
  20. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/tables.py +7 -0
  21. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/webui.py +48 -1
  22. {qbitrr2-5.6.2 → qbitrr2-5.7.0/qBitrr2.egg-info}/PKG-INFO +24 -2
  23. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/setup.cfg +1 -1
  24. qbitrr2-5.6.2/qBitrr/static/assets/ArrView.js +0 -2
  25. qbitrr2-5.6.2/qBitrr/static/assets/ConfigView.js +0 -5
  26. qbitrr2-5.6.2/qBitrr/static/assets/ConfigView.js.map +0 -1
  27. qbitrr2-5.6.2/qBitrr/static/assets/app.js +0 -11
  28. qbitrr2-5.6.2/qBitrr/static/assets/app.js.map +0 -1
  29. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/LICENSE +0 -0
  30. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/MANIFEST.in +0 -0
  31. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/__init__.py +0 -0
  32. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/auto_update.py +0 -0
  33. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/config.py +0 -0
  34. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/config_version.py +0 -0
  35. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/db_lock.py +0 -0
  36. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/db_recovery.py +0 -0
  37. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/env_config.py +0 -0
  38. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/errors.py +0 -0
  39. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/ffprobe.py +0 -0
  40. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/gen_config.py +0 -0
  41. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/home_path.py +0 -0
  42. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/logger.py +0 -0
  43. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/search_activity_store.py +0 -0
  44. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/app.css +0 -0
  45. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/build.svg +0 -0
  46. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/check-mark.svg +0 -0
  47. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/close.svg +0 -0
  48. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/download.svg +0 -0
  49. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/gear.svg +0 -0
  50. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/lidarr.svg +0 -0
  51. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/live-streaming.svg +0 -0
  52. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/log.svg +0 -0
  53. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/logo.svg +0 -0
  54. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/plus.svg +0 -0
  55. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/process.svg +0 -0
  56. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/react-select.esm.js +0 -0
  57. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/react-select.esm.js.map +0 -0
  58. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/refresh-arrow.svg +0 -0
  59. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/table.js +0 -0
  60. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/table.js.map +0 -0
  61. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/trash.svg +0 -0
  62. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/up-arrow.svg +0 -0
  63. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/useInterval.js +0 -0
  64. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/useInterval.js.map +0 -0
  65. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/assets/visibility.svg +0 -0
  66. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/favicon-16x16.png +0 -0
  67. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/favicon-32x32.png +0 -0
  68. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/favicon-48x48.png +0 -0
  69. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/favicon.ico +0 -0
  70. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/icon-192.png +0 -0
  71. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/icon-512.png +0 -0
  72. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/index.html +0 -0
  73. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/logov2-clean.png +0 -0
  74. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/logov2-clean.svg +0 -0
  75. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/manifest.json +0 -0
  76. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/sw.js +0 -0
  77. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/static/vite.svg +0 -0
  78. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/utils.py +0 -0
  79. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr/versioning.py +0 -0
  80. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr2.egg-info/SOURCES.txt +0 -0
  81. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr2.egg-info/dependency_links.txt +0 -0
  82. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr2.egg-info/entry_points.txt +0 -0
  83. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr2.egg-info/requires.txt +0 -0
  84. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/qBitrr2.egg-info/top_level.txt +0 -0
  85. {qbitrr2-5.6.2 → qbitrr2-5.7.0}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qBitrr2
3
- Version: 5.6.2
3
+ Version: 5.7.0
4
4
  Summary: Intelligent automation for qBittorrent and *Arr apps (Radarr/Sonarr/Lidarr) - health monitoring, instant imports, quality upgrades, request integration
5
5
  Home-page: https://github.com/Feramance/qBitrr
6
6
  Author: Feramance
@@ -171,6 +171,7 @@ Access the WebUI at `http://<host>:6969/ui` after startup.
171
171
 
172
172
  ## ✨ Key Features
173
173
 
174
+ - **🚀 Multi-qBittorrent Support (v3.0+)** – Manage torrents across multiple qBittorrent instances for load balancing, redundancy, and VPN isolation
174
175
  - **🚑 Torrent Health Monitoring** – Detect stalled/failed downloads, auto-blacklist, trigger re-searches
175
176
  - **🔍 Automated Search** – Missing media, quality upgrades, custom format scoring
176
177
  - **🎯 Request Integration** – Pull requests from Overseerr/Ombi, prioritize user-requested media
@@ -189,7 +190,6 @@ Access the WebUI at `http://<host>:6969/ui` after startup.
189
190
  Port = 8080
190
191
  UserName = "admin"
191
192
  Password = "adminpass"
192
- Version5 = true # qBittorrent 5.x
193
193
  ```
194
194
 
195
195
  2. **Add Arr instances**:
@@ -206,6 +206,28 @@ Access the WebUI at `http://<host>:6969/ui` after startup.
206
206
  CompletedDownloadFolder = "/path/to/completed"
207
207
  ```
208
208
 
209
+ ### 🆕 Multi-qBittorrent (v3.0+)
210
+
211
+ Manage torrents across multiple qBittorrent instances:
212
+
213
+ ```toml
214
+ [qBit] # Default instance (required)
215
+ Host = "localhost"
216
+ Port = 8080
217
+ UserName = "admin"
218
+ Password = "password"
219
+
220
+ [qBit-seedbox] # Additional instance (optional)
221
+ Host = "192.168.1.100"
222
+ Port = 8080
223
+ UserName = "admin"
224
+ Password = "seedboxpass"
225
+ ```
226
+
227
+ See [Multi-qBittorrent Guide](MULTI_QBIT_V3_USER_GUIDE.md) for complete documentation.
228
+
229
+ ---
230
+
209
231
  See [Configuration Guide](https://feramance.github.io/qBitrr/configuration/) and [config.example.toml](config.example.toml) for all available options.
210
232
 
211
233
  ## 📖 Resources
@@ -67,6 +67,7 @@ Access the WebUI at `http://<host>:6969/ui` after startup.
67
67
 
68
68
  ## ✨ Key Features
69
69
 
70
+ - **🚀 Multi-qBittorrent Support (v3.0+)** – Manage torrents across multiple qBittorrent instances for load balancing, redundancy, and VPN isolation
70
71
  - **🚑 Torrent Health Monitoring** – Detect stalled/failed downloads, auto-blacklist, trigger re-searches
71
72
  - **🔍 Automated Search** – Missing media, quality upgrades, custom format scoring
72
73
  - **🎯 Request Integration** – Pull requests from Overseerr/Ombi, prioritize user-requested media
@@ -85,7 +86,6 @@ Access the WebUI at `http://<host>:6969/ui` after startup.
85
86
  Port = 8080
86
87
  UserName = "admin"
87
88
  Password = "adminpass"
88
- Version5 = true # qBittorrent 5.x
89
89
  ```
90
90
 
91
91
  2. **Add Arr instances**:
@@ -102,6 +102,28 @@ Access the WebUI at `http://<host>:6969/ui` after startup.
102
102
  CompletedDownloadFolder = "/path/to/completed"
103
103
  ```
104
104
 
105
+ ### 🆕 Multi-qBittorrent (v3.0+)
106
+
107
+ Manage torrents across multiple qBittorrent instances:
108
+
109
+ ```toml
110
+ [qBit] # Default instance (required)
111
+ Host = "localhost"
112
+ Port = 8080
113
+ UserName = "admin"
114
+ Password = "password"
115
+
116
+ [qBit-seedbox] # Additional instance (optional)
117
+ Host = "192.168.1.100"
118
+ Port = 8080
119
+ UserName = "admin"
120
+ Password = "seedboxpass"
121
+ ```
122
+
123
+ See [Multi-qBittorrent Guide](MULTI_QBIT_V3_USER_GUIDE.md) for complete documentation.
124
+
125
+ ---
126
+
105
127
  See [Configuration Guide](https://feramance.github.io/qBitrr/configuration/) and [config.example.toml](config.example.toml) for all available options.
106
128
 
107
129
  ## 📖 Resources
@@ -109,6 +109,7 @@ Theme = "Dark"
109
109
 
110
110
 
111
111
  [qBit]
112
+ # Default qBittorrent instance (REQUIRED)
112
113
  # If this is enabled qBitrr can run in headless mode where it will only process searches.
113
114
  # If media search is enabled in their individual categories
114
115
  # This is useful if you use for example Sabnzbd/NZBGet for downloading content but still want the faster media searches provided by qbit
@@ -127,6 +128,41 @@ UserName = "CHANGE_ME"
127
128
  Password = "CHANGE_ME"
128
129
 
129
130
 
131
+ # ============================================================
132
+ # MULTI-QBITTORRENT SUPPORT (v3.0+)
133
+ # ============================================================
134
+ # You can configure multiple qBittorrent instances using the [qBit-NAME] syntax.
135
+ # Each Arr instance will monitor ALL qBit instances for torrents in its category.
136
+ # This allows load balancing, redundancy, and VPN isolation.
137
+ #
138
+ # IMPORTANT: Use dash (-) notation, NOT dot (.) notation!
139
+ # ✅ CORRECT: [qBit-seedbox]
140
+ # ❌ WRONG: [qBit.seedbox]
141
+ #
142
+ # Examples:
143
+ #
144
+ # [qBit-seedbox]
145
+ # Host = "192.168.1.100"
146
+ # Port = 8080
147
+ # UserName = "admin"
148
+ # Password = "seedboxpass"
149
+ #
150
+ # [qBit-vpn]
151
+ # Host = "10.8.0.2"
152
+ # Port = 8080
153
+ # UserName = "admin"
154
+ # Password = "vpnpass"
155
+ #
156
+ # [qBit-remote]
157
+ # Host = "remote.example.com"
158
+ # Port = 8443
159
+ # UserName = "admin"
160
+ # Password = "remotepass"
161
+ #
162
+ # For more information, see: MULTI_QBIT_V3_USER_GUIDE.md
163
+ # ============================================================
164
+
165
+
130
166
  [Sonarr-TV]
131
167
  # Toggle whether to manage the Servarr instance torrents.
132
168
  Managed = true
@@ -28,7 +28,7 @@ target-version = ['py311']
28
28
 
29
29
  [tool.poetry]
30
30
  name = "pypi-public"
31
- version = "5.6.2"
31
+ version = "5.7.0"
32
32
  description = "Intelligent automation for qBittorrent and *Arr apps (Radarr/Sonarr/Lidarr) - health monitoring, instant imports, quality upgrades, request integration"
33
33
  authors = ["Drapersniper", "Feramance"]
34
34
  readme = "README.md"