3 Commits

Author SHA1 Message Date
Ryan
dd2477390c Who he is: live Wikipedia bio (auto-refreshed every 15-min crawl tick) + article link
- lib/bio.js: refreshBio() pulls the article intro via the Wikipedia API
  (exintro, descriptive UA) and upserts the bio cache; getBio() reads it
  with a short accurate static fallback. Page loads NEVER hit Wikipedia.
- crawl route: refreshBio() runs on every 15-min tick (over daily) —
  best-effort, a wiki hiccup can't fail the news crawl.
- /api/bio: read-only route.
- page.js: WhoBox renders the live text + 'Full article on Wikipedia' link
  + SOURCE: WIKIPEDIA · UPDATED <date> line.
- tests/bio-test.mjs: fallback + live-refresh + offline degradation.
2026-09-16 17:47:20 +00:00
Ryan
70a23bbd46 BidaAngMamayan: verified-publisher gate + In Pictures + standalone board band
Three changes per Daniel (2026-09-15):

1. VERIFIED PUBLISHERS ONLY — lib/sources.js gains VERIFIED_HOSTS
   (established PH newsrooms + state wire + international) and
   publisherVerified(url); lib/crawl.js now drops any story whose
   article URL host is not on the allowlist BEFORE the relevance gate
   (skippedUnverified counter surfaces in the crawl result + cron log).
   Tabloids/blogs/radio (bomboradyo, unboxph, bnc.bilyonaryo, dzrh,
   thechronicle, …) can no longer reach the desk. Quiet-day fallback
   wires expanded to Inquirer/Rappler/GMA/ABS-CBN/Interaksyon/Manila
   Bulletin (all verified).

2. IN PICTURES — a new prominent full-width band on the front page:
   7 real public-domain photos of Sen. BAM (official Senate/Facebook
   pages via Wikimedia Commons), each credited to its source with a
   link out to the Commons file page. lib/photos.js holds the curated,
   URL-verified set.

3. BOARD AS ITS OWN AREA — the 'Thank You, Senator BAM' community board
   is now a distinct gold-edged full-width band (front page + its own
   view), clearly separate from the news desks. The nav 'Thank You
   Board' button is gold (not a category tab) and jumps to the band.

Tests: publisher-gate unit checks (22/22), ui-check.mjs updated to
verify the In Pictures band (>=5 credited photos) + front-page board
band posting; e2e + board suites still green.
2026-09-16 15:04:10 +00:00
Ryan
6b06e08c08 BidaAngMamayan: public supporter tribute news desk for Senator BAM Aquino
Forked from Forthena (PERSONAL/forthena) and retargeted:
- NO login, NO LLM: the edition is public and the ranking is deterministic
  (stories that name Sen. BAM lead; freshest first) — Daniel: no
  like/dislike or store profile for visitors.
- Crawler scoped to BAM: Bing news keyword queries + Inquirer/Rappler
  fallback wires, with a two-tier relevance gate (named-BAM always;
  Aquino+legislative-context only from fallback) so op-eds and non-Bam
  senators are dropped.
- Desks: BAM (lead), Gaming, Education, Politics, Energy, PH, Business.
- Community board /board: 'Thank you Senator BAM' — nickname-only posts,
  HTML-stripped, URL-only rejected, IP rate-limited (3/10min, 20/day).
- Yellow-gamer theme (Orbitron/Rajdhani/JetBrains Mono, dark + gold,
  HUD corners), supporter disclaimer in header and footer.
- Tests: category/date/relevance/text suites + Mongo board suite +
  full HTTP e2e (all passing).

Infra: 66.181.46.132 (bidaangmamamayan.com), local Mongo 7.0,
nginx + certbot TLS, PM2 bama (:3000) + 15-min crawl cron.
2026-09-15 08:37:03 +00:00