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.
@@ -1,7 +1,7 @@
1
1
  qBitrr/__init__.py,sha256=smiPIV7d2lMJ_KTtFdAVlxLEBobFTheILdgry1iqpjQ,405
2
- qBitrr/arss.py,sha256=vMDJp_0Qi3YmYUK49r3kgEgJXG2O_CAXcyDk7XtKYms,305714
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=WaJzCZZoEzZ-aYBlCYFsGDRkRp2bnvZxesQeNduChNI,220
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=lv4y7Ew5xOCFt37koFGdoqQcv6xULZwojt2ne0LmkD4,19976
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=zb9QvWwp2boEglhnm1qaAEiwjH4v9L9BWZNJ-ZRGJZY,95603
19
- qbitrr2-5.3.2.dist-info/licenses/LICENSE,sha256=P978aVGi7dPbKz8lfvdiryOS5IjTAU7AA47XhBhVBlI,1066
20
- qbitrr2-5.3.2.dist-info/METADATA,sha256=xA9pn1QVLttFC9bfZ9lxw2uUfnsHaMddIU3VLEDv8z4,10178
21
- qbitrr2-5.3.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
22
- qbitrr2-5.3.2.dist-info/entry_points.txt,sha256=MIR-l5s31VBs9qlv3HiAaMdpOOyy0MNGfM7Ib1-fKeQ,43
23
- qbitrr2-5.3.2.dist-info/top_level.txt,sha256=jIINodarzsPcQeTf-vvK8-_g7cQ8CvxEg41ms14K97g,7
24
- qbitrr2-5.3.2.dist-info/RECORD,,
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,,
@@ -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
- [![PyPI](https://img.shields.io/pypi/v/qBitrr2?label=PyPI)](https://pypi.org/project/qBitrr2/)
76
- [![Downloads](https://img.shields.io/pypi/dm/qBitrr2)](https://pypi.org/project/qBitrr2/)
77
- [![Docker Pulls](https://img.shields.io/docker/pulls/feramance/qbitrr.svg)](https://hub.docker.com/r/feramance/qbitrr)
78
- [![CodeQL](https://github.com/Feramance/qBitrr/actions/workflows/codeql.yml/badge.svg?branch=master)](https://github.com/Feramance/qBitrr/actions/workflows/codeql.yml)
79
- [![Nightly Build](https://github.com/Feramance/qBitrr/actions/workflows/nightly.yml/badge.svg?branch=master)](https://github.com/Feramance/qBitrr/actions/workflows/nightly.yml)
80
- [![pre-commit.ci](https://results.pre-commit.ci/badge/github/Feramance/qBitrr/master.svg)](https://results.pre-commit.ci/latest/github/Feramance/qBitrr/master)
81
- [![License: MIT](https://img.shields.io/pypi/l/qbitrr)](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).