mirror of
https://github.com/dgtlmoon/changedetection.io.git
synced 2026-09-18 03:16:38 +00:00
* Watchlist/Notifications - Resolve 'Link to Open' once per row, don't leak 'DISABLED' into notification tokens Follow-up to #4290. `watch.open_link` was read three times per watch list row (two hrefs plus the new title attribute). Each read re-runs `_resolve_link()`, which for a Jinja2 templated URL builds a fresh ImmutableSandboxedEnvironment - the cost the comment in validate_url.py already warns about. Hoisted to a single `{% set open_link = watch.open_link %}` alongside the other per-row lookups. `watch_open_url` was set from `watch.open_link`, which returns the string 'DISABLED' when the URL fails validation, so the default RSS body template (`RSS_TEMPLATE_HTML_DEFAULT`) rendered `<a href="DISABLED">` for those watches. Now falls back to the raw URL, matching the neighbouring `watch_url` token. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Rebuild template --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>