- Recurring events share one UID across all occurrences (confirmed via
the API: same UID, different start dates), which produced duplicate
<guid> values the RSS spec forbids. Suffix the guid with the
occurrence's start date to make it unique per occurrence.
- Add atom:link rel="self" to the channel, per the validator's
recommendation, in both the PHP and Python implementations.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Mirrors the fixes made to the PHP feeds: correct link format
(/actualites|agenda/<slug>?u=<UID> instead of the wrong ?news=/?event=),
and full rich-text body + attachment links instead of the short teaser
only. Keeps both implementations in sync even though only the PHP one
is currently deployed.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Scrapes the imio.smartweb JSON API used by www.silly.be (found via the
smartweb-news/smartweb-events web components in the raw HTML) instead of
needing a headless browser. Shells out to curl since Cloudflare silently
blocks Python's urllib/requests TLS fingerprint. Includes Yunohost cron
and nginx deployment snippets.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>