search overhaul #2

Closed
opened 2026-05-03 14:46:45 -04:00 by maddox · 3 comments
Owner

While i have access to a Seer to search, not all users will. we need to make sure that if a seer server is not configured, that sonarr/radarr can search on their own like lidarr does.

we need to also ensure that none of my app data is stored directly in this bot and that the readme is clear on implementation. I have a friend that might find this useful.

While i have access to a Seer to search, not all users will. we need to make sure that if a seer server is not configured, that sonarr/radarr can search on their own like lidarr does. we need to also ensure that none of my app data is stored directly in this bot and that the readme is clear on implementation. I have a friend that might find this useful.
Collaborator

v0.6.0 deployed (commit 6cfad31, plugin live in maubot — instance enabled+started).

Seerr now optional. When seerr.url/seerr.api_key are left as placeholders the bot falls back to direct Sonarr/Radarr lookup + add. The numbered-selection flow works across both sources via a _source discriminator on each cached search result, so users don't notice the difference. !media requests and !media trending print a friendly hint when Seerr isn't configured (they have no arr equivalent).

Also added per-service config keys (quality_profile_id, root_folder_path, monitor, search_on_add, language_profile_id for Sonarr v3, minimum_availability for Radarr) so operators can pin defaults — null auto-picks the first profile/folder, mirroring how Lidarr already works.

Personal data scrubbed. base-config.yaml no longer ships any homelab-specific URLs, MXIDs, or Emby UIDs:

  • admin_users: []
  • user_map: {}
  • All service URLs use docker-hostname placeholders (http://sonarr:8989)
  • notifications_room: "", ntfy_url: ""
  • Two "ask maddox" hints in bot.py rewritten as generic config pointers

The only remaining identifier is id: com.3ddbrewery.media in maubot.yaml, which is the maubot plugin id — unique per maubot deployment, so a forker has to change it anyway. Called out in the README's Notes for forkers section.

README rewrite. Self-contained setup guide: requirements, build, upload, instance config (Required vs Optional, with the Seerr fallback explained), webhook setup, fork notes. Drops the old internal-IP table.

Running instance config is unchanged (instance config lives separately from base-config.yaml — the upload only updates plugin code and shipped defaults). Search/request still go through Seerr here as before; to exercise the arr-direct path you'd need a fresh instance with the Seerr block blank.

Leaving open for your review of the README and a sanity check that nothing personal leaked.

v0.6.0 deployed (commit 6cfad31, plugin live in maubot — instance enabled+started). **Seerr now optional.** When `seerr.url`/`seerr.api_key` are left as placeholders the bot falls back to direct Sonarr/Radarr lookup + add. The numbered-selection flow works across both sources via a `_source` discriminator on each cached search result, so users don't notice the difference. `!media requests` and `!media trending` print a friendly hint when Seerr isn't configured (they have no arr equivalent). Also added per-service config keys (`quality_profile_id`, `root_folder_path`, `monitor`, `search_on_add`, `language_profile_id` for Sonarr v3, `minimum_availability` for Radarr) so operators can pin defaults — `null` auto-picks the first profile/folder, mirroring how Lidarr already works. **Personal data scrubbed.** `base-config.yaml` no longer ships any homelab-specific URLs, MXIDs, or Emby UIDs: - `admin_users: []` - `user_map: {}` - All service URLs use docker-hostname placeholders (`http://sonarr:8989`) - `notifications_room: ""`, `ntfy_url: ""` - Two "ask maddox" hints in `bot.py` rewritten as generic config pointers The only remaining identifier is `id: com.3ddbrewery.media` in `maubot.yaml`, which is the maubot plugin id — unique per maubot deployment, so a forker has to change it anyway. Called out in the README's *Notes for forkers* section. **README rewrite.** Self-contained setup guide: requirements, build, upload, instance config (Required vs Optional, with the Seerr fallback explained), webhook setup, fork notes. Drops the old internal-IP table. Running instance config is unchanged (instance config lives separately from `base-config.yaml` — the upload only updates plugin code and shipped defaults). Search/request still go through Seerr here as before; to exercise the arr-direct path you'd need a fresh instance with the Seerr block blank. Leaving open for your review of the README and a sanity check that nothing personal leaked.
Collaborator

History scrubbed via git filter-repo --replace-text (commit d90d587, force-pushed). HEAD tree is byte-identical to before — no working-tree change.

Verified zero matches across all rewritten commits for:

  • @maddox:fails.me@admin:example.com
  • @jess:fails.me@user:example.com
  • matrix.fails.mematrix.example.com
  • ntfy.3ddbrewery.comntfy.example.com
  • 192.168.1.80arr-host
  • 192.168.1.120emby-host
  • 192.168.1.122download-host
  • 052e6796e9d94270858e05fb582ba5a600000000000000000000000000000000

Kept intentionally:

  • git.3ddbrewery.com/maddox/maubot-media.git in README (canonical clone URL — must point somewhere real)
  • com.3ddbrewery.media plugin id in maubot.yaml (called out in README as needing a fork-rename)

All commit hashes have changed because filter-repo rewrites the graph. Backup of pre-rewrite repo at /tmp/maubot-media-backup-1777835925 on the control server in case anything needs recovering.

History scrubbed via `git filter-repo --replace-text` (commit `d90d587`, force-pushed). HEAD tree is byte-identical to before — no working-tree change. **Verified zero matches across all rewritten commits for:** - `@maddox:fails.me` → `@admin:example.com` - `@jess:fails.me` → `@user:example.com` - `matrix.fails.me` → `matrix.example.com` - `ntfy.3ddbrewery.com` → `ntfy.example.com` - `192.168.1.80` → `arr-host` - `192.168.1.120` → `emby-host` - `192.168.1.122` → `download-host` - `052e6796e9d94270858e05fb582ba5a6` → `00000000000000000000000000000000` Kept intentionally: - `git.3ddbrewery.com/maddox/maubot-media.git` in README (canonical clone URL — must point somewhere real) - `com.3ddbrewery.media` plugin id in `maubot.yaml` (called out in README as needing a fork-rename) All commit hashes have changed because filter-repo rewrites the graph. Backup of pre-rewrite repo at `/tmp/maubot-media-backup-1777835925` on the control server in case anything needs recovering.
Collaborator

Re-verified the v0.6.0 deliverables on main (HEAD 87eef44):

  • base-config.yaml grep clean for @maddox, fails.me, 3ddbrewery, internal IPs, and the old Emby UID
  • media_bot/bot.py + media_bot/clients/*.py clean for the same
  • Seerr-fallback gating via self.seerr_enabled (set in start() from _service_configured(seerr)) — used in cmd_request, cmd_search, cmd_trending, cmd_requests, _do_request and the arr-direct paths
  • README has explicit Notes for forkers + Seerr-optional / Jellyfin / fork-rename callouts

Closing. Reopen if anything personal slipped through that I missed.

Re-verified the v0.6.0 deliverables on `main` (HEAD `87eef44`): - `base-config.yaml` grep clean for `@maddox`, `fails.me`, `3ddbrewery`, internal IPs, and the old Emby UID - `media_bot/bot.py` + `media_bot/clients/*.py` clean for the same - Seerr-fallback gating via `self.seerr_enabled` (set in `start()` from `_service_configured(seerr)`) — used in `cmd_request`, `cmd_search`, `cmd_trending`, `cmd_requests`, `_do_request` and the arr-direct paths - README has explicit *Notes for forkers* + Seerr-optional / Jellyfin / fork-rename callouts Closing. Reopen if anything personal slipped through that I missed.
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: maddox/maubot-media#2
No description provided.