Skip to content

v0.3.2

Choose a tag to compare

@Jake-double-one Jake-double-one released this 25 Sep 13:00
· 42 commits to main since this release
7c7b1a0

Important

Set TZ if your AUTO_SYNC_CRON is meant in local time. Until now the schedule was evaluated in UTC, because nothing passed a time zone into the container. Add it under environment: in your compose file or Portainer stack, e.g. TZ: "Europe/Berlin".

Failed runs now say why they failed, the container log gets timestamps and tracebacks, and the autopilot can notify you via Gotify, ntfy or a webhook.

Highlights

  • Notifications for autopilot runs via NOTIFY_URL. Supported are Gotify (gotify:///gotifys://), ntfy (ntfy:///ntfys://) and any http(s):// webhook. The URL formats are the same as in Apprise. NOTIFY_ON picks what's reported: error (a stage failed) and/or changes (new titles badged, scores of your titles changed). Quiet runs send nothing.
  • Failed runs say why. The protocol names the failed stage and the reason in plain words, e.g. "Score database failed: isitwokeornot.com not responding (timeout)". The raw message is one tap away.
  • Container log rebuilt. Every line has a timestamp, level and area, and errors come with their traceback. Each run gets a start and a finished line, and the effective configuration is logged at startup. Tokens and passwords are never logged.
  • Sorting in the filter bar: title, score or release date, ascending or descending, remembered per browser.
  • Next autopilot run shown in the footer.
  • Score changes by name. The protocol lists which of your titles got a new score (Barbie: 72 → 81) and which were badged for the first time.

Changed

  • Autopilot stages fail independently. If isitwokeornot.com is down, the run continues with the scores already known, so new Plex titles still get their badge. Only a failed Plex comparison skips the push.
  • The sitemap fetch retries once on timeouts and server errors. A failed fetch no longer uses up the cooldown.
  • Log messages are always in English, whatever LANGUAGE is set to, so they can be searched and shared as they are. LOG_LEVEL=DEBUG adds a line per title.
  • The delta in matched titles now compares against the last run that counted them.

Fixed

  • A failed autopilot run looked like a quiet one. A run that died in the first stage showed "no changes", indistinguishable from a healthy run.
  • Errors from the buttons weren't logged at all. They were only kept in the browser session.
  • The cron schedule ran on UTC. See the note at the top.
  • Possible loss of cached posters. A Plex connection error while listing the libraries was treated as "library not found". With every library skipped, the orphan cleanup would have deleted every cached poster. Connection errors now fail the stage, and the cleanup is skipped whenever Plex returns no titles.
  • A library name Plex doesn't know is now logged, together with the names it does know.
  • Titles and error messages are HTML-escaped in the grid and the protocol.

Setup examples

    environment:
      TZ: "Europe/Berlin"
      NOTIFY_URL: "gotifys://gotify.example.com/APP_TOKEN"
      NOTIFY_ON: "error,changes"   # default
      LOG_LEVEL: "INFO"            # default

Send a test notification with:

docker exec wokearr python notify.py

Full changelog: CHANGELOG.md · Compare v0.3.1...v0.3.2