qBitrr2 5.6.2__tar.gz → 5.7.1__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.
- {qbitrr2-5.6.2/qBitrr2.egg-info → qbitrr2-5.7.1}/PKG-INFO +24 -2
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/README.md +23 -1
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/config.example.toml +48 -16
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/pyproject.toml +1 -1
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/arss.py +653 -158
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/bundled_data.py +2 -2
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/config.py +1 -1
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/gen_config.py +84 -41
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/main.py +448 -16
- qbitrr2-5.7.1/qBitrr/static/assets/ArrView.js +2 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/ArrView.js.map +1 -1
- qbitrr2-5.7.1/qBitrr/static/assets/ConfigView.js +6 -0
- qbitrr2-5.7.1/qBitrr/static/assets/ConfigView.js.map +1 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/LogsView.js +1 -1
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/LogsView.js.map +1 -1
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/ProcessesView.js +1 -1
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/ProcessesView.js.map +1 -1
- qbitrr2-5.7.1/qBitrr/static/assets/app.js +11 -0
- qbitrr2-5.7.1/qBitrr/static/assets/app.js.map +1 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/vendor.js +1 -1
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/vendor.js.map +1 -1
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/tables.py +7 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/webui.py +48 -1
- {qbitrr2-5.6.2 → qbitrr2-5.7.1/qBitrr2.egg-info}/PKG-INFO +24 -2
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/setup.cfg +1 -1
- qbitrr2-5.6.2/qBitrr/static/assets/ArrView.js +0 -2
- qbitrr2-5.6.2/qBitrr/static/assets/ConfigView.js +0 -5
- qbitrr2-5.6.2/qBitrr/static/assets/ConfigView.js.map +0 -1
- qbitrr2-5.6.2/qBitrr/static/assets/app.js +0 -11
- qbitrr2-5.6.2/qBitrr/static/assets/app.js.map +0 -1
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/LICENSE +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/MANIFEST.in +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/__init__.py +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/auto_update.py +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/config_version.py +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/db_lock.py +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/db_recovery.py +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/env_config.py +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/errors.py +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/ffprobe.py +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/home_path.py +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/logger.py +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/search_activity_store.py +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/app.css +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/build.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/check-mark.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/close.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/download.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/gear.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/lidarr.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/live-streaming.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/log.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/logo.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/plus.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/process.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/react-select.esm.js +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/react-select.esm.js.map +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/refresh-arrow.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/table.js +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/table.js.map +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/trash.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/up-arrow.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/useInterval.js +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/useInterval.js.map +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/assets/visibility.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/favicon-16x16.png +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/favicon-32x32.png +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/favicon-48x48.png +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/favicon.ico +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/icon-192.png +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/icon-512.png +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/index.html +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/logov2-clean.png +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/logov2-clean.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/manifest.json +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/sw.js +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/static/vite.svg +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/utils.py +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr/versioning.py +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr2.egg-info/SOURCES.txt +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr2.egg-info/dependency_links.txt +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr2.egg-info/entry_points.txt +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr2.egg-info/requires.txt +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/qBitrr2.egg-info/top_level.txt +0 -0
- {qbitrr2-5.6.2 → qbitrr2-5.7.1}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: qBitrr2
|
|
3
|
-
Version: 5.
|
|
3
|
+
Version: 5.7.1
|
|
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: docs/advanced/multi-qbittorrent.md
|
|
163
|
+
# ============================================================
|
|
164
|
+
|
|
165
|
+
|
|
130
166
|
[Sonarr-TV]
|
|
131
167
|
# Toggle whether to manage the Servarr instance torrents.
|
|
132
168
|
Managed = true
|
|
@@ -180,10 +216,10 @@ SearchByYear = true
|
|
|
180
216
|
# Reverse search order (Start searching oldest to newest)
|
|
181
217
|
SearchInReverse = false
|
|
182
218
|
|
|
183
|
-
# Delay between
|
|
219
|
+
# Delay (in seconds) between checking for new Overseerr/Ombi requests. Does NOT affect delay between individual search commands (use Settings.SearchLoopDelay for that).
|
|
184
220
|
SearchRequestsEvery = 300
|
|
185
221
|
|
|
186
|
-
# Search
|
|
222
|
+
# Search media which already have a file in hopes of finding a better quality version.
|
|
187
223
|
DoUpgradeSearch = false
|
|
188
224
|
|
|
189
225
|
# Do a quality unmet search for existing entries.
|
|
@@ -426,10 +462,10 @@ SearchByYear = true
|
|
|
426
462
|
# Reverse search order (Start searching oldest to newest)
|
|
427
463
|
SearchInReverse = false
|
|
428
464
|
|
|
429
|
-
# Delay between
|
|
465
|
+
# Delay (in seconds) between checking for new Overseerr/Ombi requests. Does NOT affect delay between individual search commands (use Settings.SearchLoopDelay for that).
|
|
430
466
|
SearchRequestsEvery = 300
|
|
431
467
|
|
|
432
|
-
# Search
|
|
468
|
+
# Search media which already have a file in hopes of finding a better quality version.
|
|
433
469
|
DoUpgradeSearch = false
|
|
434
470
|
|
|
435
471
|
# Do a quality unmet search for existing entries.
|
|
@@ -651,8 +687,6 @@ ArrErrorCodesToBlocklist = ["Not an upgrade for existing movie file(s)", "Not a
|
|
|
651
687
|
|
|
652
688
|
|
|
653
689
|
[Radarr-1080.EntrySearch]
|
|
654
|
-
# All these settings depends on SearchMissing being True
|
|
655
|
-
|
|
656
690
|
# Should search for Missing files?
|
|
657
691
|
SearchMissing = true
|
|
658
692
|
|
|
@@ -665,16 +699,16 @@ Unmonitored = false
|
|
|
665
699
|
# That being said I've been daily driving 10 simultaneous tasks for quite a while now with no issues.
|
|
666
700
|
SearchLimit = 5
|
|
667
701
|
|
|
668
|
-
# It will order searches by the year the
|
|
702
|
+
# It will order searches by the year the movie was released
|
|
669
703
|
SearchByYear = true
|
|
670
704
|
|
|
671
705
|
# Reverse search order (Start searching oldest to newest)
|
|
672
706
|
SearchInReverse = false
|
|
673
707
|
|
|
674
|
-
# Delay between
|
|
708
|
+
# Delay (in seconds) between checking for new Overseerr/Ombi requests. Does NOT affect delay between individual search commands (use Settings.SearchLoopDelay for that).
|
|
675
709
|
SearchRequestsEvery = 300
|
|
676
710
|
|
|
677
|
-
# Search
|
|
711
|
+
# Search media which already have a file in hopes of finding a better quality version.
|
|
678
712
|
DoUpgradeSearch = false
|
|
679
713
|
|
|
680
714
|
# Do a quality unmet search for existing entries.
|
|
@@ -927,8 +961,6 @@ ArrErrorCodesToBlocklist = ["Not an upgrade for existing movie file(s)", "Not a
|
|
|
927
961
|
|
|
928
962
|
|
|
929
963
|
[Radarr-4K.EntrySearch]
|
|
930
|
-
# All these settings depends on SearchMissing being True
|
|
931
|
-
|
|
932
964
|
# Should search for Missing files?
|
|
933
965
|
SearchMissing = true
|
|
934
966
|
|
|
@@ -941,16 +973,16 @@ Unmonitored = false
|
|
|
941
973
|
# That being said I've been daily driving 10 simultaneous tasks for quite a while now with no issues.
|
|
942
974
|
SearchLimit = 5
|
|
943
975
|
|
|
944
|
-
# It will order searches by the year the
|
|
976
|
+
# It will order searches by the year the movie was released
|
|
945
977
|
SearchByYear = true
|
|
946
978
|
|
|
947
979
|
# Reverse search order (Start searching oldest to newest)
|
|
948
980
|
SearchInReverse = false
|
|
949
981
|
|
|
950
|
-
# Delay between
|
|
982
|
+
# Delay (in seconds) between checking for new Overseerr/Ombi requests. Does NOT affect delay between individual search commands (use Settings.SearchLoopDelay for that).
|
|
951
983
|
SearchRequestsEvery = 300
|
|
952
984
|
|
|
953
|
-
# Search
|
|
985
|
+
# Search media which already have a file in hopes of finding a better quality version.
|
|
954
986
|
DoUpgradeSearch = false
|
|
955
987
|
|
|
956
988
|
# Do a quality unmet search for existing entries.
|
|
@@ -1212,10 +1244,10 @@ SearchMissing = true
|
|
|
1212
1244
|
# Reverse search order (Start searching oldest to newest)
|
|
1213
1245
|
SearchInReverse = false
|
|
1214
1246
|
|
|
1215
|
-
# Delay between
|
|
1247
|
+
# Delay (in seconds) between checking for new Overseerr/Ombi requests. Does NOT affect delay between individual search commands (use Settings.SearchLoopDelay for that).
|
|
1216
1248
|
SearchRequestsEvery = 300
|
|
1217
1249
|
|
|
1218
|
-
# Search
|
|
1250
|
+
# Search media which already have a file in hopes of finding a better quality version.
|
|
1219
1251
|
DoUpgradeSearch = false
|
|
1220
1252
|
|
|
1221
1253
|
# Do a quality unmet search for existing entries.
|
|
@@ -28,7 +28,7 @@ target-version = ['py311']
|
|
|
28
28
|
|
|
29
29
|
[tool.poetry]
|
|
30
30
|
name = "pypi-public"
|
|
31
|
-
version = "5.
|
|
31
|
+
version = "5.7.1"
|
|
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"
|