Releases: loafdaddy/discoverr-bot
Release list
Discoverr 3.1.1
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 --buildNo config or env changes.
Install
Follow SETUP.md.
Known gaps: see TODO.md
Discoverr 3.1.0 — Optional settings clarified
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.examplerestored (same style as 2.x) — channels, schedule, region, streaming list, secrets settings.jsonis 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 --buildKeep 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
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.jsonon the Compose volume — channels, schedule, post counts, streaming mix, memory, dry-run (survives image upgrades)- Secrets-only
.env—DISCORD_TOKEN,TMDB_API_KEY,SEERR_* - Env migration bridge — if
settings.jsonis 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, defaulttrue) - Dual memory TTLs —
suggestedTtlDays/requestedTtlDays; Request button writesrequestedAt discovery.dryRun— log picks without Discord posts- Clearer startup validation for invalid settings
Your .env is safe
- Do not delete or rewrite your existing
.envto upgrade - Required secrets are unchanged
- Non-secret keys in
.envstill work until you move them intosettings.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 --buildOptional: adopt settings.example.json → data/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.json → data/settings.json.
Docs
Parts of this release were prepared with AI assistance.
Discoverr 2.2.0
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.jsontracks 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
- Resolve configured provider names for
WATCH_REGIONvia TMDb - Shuffle and fill three slots, preferring distinct services
- For each slot, fetch
/discover/moviewithwith_watch_providers+flatrate - Prefer titles newly first-seen in the local catalog (≈21-day window), else the usual available pool
- 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_SERVICESandSTREAMING_CHANNEL_IDkeep working - First run after upgrade may log catalog seeding (
cold start); “new” preference improves on later runs - Optional: delete
data/streaming-catalog.jsonto 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
Discoverr 2.1.0 — configurable post time
Set when daily recommendations are posted using simple env vars.
Highlights
POST_TIME=HH:MM(24-hour) withTZfor timezone-aware daily posts- Alternatives:
POST_HOUR/POST_MINUTE, or fullCRON_SCHEDULE(overrides simple options) - Clearer log line:
Scheduled discovery: every day at 18:30 … - Docs and
.env.exampleupdated
Upgrade from 2.0.0
git pull
docker compose up -d --buildOptional .env:
POST_TIME=18:30
TZ=America/New_YorkIf 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 discoverrFull 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
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(containerdiscoverr,./datamounted)
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.envfiles - 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 discoverrFull 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.