fix(nightly): repoint feed to rss.xml, parse read-time, repair scraper

The FEED table had been frozen since 2026-07-08 — 37 nightly runs that all
went green while updating nothing. Both paths were dead at once, which is why
it left no trace: FEED_URL requested /feed.xml, which 404s (the site serves
/rss.xml), and the HTML fallback then matched zero articles because it looks
for a thumbnail alt= attribute and a Title-Case date, and the redesign has
neither — no feature images on the index, and uppercase abbreviated months.
It looked current only because no post has been published since July 2025, so
the four titles it froze with are still the four newest.

FEED_URL now points at the real feed, which also carries read-time in the
site's own namespace — so the meta column comes from the publisher instead of
being scraped back out of a page. The fallback is rewritten against the
markup the index actually emits: one `row` div holding an anchor and a `meta`
span.

Failures stay fail-safe and stop being invisible. A skipped section now emits
a GitHub Actions ::warning annotation that shows up in the run summary, plus
a count of how many sections did not update. A silent skip and a successful
run looked identical, and that is the whole reason this went unnoticed.

Verified against the live site: the fallback parses all 25 articles with
dates and read-times, and the feed path yields the same four rows the table
already shows.
This commit is contained in:
developtheweb@protonmail.com 2026-08-15 04:35:09 -04:00
parent b9ffcc2456
commit 0b31ebf801
2 changed files with 86 additions and 32 deletions

Binary file not shown.