Skip to content

Releases: loafdaddy/discoverr-bot

Discoverr 3.1.1

Choose a tag to compare

@loafdaddy loafdaddy released this 26 Jul 01:32

Summary

Small discovery-run optimizations — fewer Seerr lookups per pick, parallel TMDb category fetches, cached watch-provider lists.

Highlights

  • Cap Seerr availability checks to a modest sample pool (keeps mid-list bias, skips scanning every discover hit)
  • Fetch movie / TV / trending / new / hidden candidate pools in parallel before sequential selection
  • Cache TMDb watch-provider lists per region; resolve configured streaming services concurrently
  • Parallel day + week trending page fetches
  • Unit coverage for Seerr pool capping and AVAILABLE skip behaviour

Upgrade from 3.1.0

git pull
docker compose up -d --build

No config or env changes.

Install

Follow SETUP.md.

Known gaps: see TODO.md

Discoverr 3.1.0 — Optional settings clarified

Choose a tag to compare

@loafdaddy loafdaddy released this 23 Jul 10:32

Summary

Restores the simple .env-first install path. Optional data/settings.json is only for extra post configuration, with # comments on every setting so it is easy to edit.

Highlights

  • Full .env.example restored (same style as 2.x) — channels, schedule, region, streaming list, secrets
  • settings.json is never required; missing file uses built-in defaults
  • Commented settings.example.json (# / // supported) for post counts, quotas, TV in streaming, memory, dry-run
  • SETUP is step-by-step again; extra post config is step 8 at the end
  • Docs scrubbed so settings do not feel mandatory

Upgrade from 3.0.0 / 2.x

git pull
docker compose up -d --build

Keep your .env. Add data/settings.json only if you want extra configuration for posts.

Install

Follow SETUP.md: fill .env from .env.example.

Notes

Parts of this release may have been written or edited with AI assistance. The maintainer remains responsible for what ships.

Discoverr 3.0.0

Choose a tag to compare

@loafdaddy loafdaddy released this 23 Jul 10:02

Discoverr 3.0.0 — Config Update

Operator settings move to durable data/settings.json. Secrets stay in .env. Existing .env files keep working without edits.

Highlights

  • data/settings.json on the Compose volume — channels, schedule, post counts, streaming mix, memory, dry-run (survives image upgrades)
  • Secrets-only .envDISCORD_TOKEN, TMDB_API_KEY, SEERR_*
  • Env migration bridge — if settings.json is missing, previous non-secret env vars still apply
  • Per-category post counts (1–3) and optional streaming quotas
  • TV in New on Streaming (streaming.includeTv, default true)
  • Dual memory TTLssuggestedTtlDays / requestedTtlDays; Request button writes requestedAt
  • discovery.dryRun — log picks without Discord posts
  • Clearer startup validation for invalid settings

Your .env is safe

  • Do not delete or rewrite your existing .env to upgrade
  • Required secrets are unchanged
  • Non-secret keys in .env still work until you move them into settings.json

Behaviour change

Without a settings file, New on Streaming includes TV by default. For 2.x movies-only behaviour, set "streaming": { "includeTv": false } in data/settings.json.

Upgrade from 2.x

git pull
docker compose up -d --build

Optional: adopt settings.example.jsondata/settings.json when you want the new knobs. Full steps: SETUP.md — Upgrading to 3.0.0 · Editing settings

Install (new)

Follow SETUP.md: secrets in .env, copy settings.example.jsondata/settings.json.

Docs

Parts of this release were prepared with AI assistance.

Discoverr 2.2.0

Choose a tag to compare

@loafdaddy loafdaddy released this 21 Jul 00:01

Highlights

  • New on streaming no longer posts three titles from a single provider each day
  • Daily post mixes up to 3 titles across a shuffled set of configured STREAMING_SERVICES (different services when possible)
  • Each embed still uses New or popular on {service} for that title’s provider
  • Better “new” preference within TMDb limits: local data/streaming-catalog.json tracks first-seen membership per region/provider (TMDb has no official “added to Netflix” date)
  • Cold start seeds the catalog without treating the whole discover page as new; falls back to available/popular when the new window is thin
  • Unit tests for slot diversity and catalog first-seen behaviour

How it works

  1. Resolve configured provider names for WATCH_REGION via TMDb
  2. Shuffle and fill three slots, preferring distinct services
  3. For each slot, fetch /discover/movie with with_watch_providers + flatrate
  4. Prefer titles newly first-seen in the local catalog (≈21-day window), else the usual available pool
  5. Post one Discord message with up to three embeds

Upgrade from 2.1.0

git pull
docker compose up -d --build
  • No new required env vars — existing STREAMING_SERVICES and STREAMING_CHANNEL_ID keep working
  • First run after upgrade may log catalog seeding (cold start); “new” preference improves on later runs
  • Optional: delete data/streaming-catalog.json to re-seed first-seen dates

Install

Follow SETUP.md.

Full notes: docs/RELEASES.md · Known gaps: docs/TODO.md

AI note: Parts of this release were developed with AI assistance.

Discoverr 2.1.0

Choose a tag to compare

@loafdaddy loafdaddy released this 19 Jul 11:41

Discoverr 2.1.0 — configurable post time

Set when daily recommendations are posted using simple env vars.

Highlights

  • POST_TIME=HH:MM (24-hour) with TZ for timezone-aware daily posts
  • Alternatives: POST_HOUR / POST_MINUTE, or full CRON_SCHEDULE (overrides simple options)
  • Clearer log line: Scheduled discovery: every day at 18:30 …
  • Docs and .env.example updated

Upgrade from 2.0.0

git pull
docker compose up -d --build

Optional .env:

POST_TIME=18:30
TZ=America/New_York

If you already use CRON_SCHEDULE, it still works and takes precedence.

Install

git clone https://github.com/loafdaddy/discoverr-bot.git
cd discoverr-bot
git checkout v2.1.0
cp .env.example .env
# fill required values + POST_TIME / TZ
docker compose up -d --build
docker logs -f discoverr

Full setup: SETUP.md
Release notes: docs/RELEASES.md

AI note: Parts of this release were developed with AI assistance. AI-assisted contributions remain welcome — see CONTRIBUTING.md.

Discoverr 2.0.0

Choose a tag to compare

@loafdaddy loafdaddy released this 19 Jul 11:34

Discoverr 2.0.0 — TypeScript discovery rewrite

First SemVer release of the TypeScript rewrite. Author NAS smoke-tested.

Highlights

  • Full rewrite to TypeScript (src/ compiled inside the Docker image)
  • Diversified discovery: multi-page TMDb pools, rotating genre/sort, weighted mid-list sampling
  • Suggestion history cooldown via HISTORY_TTL_DAYS (default 90)
  • Seerr availability uses numeric media.status (AVAILABLE / PENDING / etc.); fail-closed lookups by default
  • Configurable CRON_SCHEDULE, TZ, TMDB_LANGUAGE, TMDB_PAGES, MIN_RATING, MIN_VOTES
  • Runtime Discord strings without emoji; brand kit under data/brand/
  • Unit tests for status mapping, history TTL, watch region, sampling
  • Docker-only operator path: Dockerfile + docker compose up -d --build (container discoverr, ./data mounted)

Breaking (from the old bot.js bot)

  • No more node bot.js / host npm run — use Docker Compose
  • New optional env knobs (see .env.example); merge them into existing .env files
  • Compose service/container renamed to discoverr; image is built from the Dockerfile

Install

git clone https://github.com/loafdaddy/discoverr-bot.git
cd discoverr-bot
git checkout v2.0.0
cp .env.example .env
# fill required values
docker compose up -d --build
docker logs -f discoverr

Full setup: SETUP.md
Release notes: docs/RELEASES.md
Known gaps: docs/TODO.md

AI note: Substantial parts of this release were developed with AI assistance. AI-assisted contributions remain welcome — see CONTRIBUTING.md.