13 Commits

Author SHA1 Message Date
lanshu 38e8414343 feat: add international news sources
- add BBC, Guardian, Al Jazeera, France 24, and Reuters fallback sources

- enforce 24h filtering and unified report rules for international news

- clarify OPML custom feed wording and add Star History chart
2026-05-27 21:47:18 +08:00
lanshu 388a6cb972 fix: strip CDATA markers from RSS title fields
html.parser 不处理 XML CDATA,get_text() 会把 <![CDATA[...]]> 原样保留。
在 clean_text() 里加正则 strip,修复 AIHOT/TLDR AI/Import AI 等源的标题显示问题。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 20:50:47 +08:00
lanshu 6b048677bc feat: v3 源内置时间过滤,默认只拉近期内容
- 新增 filter_by_hours(items, hours) 通用函数,基于 RFC 2822 时间解析
- AIHOT: 24h 窗口(日更 ~50 条,fetch 50 条后过滤)
- TLDR AI: 48h 窗口(日刊午夜 UTC 发布,48h 确保任意时段都能拿到最新期)
- Import AI: 7天窗口(周刊,保证拿到最新一期)
- 三源默认 limit 调整:aihot=15, tldr_ai=3, import_ai=2

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 12:30:24 +08:00
lanshu 44f78dccf0 feat: add v3 AI curated aggregators (aihot/tldr_ai/import_ai)
三个高信息密度的二次精选信源,单源价值顶 5-10 个原始信源:
- AIHOT: 中文跨源 AI 精选,日更 ~50 条编辑稿
- TLDR AI: 英文每日摘要,5-10 主题/期
- Import AI (Jack Clark): 英文周刊深度评论,推荐 --deep

配套更新:
- templates.md 新增 §AI 精选聚合 (v3),序号 41-44
- SKILL.md 补充三源的 Source-Specific Adaptations 格式规范
- README.md 源数 33+→36+,新增 v3 信源图谱段落

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-27 10:22:23 +08:00
lanshu f560aca161 fix: 修复 Windows 平台下的控制台编码问题
确保在 Windows 平台上标准输出和标准错误流使用 UTF-8 编码,
避免中文字符显示乱码或抛 UnicodeEncodeError。

优先用 Python 3.7+ 原生 sys.stdout.reconfigure(),
失败时降级到 io.TextIOWrapper 包一层。
仅在 sys.platform == 'win32' 时生效,不影响 macOS/Linux。

Co-Authored-By: YZz-S <44917477+YZz-S@users.noreply.github.com>
Closes #3
2026-05-25 09:54:39 +08:00
lanshu bf6062fd9a feat: add 5 new sources + user OPML, fix RSS summary truncation
新增数据源(全部纯 Python、零额外依赖):
- lobsters: lobste.rs/hottest.json
- devto: dev.to/api/articles?top=1
- sspai: 少数派 RSS
- arxiv: cs.AI/cs.CL/cs.LG Atom API(带 3 次重试,timeout 45s)
- infoq_cn: InfoQ 中文 RSS(菜单默认配 --deep 拿正文)

用户自定义订阅源:
- 新增 scripts/fetch_user_feeds.py 解析 OPML(兼容 Feedly/Inoreader 导出)
- user_sources.opml.example 含 3 个示例订阅
- 优先读 ~/.config/news-aggregator/user_sources.opml,回退 skill 根目录

修复:
- rss_parser.py:66 三元运算符优先级 bug,≤300 字 summary 不再被截成空串
  受益:sspai / infoq_cn 及原有 8 个 RSS sub-sources

菜单与文档:
- templates.md 加 #36-41(扩展源 v2)+ OPML 首次使用提示
- SKILL.md 源数 28→33+,加 Tech Community / Chinese / Custom 分类
- README.md 同步源数和"扩展源 (v2)"小节

刻意不做:
- 不引入 SQLite 持久化
- 不动 except: pass 静默吞异常
- 不加 cookie/登录态
2026-05-24 21:49:49 +08:00
lanshu a378fbb07d Save progress before merge 2026-03-08 09:17:54 +08:00
lanshu 971dd32bf7 feat: implement --no-save flag, fix Ben's Bites fetcher, and generate 2026-02-13 reports 2026-02-14 21:46:42 +08:00
lanshu 7aced7b4a4 feat: add --no-save flag, cleanup JSON intermediates, add new scripts
- Add --no-save flag to daily_briefing.py and fetch_news.py to skip
  writing intermediate JSON files to reports directory
- Update SKILL.md and templates.md to use --no-save by default
- Add .gitignore patterns for stderr logs, debug files, screenshots
- Remove dead sources (TLDR, Cognitive Rev, The Neuron, The Rundown)
- Fix Interconnects URL (add www. prefix)
- Add new utility scripts: rss_parser, test_all_sources, fetch_bensbites
- Add briefing instructions for AI daily and GitHub
- Clean up briefing_data_final.json
2026-02-12 18:54:07 +08:00
lanshu e861b1e606 feat: add github profile and update gitignore 2026-02-08 11:12:06 +08:00
lanshu dff5dab0ab feat: Implement Daily Morning Briefing workflow
- Add scripts/daily_briefing.py for orchestrated report generation
- Add instruction templates for General, Social, Tech, and Finance briefings
- Update fetch_news.py with deep fetching support and better error handling
- Update SKILL.md and templates.md with new briefing commands
- Archive generated reports
2026-01-25 21:46:37 +08:00
lanshu 6c9b54e7a3 Refactor: Update SKILL.md for date-based reports and add implementation plan 2026-01-22 11:13:49 +08:00
lanshu 1fee6b0bbd feat: News Aggregator Skill v1.0 - 8 sources, deep fetch, interactive menu 2026-01-19 23:06:38 +08:00