Follow-up to #29649.
The Opera update-browser-releases script reads https://forums.opera.com/category/20.rss and filters by dc:creator to find threads authored by abitkulova. But RSS dc:creator is the latest poster, not the original author — so as soon as someone replies to a release thread, it drops out of the filter. That's what caused #29649 (#29649 patches the symptom with a numeric <= break; the fragility remains).
Proposal
Switch to the public NodeBB JSON API:
GET /api/category/20 — lists topics with user.username = original poster, plus timestampISO (creation time, better release_date than RSS's last-reply pubDate).
GET /api/topic/{tid}/{slug} — original post body as JSON, no HTML scraping needed for the engine version.
Fixes the reply-bumping problem, the HTML scraping, and the imprecise release date in one go.
/api/search requires auth, so we rely on the category listing. The NodeBB API isn't a documented contract — defensive parsing recommended.
Follow-up to #29649.
The Opera update-browser-releases script reads https://forums.opera.com/category/20.rss and filters by
dc:creatorto find threads authored byabitkulova. But RSSdc:creatoris the latest poster, not the original author — so as soon as someone replies to a release thread, it drops out of the filter. That's what caused #29649 (#29649 patches the symptom with a numeric<=break; the fragility remains).Proposal
Switch to the public NodeBB JSON API:
GET /api/category/20— lists topics withuser.username= original poster, plustimestampISO(creation time, betterrelease_datethan RSS's last-replypubDate).GET /api/topic/{tid}/{slug}— original post body as JSON, no HTML scraping needed for the engine version.Fixes the reply-bumping problem, the HTML scraping, and the imprecise release date in one go.
/api/searchrequires auth, so we rely on the category listing. The NodeBB API isn't a documented contract — defensive parsing recommended.