qBitrr2 5.3.2__py3-none-any.whl → 5.4.0__py3-none-any.whl
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.
- qBitrr/arss.py +18 -15
- qBitrr/bundled_data.py +2 -2
- qBitrr/main.py +49 -2
- qBitrr/webui.py +335 -65
- qbitrr2-5.4.0.dist-info/METADATA +911 -0
- {qbitrr2-5.3.2.dist-info → qbitrr2-5.4.0.dist-info}/RECORD +10 -10
- qbitrr2-5.3.2.dist-info/METADATA +0 -231
- {qbitrr2-5.3.2.dist-info → qbitrr2-5.4.0.dist-info}/WHEEL +0 -0
- {qbitrr2-5.3.2.dist-info → qbitrr2-5.4.0.dist-info}/entry_points.txt +0 -0
- {qbitrr2-5.3.2.dist-info → qbitrr2-5.4.0.dist-info}/licenses/LICENSE +0 -0
- {qbitrr2-5.3.2.dist-info → qbitrr2-5.4.0.dist-info}/top_level.txt +0 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
qBitrr/__init__.py,sha256=smiPIV7d2lMJ_KTtFdAVlxLEBobFTheILdgry1iqpjQ,405
|
|
2
|
-
qBitrr/arss.py,sha256=
|
|
2
|
+
qBitrr/arss.py,sha256=L5ujj2YVL41C0D-htHeUAOWykYUM3OBX_e2T8QFUiqg,306039
|
|
3
3
|
qBitrr/auto_update.py,sha256=hVAvAlKEdOHm6AJLlKvtkklbQhjotVcFOCH-MTigHQM,4419
|
|
4
|
-
qBitrr/bundled_data.py,sha256=
|
|
4
|
+
qBitrr/bundled_data.py,sha256=dlW_ofOcv7cfwdRgkpuSqz3okAUJXjf2KSMC4L9wlQE,221
|
|
5
5
|
qBitrr/config.py,sha256=e_UL8Jjz2hWAhT53Du8XZpvyY4ULC5mpyus_7i2An18,6306
|
|
6
6
|
qBitrr/db_lock.py,sha256=SRCDIoqg-AFLU-VDChAmGdfx8nhgLGETn6XKF3RdJT4,2449
|
|
7
7
|
qBitrr/env_config.py,sha256=299u_uEoyxlM_ceTD0Z_i41JdYjSHmqO6FKe7qGFgTM,2866
|
|
@@ -10,15 +10,15 @@ qBitrr/ffprobe.py,sha256=2IM0iuPPTEb0xHmN1OetQoBd80-Nmv5Oq7P6o-mjBd0,4019
|
|
|
10
10
|
qBitrr/gen_config.py,sha256=m14KIAgoXgJ3T2uQxErwz8AzEKLanndaxly85C4HZ1M,36903
|
|
11
11
|
qBitrr/home_path.py,sha256=zvBheAR2xvr8LBZRk1FyqfnALE-eFzsY9CyqyZDjxiE,626
|
|
12
12
|
qBitrr/logger.py,sha256=f3LNcvl4lizTxQMXjFzv5urpPbUYEkaSGVGFP39cNbk,9005
|
|
13
|
-
qBitrr/main.py,sha256=
|
|
13
|
+
qBitrr/main.py,sha256=xi-jzN7klPl_FkctqXA2g-_-qNy4px4ELNDDv9QscXo,21746
|
|
14
14
|
qBitrr/search_activity_store.py,sha256=_7MD7fFna4uTSo_pRT7DqoytSVz7tPoU9D2AV2mn-oc,2474
|
|
15
15
|
qBitrr/tables.py,sha256=cumrb5aqJ0Uufu2biDPCIgu1_TP0hlHVi7dgAQKK_bM,3969
|
|
16
16
|
qBitrr/utils.py,sha256=T10win016yHwMMJlJ4yuPTRUI9m-AS_a_MouiAJAtC8,8190
|
|
17
17
|
qBitrr/versioning.py,sha256=00um_zKic8mMrNZ7IHEUPx4ju5Yi_TWCgZxl81IfMaM,3362
|
|
18
|
-
qBitrr/webui.py,sha256=
|
|
19
|
-
qbitrr2-5.
|
|
20
|
-
qbitrr2-5.
|
|
21
|
-
qbitrr2-5.
|
|
22
|
-
qbitrr2-5.
|
|
23
|
-
qbitrr2-5.
|
|
24
|
-
qbitrr2-5.
|
|
18
|
+
qBitrr/webui.py,sha256=ikZ8GeGE6xRld7ijR1JTzCiR-ec-D74mJofACoibXOc,106236
|
|
19
|
+
qbitrr2-5.4.0.dist-info/licenses/LICENSE,sha256=P978aVGi7dPbKz8lfvdiryOS5IjTAU7AA47XhBhVBlI,1066
|
|
20
|
+
qbitrr2-5.4.0.dist-info/METADATA,sha256=zxsHEvC6NAvipe8vBeWGocPaqqk-NXeXR6e0npn6P1o,33177
|
|
21
|
+
qbitrr2-5.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
22
|
+
qbitrr2-5.4.0.dist-info/entry_points.txt,sha256=MIR-l5s31VBs9qlv3HiAaMdpOOyy0MNGfM7Ib1-fKeQ,43
|
|
23
|
+
qbitrr2-5.4.0.dist-info/top_level.txt,sha256=jIINodarzsPcQeTf-vvK8-_g7cQ8CvxEg41ms14K97g,7
|
|
24
|
+
qbitrr2-5.4.0.dist-info/RECORD,,
|
qbitrr2-5.3.2.dist-info/METADATA
DELETED
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
Metadata-Version: 2.4
|
|
2
|
-
Name: qBitrr2
|
|
3
|
-
Version: 5.3.2
|
|
4
|
-
Summary: "A simple Python script to talk to qBittorrent and Arr's"
|
|
5
|
-
Home-page: https://github.com/Feramance/qBitrr
|
|
6
|
-
Author: Feramance
|
|
7
|
-
Author-email: fera@fera.wtf
|
|
8
|
-
License: MIT
|
|
9
|
-
Project-URL: Issue Tracker, https://github.com/Feramance/qBitrr/issues
|
|
10
|
-
Project-URL: Source Code, https://github.com/Feramance/qBitrr
|
|
11
|
-
Classifier: Development Status :: 5 - Production/Stable
|
|
12
|
-
Classifier: Intended Audience :: Developers
|
|
13
|
-
Classifier: Intended Audience :: End Users/Desktop
|
|
14
|
-
Classifier: License :: OSI Approved :: MIT License
|
|
15
|
-
Classifier: Natural Language :: English
|
|
16
|
-
Classifier: Operating System :: MacOS :: MacOS X
|
|
17
|
-
Classifier: Operating System :: Microsoft :: Windows
|
|
18
|
-
Classifier: Operating System :: POSIX :: Linux
|
|
19
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
21
|
-
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
22
|
-
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
23
|
-
Classifier: Topic :: Terminals
|
|
24
|
-
Classifier: Topic :: Utilities
|
|
25
|
-
Classifier: Typing :: Typed
|
|
26
|
-
Requires-Python: <4,>=3.12
|
|
27
|
-
Description-Content-Type: text/markdown
|
|
28
|
-
License-File: LICENSE
|
|
29
|
-
Requires-Dist: cachetools
|
|
30
|
-
Requires-Dist: colorama
|
|
31
|
-
Requires-Dist: coloredlogs
|
|
32
|
-
Requires-Dist: flask
|
|
33
|
-
Requires-Dist: environ-config
|
|
34
|
-
Requires-Dist: ffmpeg-python
|
|
35
|
-
Requires-Dist: jaraco.docker
|
|
36
|
-
Requires-Dist: packaging
|
|
37
|
-
Requires-Dist: pathos
|
|
38
|
-
Requires-Dist: peewee
|
|
39
|
-
Requires-Dist: ping3
|
|
40
|
-
Requires-Dist: pyarr
|
|
41
|
-
Requires-Dist: qbittorrent-api
|
|
42
|
-
Requires-Dist: requests
|
|
43
|
-
Requires-Dist: tomlkit
|
|
44
|
-
Requires-Dist: waitress
|
|
45
|
-
Requires-Dist: croniter
|
|
46
|
-
Provides-Extra: dev
|
|
47
|
-
Requires-Dist: black==24.3.0; extra == "dev"
|
|
48
|
-
Requires-Dist: bump2version==1.0.1; extra == "dev"
|
|
49
|
-
Requires-Dist: isort==5.10.1; extra == "dev"
|
|
50
|
-
Requires-Dist: pip-tools==7.3.0; extra == "dev"
|
|
51
|
-
Requires-Dist: pre-commit==3.3.3; extra == "dev"
|
|
52
|
-
Requires-Dist: pyinstaller==5.13.1; extra == "dev"
|
|
53
|
-
Requires-Dist: pyupgrade==2.31.0; extra == "dev"
|
|
54
|
-
Requires-Dist: twine==3.7.1; extra == "dev"
|
|
55
|
-
Requires-Dist: ujson==5.10.0; extra == "dev"
|
|
56
|
-
Requires-Dist: upgrade-pip==0.1.4; extra == "dev"
|
|
57
|
-
Provides-Extra: fast
|
|
58
|
-
Requires-Dist: ujson==5.10.0; extra == "fast"
|
|
59
|
-
Provides-Extra: all
|
|
60
|
-
Requires-Dist: black==24.3.0; extra == "all"
|
|
61
|
-
Requires-Dist: bump2version==1.0.1; extra == "all"
|
|
62
|
-
Requires-Dist: isort==5.10.1; extra == "all"
|
|
63
|
-
Requires-Dist: pip-tools==7.3.0; extra == "all"
|
|
64
|
-
Requires-Dist: pre-commit==3.3.3; extra == "all"
|
|
65
|
-
Requires-Dist: pyinstaller==5.13.1; extra == "all"
|
|
66
|
-
Requires-Dist: pyupgrade==2.31.0; extra == "all"
|
|
67
|
-
Requires-Dist: twine==3.7.1; extra == "all"
|
|
68
|
-
Requires-Dist: ujson==5.10.0; extra == "all"
|
|
69
|
-
Requires-Dist: upgrade-pip==0.1.4; extra == "all"
|
|
70
|
-
Requires-Dist: ujson==5.10.0; extra == "all"
|
|
71
|
-
Dynamic: license-file
|
|
72
|
-
|
|
73
|
-
# qBitrr
|
|
74
|
-
|
|
75
|
-
[](https://pypi.org/project/qBitrr2/)
|
|
76
|
-
[](https://pypi.org/project/qBitrr2/)
|
|
77
|
-
[](https://hub.docker.com/r/feramance/qbitrr)
|
|
78
|
-
[](https://github.com/Feramance/qBitrr/actions/workflows/codeql.yml)
|
|
79
|
-
[](https://github.com/Feramance/qBitrr/actions/workflows/nightly.yml)
|
|
80
|
-
[](https://results.pre-commit.ci/latest/github/Feramance/qBitrr/master)
|
|
81
|
-
[](LICENSE)
|
|
82
|
-
|
|
83
|
-
> 🧩 qBitrr keeps qBittorrent, Radarr, Sonarr, Lidarr, and your request tools chatting happily so downloads finish, import, and clean up without babysitting.
|
|
84
|
-
|
|
85
|
-
## 📚 What's Inside
|
|
86
|
-
- [Overview](#-overview)
|
|
87
|
-
- [Highlights](#-highlights)
|
|
88
|
-
- [State of the Project](#-state-of-the-project)
|
|
89
|
-
- [Quickstart](#-quickstart)
|
|
90
|
-
- [Install with pip](#install-with-pip)
|
|
91
|
-
- [Run with Docker](#run-with-docker)
|
|
92
|
-
- [Configuration](#-configuration)
|
|
93
|
-
- [Built-in Web UI](#-built-in-web-ui)
|
|
94
|
-
- [Day-to-day Ops](#-day-to-day-ops)
|
|
95
|
-
- [Troubleshooting](#-troubleshooting)
|
|
96
|
-
- [Contributing](#-contributing)
|
|
97
|
-
- [Support](#-support)
|
|
98
|
-
- [License](#-license)
|
|
99
|
-
|
|
100
|
-
## 🧠 Overview
|
|
101
|
-
qBitrr is the glue that keeps the *Arr ecosystem tidy. It watches qBittorrent for stalled jobs, kicks Radarr/Sonarr/Lidarr when something finishes, prunes your completed folder, and even offers a slick React dashboard so you can see what's running at a glance.
|
|
102
|
-
|
|
103
|
-
## ✨ Highlights
|
|
104
|
-
- 🚑 **Health checks** – spot stalled or broken torrents, blacklist them on the relevant Arr, and optionally trigger a re-search.
|
|
105
|
-
- 📬 **Instant imports** – call `DownloadedMoviesScan` and `DownloadedEpisodesScan` the moment qBittorrent is done.
|
|
106
|
-
- 🧹 **Smart skips & cleanup** – ignore by extension, folder, or regex and keep completed downloads tidy.
|
|
107
|
-
- 🔍 **ffprobe verification** – confirm files are real media before handing them off.
|
|
108
|
-
- 🔄 **Arr keep-alive** – schedule RSS refreshes, queue updates, missing-media searches, CF-score rescans, and more.
|
|
109
|
-
- 🛰️ **Request automation** – pull in Overseerr/Ombi asks and auto-manage trackers.
|
|
110
|
-
- 💾 **Disk guard rails** – pause torrenting when free space dips under your threshold.
|
|
111
|
-
- 💻 **First-party Web UI** – live process monitoring, log tails, Arr insights, and config edits in one place.
|
|
112
|
-
|
|
113
|
-
## 📌 State of the Project
|
|
114
|
-
The long-term plan is still to ship a C# rewrite, but the Python edition isn't going anywhere—it gets regular fixes and features, and the Web UI is now production-ready. Ideas and PRs are welcome! Head over to the [issue templates](.github/ISSUE_TEMPLATE) or the [PR checklist](.github/pull_request_template.md) to get started.
|
|
115
|
-
|
|
116
|
-
## ⚡ Quickstart
|
|
117
|
-
qBitrr supports Python 3.12+ on Linux, macOS, and Windows. Run it natively or in Docker—whatever fits your stack.
|
|
118
|
-
|
|
119
|
-
### Install with pip
|
|
120
|
-
```bash
|
|
121
|
-
python -m venv .venv
|
|
122
|
-
source .venv/bin/activate # Windows: .venv\Scripts\activate
|
|
123
|
-
python -m pip install --upgrade pip
|
|
124
|
-
python -m pip install qBitrr2
|
|
125
|
-
|
|
126
|
-
# First run creates ~/config/config.toml
|
|
127
|
-
qBitrr2
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
Update later with:
|
|
131
|
-
```bash
|
|
132
|
-
python -m pip install --upgrade qBitrr2
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
### Run with Docker
|
|
136
|
-
Minimal setup:
|
|
137
|
-
```bash
|
|
138
|
-
docker run -d \
|
|
139
|
-
--name qbitrr \
|
|
140
|
-
--tty \
|
|
141
|
-
-e TZ=Europe/London \
|
|
142
|
-
-p 6969:6969 \
|
|
143
|
-
-v /etc/localtime:/etc/localtime:ro \
|
|
144
|
-
-v /path/to/appdata/qbitrr:/config \
|
|
145
|
-
-v /path/to/completed/downloads:/completed_downloads:rw \
|
|
146
|
-
--restart unless-stopped \
|
|
147
|
-
feramance/qbitrr:latest
|
|
148
|
-
```
|
|
149
|
-
|
|
150
|
-
The container automatically binds its WebUI to `0.0.0.0`; exposing `6969` makes the dashboard reachable at `http://<host>:6969/ui`.
|
|
151
|
-
|
|
152
|
-
Compose example with a little more structure:
|
|
153
|
-
```yaml
|
|
154
|
-
services:
|
|
155
|
-
qbitrr:
|
|
156
|
-
image: feramance/qbitrr:latest
|
|
157
|
-
user: 1000:1000
|
|
158
|
-
restart: unless-stopped
|
|
159
|
-
tty: true
|
|
160
|
-
environment:
|
|
161
|
-
TZ: Europe/London
|
|
162
|
-
ports:
|
|
163
|
-
- "6969:6969"
|
|
164
|
-
volumes:
|
|
165
|
-
- /etc/localtime:/etc/localtime:ro
|
|
166
|
-
- /path/to/appdata/qbitrr:/config
|
|
167
|
-
- /path/to/completed/downloads:/completed_downloads:rw
|
|
168
|
-
logging:
|
|
169
|
-
driver: json-file
|
|
170
|
-
options:
|
|
171
|
-
max-size: 50m
|
|
172
|
-
max-file: "3"
|
|
173
|
-
depends_on:
|
|
174
|
-
- qbittorrent
|
|
175
|
-
- radarr-1080p
|
|
176
|
-
- sonarr-1080p
|
|
177
|
-
```
|
|
178
|
-
|
|
179
|
-
> ℹ️ On first boot the container writes `config.toml` under `/config`. Update the values to match your mounts and restart the container.
|
|
180
|
-
|
|
181
|
-
## 🛠️ Configuration
|
|
182
|
-
- Default config path: `~/config/config.toml` (native) or `/config/config.toml` (Docker).
|
|
183
|
-
- Tag new downloads in Radarr/Sonarr/Lidarr so qBitrr can map them correctly.
|
|
184
|
-
- qBittorrent 5.x works via a config flag (will become default later). The latest validated build is **4.6.7**.
|
|
185
|
-
- Turn on logging (`Settings.Logging = true`) when you need support—logs land in `~/logs/` or `/config/logs`.
|
|
186
|
-
|
|
187
|
-
See `config.example.toml` for every knob and dial.
|
|
188
|
-
|
|
189
|
-
## 🖥️ Built-in Web UI
|
|
190
|
-
The React + Vite dashboard listens on `http://<host>:6969/ui` by default.
|
|
191
|
-
|
|
192
|
-
- 🔐 **Authentication** – set `Settings.WebUIToken` to protect `/api/*`. The UI itself uses the `/web/*` helpers.
|
|
193
|
-
- 🗂️ **Tabs** – Processes, Logs, Radarr, Sonarr, Lidarr, and Config—all live data, all actionable.
|
|
194
|
-
- 🧪 **Developing the UI** – the source lives in `webui/`. Run `npm ci && npm run dev` to hack locally, and `npm run build` (or `make syncenv`) before committing so the bundled assets stay current.
|
|
195
|
-
|
|
196
|
-
## 🔁 Day-to-day Ops
|
|
197
|
-
- ♻️ Rebuild Arr metadata via "Rebuild Arrs" in the UI or `POST /api/arr/rebuild`.
|
|
198
|
-
- 🔁 Restart individual loops or slam the "Restart All" button when something is stuck.
|
|
199
|
-
- 📬 Overseerr/Ombi integration pulls new requests automatically once configured.
|
|
200
|
-
- 🗃️ Logs roll into `~/logs/` (think `Main.log`, `WebUI.log`, etc.)—view them in the UI or right off disk.
|
|
201
|
-
|
|
202
|
-
## 🆘 Troubleshooting
|
|
203
|
-
1. Enable file logging, reproduce the issue, and grab the relevant snippets (scrub secrets).
|
|
204
|
-
2. Open the [bug report template](.github/ISSUE_TEMPLATE/bug_report.yml). Include:
|
|
205
|
-
- qBitrr version (`qBitrr2 --version` or Docker tag)
|
|
206
|
-
- OS / deployment details
|
|
207
|
-
- qBittorrent + Arr versions (and request tools if used)
|
|
208
|
-
- Reproduction steps and what you expected to happen
|
|
209
|
-
3. For feature ideas, hop over to the [feature request template](.github/ISSUE_TEMPLATE/feature_request.yml).
|
|
210
|
-
|
|
211
|
-
## 🤝 Contributing
|
|
212
|
-
We'd love your help! Before opening a PR:
|
|
213
|
-
- Read the [pull request template](.github/pull_request_template.md).
|
|
214
|
-
- Run `make lint` or `pre-commit run --all-files` for Python changes; `npm run lint` for UI code.
|
|
215
|
-
- Add or update tests when behaviour changes.
|
|
216
|
-
- Mention docs or release notes updates if users should know about the change.
|
|
217
|
-
|
|
218
|
-
Unsure whether an idea fits? File a feature request first and we'll chat.
|
|
219
|
-
|
|
220
|
-
## ❤️ Support
|
|
221
|
-
- ⭐ Star the repo to spread the word.
|
|
222
|
-
- 🐛 Report issues with logs attached so we can fix them faster.
|
|
223
|
-
- 🛠️ Contribute code, docs, translations—whatever you enjoy.
|
|
224
|
-
- ☕ Sponsor development:
|
|
225
|
-
- [Patreon](https://patreon.com/qBitrr)
|
|
226
|
-
- [PayPal](https://www.paypal.me/feramance)
|
|
227
|
-
|
|
228
|
-
Every bit of support keeps qBitrr humming—thanks for being here!
|
|
229
|
-
|
|
230
|
-
## 📄 License
|
|
231
|
-
qBitrr is released under the [MIT License](LICENSE).
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|