Drop IgnoredKeywords.search_url column; resolve URL via watch link

The search_url Lookup column is redundant: the watch Link -> Settings row
already defines the association. Remove handling for the column:
- _ensure_keyword_watch_link() no longer creates a Lookup; deletes any
  legacy search_url (URL or Lookup type) on bootstrap
- load_ignored_keywords(kw_tid, settings_tid) resolves Settings.url via
  the watch link, one Settings fetch per cycle (no N+1)
- send_pending_notifications passes settings_tid through
- Add COMPOSE-SETUP.md: detail documentation for the compose stack
  (topology, compose block-by-block, Dockerfile, healthcheck, deploy paths,
  troubleshooting); referenced from README + DOCUMENTATION.md
This commit is contained in:
2026-09-13 18:22:58 +08:00
parent a72d2d5b62
commit 63bbb2795a
5 changed files with 305 additions and 62 deletions
+2 -2
View File
@@ -32,8 +32,7 @@ alerts for their listings (still archived, marked `skip_notify=true`).
**IgnoredKeywords** — `watch` (Link → Settings) + `keyword`. Per-watch title
blocklist: pick the watch from a dropdown, add one keyword per row. A keyword only
applies to listings from the linked watch; case-insensitive substring match against
the title. `search_url` is a Lookup column that auto-fills from the linked watch.
Still archived.
the title. Still archived.
## Run
@@ -65,4 +64,5 @@ sudo docker compose up -d --build
- `monitor.py` — main loop, schema bootstrap, fetch/parse, NocoDB IO, Telegram.
- `healthcheck.py` — Docker HEALTHCHECK probe (`/data/health.json`).
- `Dockerfile`, `docker-compose.yml`, `.env.example`.
- `COMPOSE-SETUP.md` — stack anatomy: compose file, Dockerfile, networking, deploy paths.
- `AGENTS.md` — AI-agent entry. `SECRETS.md` — credentials (private repo).