-
qbit-maid
Stablereleased this
2026-11-03 23:57:51 -06:00 | 0 commits to main since this releaseNotification formatting, a logging overhaul, crond scheduling, and a full test suite.
Added
- Configurable Pushover/Apprise summaries:
format(plain|html),use_emoji,include_hostname,notify_on_empty,priority,sound,retry,expire. Both notifiers share onebuild_summary()builder, so the numbers always agree. - Counters render as
emoji value label, two per line joined by a middle dot — readable in Pushover's proportional font on a phone. docs/notify-preview.pyrenders the real summary as a phone-width PNG.- Log rotation:
log_max_bytes(default 5 MB) andlog_backup_count(default 3). - Healthcheck pings now send
/startwhen a run begins and the success ping when it finishes. [telemetry]section (enable_telemetry,telemetry_outfile) writes one CSV row per candidate torrent.- Gitea Actions CI: unit tests with a 100% coverage gate, Docker image build, and automatic Komodo deploy after the image push.
Changed
- Scheduling moved from supercronic to busybox
crond. The entrypoint appends theCRONjob and an@rebootrun to/etc/crontabs/rootinstead of rewriting/opt/crontab, so container restarts no longer duplicate jobs. - Logging is always on through a named logger (
qbit-maid) writing to both file and console; theuse_logguards around individual log calls are gone. - Docker base image
python:alpine3.18→python:alpine3.23; the image now copies only*.pyandentrypoint.sh. - README rewritten for git.jonb.io, with new Logging and Notifications sections.
Fixed
ignored_tagswas read from[ignored_domains], so tag exclusions never applied.is_ignored_tagmatched substrings instead of whole tags.- API errors during connect now go through
tor_notify_error()instead of a baresend_message. list_first_torno longer indexes an empty torrent list.- Tagging runs once per torrent via
qlist.torrent_tag_for()instead of three passes. AppriseClient.__init__usesos.environ.getguards instead ofos.environ[...].setup_loggingcloses its file handler.
Tests
- 140 unit tests plus 15 Komodo deploy tests, 100% statement coverage (453 statements), enforced in CI.
Upgrade notes
[telemetry]is now required at startup — add the section fromconfig.toml.examplebefore upgrading, or qbit-maid exits withKeyError: 'telemetry'.[ignored_tags]is now actually read; if you relied on[ignored_domains]for tag exclusions, move those entries.- The container now also runs the job once at startup (
@reboot) in addition to theCRONschedule.
Downloads
- Configurable Pushover/Apprise summaries: