Commit Graph

16 Commits

Author SHA1 Message Date
github-actions[bot]
f74c8cb23b Deploy e11da61 from main 2026-04-24 08:27:29 +00:00
github-actions[bot]
319aa83117 Deploy 6060aa3 from main 2026-04-16 15:39:08 +00:00
github-actions[bot]
755b71bbde Deploy f57bf15 from main 2026-04-16 15:37:52 +00:00
github-actions[bot]
09fad2e2da Deploy 64e7153 from main 2026-04-16 15:31:27 +00:00
github-actions[bot]
b7ca7d1e49 Deploy 69cb000 from main 2026-04-16 15:23:20 +00:00
github-actions[bot]
27c560477b Deploy 19fea30 from main 2026-04-16 10:02:08 +00:00
github-actions[bot]
102104f4dc Deploy b92dc4b from main 2026-04-12 21:22:34 +00:00
github-actions[bot]
5d4e73b947 Deploy 6796121 from main 2026-04-12 10:29:18 +00:00
github-actions[bot]
24d15ca938 Deploy b05913e from main 2026-04-11 14:23:03 +00:00
github-actions[bot]
dda0da31e8 Deploy 6c57f6c from main 2026-04-07 08:59:43 +00:00
github-actions[bot]
526959257f Deploy ab56ec7 from main 2026-04-07 07:59:55 +00:00
github-actions[bot]
9db9bb01c8 Deploy 1ae831e from main 2026-04-07 02:45:50 +00:00
Terence Ong
5918a7d446 Fix missing thumbnails by resolving Google News redirect URLs before OG scraping
The OG image scraper was using Google News redirect URLs (source_url) directly,
which don't serve og:image tags. Added resolve_scrape_url() to follow redirects
(including meta-refresh and JS redirects) to reach the actual publisher page
before scraping. Also added a backfill AJAX endpoint and admin button to
re-scrape thumbnails for existing articles.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 19:32:09 +07:00
Terence Ong
18158a3b81 fix: resolve actual article source instead of showing aggregator domain
Google News RSS feeds report every article as coming from
"news.google.com" because the source was extracted from the feed URL
rather than the individual article. This adds a multi-strategy
resolver that extracts the real publisher name via:

1. SimplePie <source> element (Google News provides this)
2. Title suffix parsing ("Headline - Source" format)
3. HTTP HEAD redirect resolution as a fallback

Also adds a one-click "Fix Article Sources" backfill button on the
settings page to correct existing articles in the database.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 19:11:14 +07:00
Terence Ong
e6887e810f Add content filter to block ads, press releases, and promotional content
Two-tier filtering during article fetch: keyword/pattern rules as a fast
first pass, then optional LLM classification for borderline cases via
OpenRouter. Configurable sensitivity (strict/moderate/lenient), editable
keyword lists, blocked domain list, and admin stats display. Includes
30 unit tests covering domain blocking, title/body keywords, URL paths,
edge cases, and prompt structure.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-06 14:14:16 +07:00
peptiderepo
f672b4a670 feat: load LLM class dependency 2026-04-06 00:10:02 +07:00