
gloriousepiphany/trendreader
Developer tools告别信息过载,AI 助你看懂新闻资讯热点,简单的舆情监控分析 - 多平台热点聚合+基于 MCP 的AI分析工具。
Overview
* :数据不再直接写入仓库(Git Commit),而是存储在 (支持 S3 兼容协议:Cloudflare R2、阿里云 OSS、腾讯云 COS 等)。 * :**配置一个 S3 兼容的对象存储服务(推荐免费的 Cloudflare R2)。 为了保持仓库整洁,避免继承冗余的历史记录,我**你使用 Template 模式: * :创建一个全新的、干净的仓库,没有历史包袱。 * :会保留完整的提交历史和关联关系,占用 GitHub 更多资源。 * :R2 的免费额度(10GB存储/月)足以覆盖本项目日常运行,无需担心付费。 - 感谢** 的贡献者,你们的每一条反馈让项目更加完善😉; - 感谢** 的观众们, 你所欲也, 我所欲也,两者得兼😍是对开源精神最好的支持; - 感谢** 的读者们,你们的留言、点赞、分享和推荐等积极互动让内容更有温度😎。 本项目使用 newsnow 项目的 API 获取多平台数据,特别感谢作者提供的服务。 经联系,作者表示无需担心服务器压力,但这是基于他的善意和信任。请大家: - - Docker 部署时,请合理控制推送频率,勿竭泽而渔
README
本项目以轻量,易部署为目标
📑 快速导航
- 感谢耐心反馈 bug 的贡献者,你们的每一条反馈让项目更加完善😉;
- 感谢为项目点 star 的观众们,fork 你所欲也,star 我所欲也,两者得兼😍是对开源精神最好的支持;
- 感谢关注公众号 的读者们,你们的留言、点赞、分享和推荐等积极互动让内容更有温度😎。
✨ 核心功能
全网热点聚合
- 知乎
- 抖音
- bilibili 热搜
- 华尔街见闻
- 贴吧
- 百度热搜
- 财联社热门
- 澎湃新闻
- 凤凰网
- 今日头条
- 微博
默认监控 11 个主流平台,也可自行增加额外的平台
💡 详细配置教程见 配置详解 - 平台配置
智能推送策略
三种推送模式:
| 模式 | 适用场景 | 推送特点 |
|---|---|---|
| 当日汇总 (daily) | 企业管理者/普通用户 | 按时推送当日所有匹配新闻(会包含之前推送过的) |
| 当前榜单 (current) | 自媒体人/内容创作者 | 按时推送当前榜单匹配新闻(持续在榜的每次都出现) |
| 增量监控 (incremental) | 投资者/交易员 | 仅推送新增内容,零重复 |
💡 快速选择指南:
- 🔄 不想看到重复新闻 → 用
incremental(增量监控)- 📊 想看完整榜单趋势 → 用
current(当前榜单)- 📝 需要每日汇总报告 → 用
daily(当日汇总)详细对比和配置教程见 配置详解 - 推送模式详解
附加功能(可选):
| 功能 | 说明 | 默认 |
|---|---|---|
| 推送时间窗口控制 | 设定推送时间范围(如 09:00-18:00),避免非工作时间打扰 | 关闭 |
| 内容顺序配置 | 调整"热点词汇统计"和"新增热点新闻"的显示顺序(v3.5.0 新增) | 统计在前 |
💡 详细配置教程见 配置详解 - 报告配置 和 配置详解 - 推送时间窗口
精准内容筛选
设置个人关键词(如:AI、比亚迪、教育政策),只推送相关热点,过滤无关信息
基础语法(5种):
- 普通词:基础匹配
- 必须词
+:限定范围 - 过滤词
!:排除干扰 - 数量限制
@:控制显示数量(v3.2.0 新增) - 全局过滤
[GLOBAL_FILTER]:全局排除指定内容(v3.5.0 新增)
高级功能(v3.2.0 新增):
- 🔢 关键词排序控制:按热度优先 or 配置顺序优先
- 📊 显示数量精准限制:全局配置 + 单独配置,灵活控制推送长度
词组化管理:
- 空行分隔,独立统计不同主题热点
💡 基础配置教程:关键词配置 - 基础语法
💡 高级配置教程:关键词配置 - 高级配置
💡 也可以不做筛选,完整推送所有热点(将 frequency_words.txt 留空)
热点趋势分析
实时追踪新闻热度变化,让你不仅知道"什么在热搜",更了解"热点如何演变"
- 时间轴追踪:记录每条新闻从首次出现到最后出现的完整时间跨度
- 热度变化:统计新闻在不同时间段的排名变化和出现频次
- 新增检测:实时识别新出现的热点话题,用🆕标记第一时间提醒
- 持续性分析:区分一次性热点话题和持续发酵的深度新闻
- 跨平台对比:同一新闻在不同平台的排名表现,看出媒体关注度差异
💡 推送格式说明见 配置详解 - 推送格式参考
个性化热点算法
不再被各个平台的算法牵着走,TrendRadar 会重新整理全网热搜:
- 看重排名高的新闻(占60%):各平台前几名的新闻优先显示
- 关注持续出现的话题(占30%):反复出现的新闻更重要
- 考虑排名质量(占10%):不仅多次出现,还经常排在前列
💡 这三个比例可以调整,详见 配置详解 - 热点权重调整
多渠道实时推送
支持企业微信(+ 微信推送方案)、飞书、钉钉、Telegram、邮件、ntfy、Bark、Slack,消息直达手机和邮箱
📌 多账号推送说明(v3.5.0 新增):
- ✅ 支持多账号配置:所有推送渠道(飞书、钉钉、企业微信、Telegram、ntfy、Bark、Slack)均支持配置多个账号
- ✅ 配置方式:使用英文分号
;分隔多个账号值 - ✅ 示例:
FEISHU_WEBHOOK_URL的 Secret 值填写https://webhook1;https://webhook2 - ⚠️ 配对配置:Telegram 和 ntfy 需要保证配对参数数量一致(如 token 和 chat_id 都是 2 个)
- ⚠️ 数量限制:默认每个渠道最多 3 个账号,超出会被截断
灵活存储架构(v4.0.0 重大更新)
多存储后端支持:
- ☁️ 远程云存储:GitHub Actions 环境默认,支持 S3 兼容协议(R2/OSS/COS 等),数据存储在云端,不污染仓库
- 💾 本地 SQLite 数据库:Docker/本地环境默认,数据完全可控
- 🔄 自动后端选择:根据运行环境智能切换存储方式
数据格式:
| 格式 | 用途 | 说明 |
|---|---|---|
| SQLite | 主存储 | 单文件数据库,查询快速,支持 MCP AI 分析 |
| TXT | 可选快照 | 可读文本格式,方便直接查看 |
| HTML | 报告展示 | 精美可视化页面,PC/移动端适配 |
数据管理:
- ✅ 自动清理过期数据(可配置保留天数)
- ✅ 时区配置支持(全球时区)
💡 详细说明见 配置详解 - 存储配置
多端部署
- GitHub Actions:定时自动爬取 + 远程云存储(需签到续期)
- Docker 部署:支持多架构容器化运行,数据本地存储
- 本地运行:Windows/Mac/Linux 直接运行
AI 智能分析(v3.0.0 新增)
基于 MCP (Model Context Protocol) 协议的 AI 对话分析系统,让你用自然语言深度挖掘新闻数据
- 对话式查询:用自然语言提问,如"查询昨天知乎的热点"、“分析比特币最近的热度趋势”
- 13 种分析工具:涵盖基础查询、智能检索、趋势分析、数据洞察、情感分析等
- 多客户端支持:Cherry Studio(GUI 配置)、Claude Desktop、Cursor、Cline 等
- 深度分析能力:
- 话题趋势追踪(热度变化、生命周期、爆火检测、趋势预测)
- 跨平台数据对比(活跃度统计、关键词共现)
- 智能摘要生成、相似新闻查找、历史关联检索
💡 使用提示:AI 功能需要本地新闻数据支持
- 项目自带 11月1-15日 测试数据,可立即体验
- 建议自行部署运行项目,获取更实时的数据
详见 AI 智能分析
零技术门槛部署
GitHub 一键 Fork 即可使用,无需编程基础。
30秒部署: GitHub Pages(网页浏览)支持一键保存成图片,随时分享给他人
1分钟部署: 企业微信(手机通知)
💡 提示: 想要实时更新的网页版?fork 后,进入你的仓库 Settings → Pages,启用 GitHub Pages。效果预览。
减少 APP 依赖
从"被算法推荐绑架"变成"主动获取自己想要的信息"
适合人群: 投资者、自媒体人、企业公关、关心时事的普通用户
典型场景: 股市投资监控、品牌舆情追踪、行业动态关注、生活资讯获取
| Github Pages 效果(手机端适配、邮箱推送效果) | 飞书推送效果 |
|---|---|
📝 更新日志
升级说明:
- 📌 查看最新更新:原仓库更新日志
- 提示:不要通过 Sync fork 更新本项目,建议查看【历史更新】,明确具体的【升级方式】和【功能内容】
- 大版本升级:从 v1.x 升级到 v2.y,建议删除现有 fork 后重新 fork,这样更省力且避免配置冲突
2025/12/17 - v4.0.1
- StorageManager 添加推送记录代理方法
- S3 客户端切换至 virtual-hosted style 以提升兼容性(支持腾讯云 COS 等更多服务)
2025/12/13 - mcp-v1.1.0
MCP 模块更新:
- 适配 v4.0.0,同时也兼容 v3.x 的数据
- 新增存储同步工具:
sync_from_remote: 从远程存储拉取数据到本地get_storage_status: 获取存储配置和状态list_available_dates: 列出本地/远程可用日期范围
🚀 快速开始
📖 提醒:Fork 用户建议先 查看最新官方文档,确保配置步骤是最新的。
⚠️ GitHub Actions 使用说明
v4.0.0 重要变更:引入「活跃度检测」机制,GitHub Actions 需定期签到以维持运行。
🔄 签到续期机制
- 运行周期:有效期为 7 天,倒计时结束后服务将自动挂起。
- 续期方式:在 Actions 页面手动触发 “Check In” workflow,即可重置 7 天有效期。
- 操作路径:
Actions→Check In→Run workflow - 设计理念:
- 如果 7 天都忘了签到,或许这些资讯对你来说并非刚需。适时的暂停,能帮你从信息流中抽离,给大脑留出喘息的空间。
- GitHub Actions 是宝贵的公共计算资源。引入签到机制旨在避免算力的无效空转,确保资源能分配给真正活跃且需要的用户。感谢你的理解与支持。
📦 数据存储(必需配置)
GitHub Actions 环境下,数据存储在 远程云存储(支持 S3 兼容协议,推荐免费的 Cloudflare R2),不会污染仓库(见下方 必需配置:远程云存储)
🚀 推荐:Docker 部署
如需长期稳定运行,建议使用 Docker 部署,数据存储在本地,无需签到,不过需要额外付费购买云服务器。
-
Fork 本项目到你的 GitHub 账户
- 点击本页面右上角的"Fork"按钮
-
设置 GitHub Secrets(必需 + 可选平台):
在你 Fork 后的仓库中,进入
Settings>Secrets and variables>Actions>New repository secret📌 重要说明(请务必仔细阅读):
- ✅ 一个 Name 对应一个 Secret:每添加一个配置项,点击一次"New repository secret"按钮,填写一对"Name"和"Secret"
- ✅ 保存后看不到值是正常的:出于安全考虑,保存后重新编辑时,只能看到 Name(名称),看不到 Secret(值)的内容
- ⚠️ 严禁自创名称:Secret 的 Name(名称)必须严格使用下方列出的名称(如
WEWORK_WEBHOOK_URL、FEISHU_WEBHOOK_URL等),不能自己随意修改或创造新名称,否则系统无法识别 - 💡 可以同时配置多个平台:系统会向所有配置的平台发送通知
📌 多账号推送说明(v3.5.0 新增):
- ✅ 支持多账号配置:所有推送渠道(飞书、钉钉、企业微信、Telegram、ntfy、Bark、Slack)均支持配置多个账号
- ✅ 配置方式:使用英文分号
;分隔多个账号值 - ✅ 示例:
FEISHU_WEBHOOK_URL的 Secret 值填写https://webhook1;https://webhook2 - ⚠️ 配对配置:Telegram 和 ntfy 需要保证配对参数数量一致(如 token 和 chat_id 都是 2 个)
- ⚠️ 数量限制:默认每个渠道最多 3 个账号,超出部分被截断
多账号配置示例:
Name(名称) Secret(值)示例 FEISHU_WEBHOOK_URLhttps://webhook1;https://webhook2;https://webhook3TELEGRAM_BOT_TOKENtoken1;token2TELEGRAM_CHAT_IDchatid1;chatid2NTFY_TOPICtopic1;topic2NTFY_TOKEN;token2(第一个无 token 时留空占位)配置示例:
如上图所示,每一行是一个配置项:
- Name(名称):必须使用下方展开内容中列出的固定名称(如
WEWORK_WEBHOOK_URL) - Secret(值):填写你从对应平台获取的实际内容(如 Webhook 地址、Token 等)
推荐选择:
用户类型 推荐方案 理由 普通用户 方式一(免费) 简单快速,够用 技术用户 方式二(自托管) 完全控制,无限制 高频用户 方式三(付费) 这个自己去官网看吧 相关链接:
-
手动测试新闻推送:
💡 完成第1-2步后,请立即测试! 测试成功后再根据需要调整配置(第4步)。
⚠️ 重要提醒:请进入你自己 fork 的项目,不是本项目!
如何找到你的 Actions 页面:
- 方法一:打开你 fork 的项目主页,点击顶部的 Actions 标签
- 方法二:直接访问
https://github.com/你的用户名/TrendRadar/actions
示例对比:
- ❌ 作者的项目:
https://github.com/sansan0/TrendRadar/actions - ✅ 你的项目:
https://github.com/你的用户名/TrendRadar/actions
测试步骤:
- 进入你项目的 Actions 页面
- 找到 “Get Hot News”(必须得是这个字)点进去,点击右侧的 “Run workflow” 按钮运行
- 如果看不到该字样,参照 #109 解决
- 3 分钟左右,消息会推送到你配置的平台
⏱️ 测试提示:
- 手动测试不要太频繁,避免触发 GitHub Actions 限制
- 点击 Run workflow 后需要刷新浏览器页面才能看到新的运行记录
-
配置说明(可选):
💡 默认配置已可正常使用,如需个性化调整,了解以下三个文件即可
文件 作用 config/config.yaml主配置文件:推送模式、时间窗口、平台列表、热点权重等 config/frequency_words.txt关键词文件:设置你关心的词汇,筛选推送内容 .github/workflows/crawler.yml执行频率:控制多久运行一次(⚠️ 谨慎修改) 👉 详细配置教程:配置详解
-
🎉 部署成功!分享你的使用体验
恭喜你完成了 TrendRadar 的配置!现在你可以开始追踪热点资讯了。
💬 有更多小伙伴在公众号交流使用心得,期待你的分享~
- 想了解更多玩法和高级技巧?
- 遇到问题需要快速解答?
- 有好的想法想要交流?
👉 欢迎关注公众号「硅基茶水间」,你的点赞和留言都是项目持续更新的动力。
详细的交流方式,请查看 → 问题答疑与交流
-
想要更智能的分析?试试 AI 增强功能(可选)
基础配置已经能满足日常使用,但如果你想要:
- 📊 让 AI 自动分析热点趋势和数据洞察
- 🔍 通过自然语言搜索和查询新闻
- 💡 获得情感分析、话题预测等深度分析
- ⚡ 在 Claude、Cursor 等 AI 工具中直接调用数据
👉 了解更多:AI 智能分析 — 解锁项目的隐藏能力,让热点追踪更高效!
⚙️ 配置详解
📖 提醒:本章节提供详细的配置说明,建议先完成 快速开始 的基础配置,再根据需要回来查看详细选项。
1. 平台配置
2. 关键词配置
在 frequency_words.txt 文件中配置监控的关键词,支持五种语法、区域标记和词组功能。
| 语法类型 | 符号 | 作用 | 示例 | 匹配逻辑 |
|---|---|---|---|---|
| 普通词 | 无 | 基础匹配 | 华为 |
包含任意一个即可 |
| 必须词 | + |
限定范围 | +手机 |
必须同时包含 |
| 过滤词 | ! |
排除干扰 | !广告 |
包含则直接排除 |
| 数量限制 | @ |
控制显示数量 | @10 |
最多显示10条新闻(v3.2.0新增) |
| 全局过滤 | [GLOBAL_FILTER] |
全局排除指定内容 | 见下方示例 | 任何情况下都过滤(v3.5.0新增) |
2.1 基础语法
2.2 高级配置(v3.2.0 新增)
3. 推送模式详解
4. 热点权重调整
5. 推送格式参考
6. Docker 部署
7. 报告配置
8. 推送时间窗口配置
9. 执行频率配置
10. 多账号推送配置
推荐配置方式 2:Docker 环境变量(.env)
配置位置:项目根目录 docker/.env 文件
基础配置示例:
# 多账号数量限制
MAX_ACCOUNTS_PER_CHANNEL=3
# 飞书多账号(3个群组)
FEISHU_WEBHOOK_URL=https://hook1.feishu.cn/xxx;https://hook2.feishu.cn/yyy;https://hook3.feishu.cn/zzz
# 钉钉多账号(2个群组)
DINGTALK_WEBHOOK_URL=https://oapi.dingtalk.com/xxx;https://oapi.dingtalk.com/yyy
# 企业微信多账号(2个群组)
WEWORK_WEBHOOK_URL=https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxx;https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=yyy
# Bark多账号(2个设备)
BARK_URL=https://api.day.app/key1;https://api.day.app/key2
# Slack多账号(2个频道)
SLACK_WEBHOOK_URL=https://hooks.slack.com/xxx;https://hooks.slack.com/yyy
配对配置示例(Telegram 和 ntfy):
推送行为说明
- 独立推送:每个账号独立发送,一个失败不影响其他账号
- 部分成功判定:只要有一个账号发送成功,整体视为成功
- 日志区分:多账号时日志会显示"账号1"、"账号2"等标签
- 批次间隔:多账号会增加总发送时间(每个账号独立计算批次间隔)
常见问题
11. 存储配置
🤖 AI 智能分析
TrendRadar v3.0.0 新增了基于 MCP (Model Context Protocol) 的 AI 分析功能,让你可以通过自然语言与新闻数据对话,进行深度分析。
⚠️ 使用前必读
重要提示:AI 功能需要本地新闻数据支持
AI 分析功能不是直接查询网络实时数据,而是分析你本地已积累的新闻数据(存储在 output 文件夹中)
使用说明:
-
项目自带测试数据:
output目录默认包含 2025-11-01~2025-11-15 的新闻数据,可用于快速体验 AI 功能 -
查询限制:
- ✅ 只能查询已有日期范围内的数据(11月1-15日)
- ❌ 无法查询实时新闻或未来日期
-
获取最新数据:
- 测试数据仅供快速体验,建议自行部署项目获取实时数据
- 按照 快速开始 部署运行项目
- 等待至少 1 天积累新闻数据后,即可查询最新热点
1. 快速部署
Cherry Studio 提供 GUI 配置界面,5 分钟快速部署,复杂的部分是一键安装的。
图文部署教程:现已更新到我的公众号,回复 “mcp” 即可
详细部署教程:README-Cherry-Studio.md
部署模式说明:
- STDIO 模式(推荐):一次配置后续无需重复配置,图文部署教程中仅以此模式的配置为例。
- HTTP 模式(备选):如果 STDIO 模式配置遇到问题,可使用 HTTP 模式。此模式的配置方式与 STDIO 基本一致,但复制粘贴的内容就一行,不易出错。唯一需要注意的是每次使用前都需要手动启动一下服务。详细请参考 README-Cherry-Studio.md 底部的 HTTP 模式说明。
2. 学习与 AI 对话的姿势
详细对话教程:README-MCP-FAQ.md
🔌 MCP 客户端
TrendRadar MCP 服务支持标准的 Model Context Protocol (MCP) 协议,可以接入各种支持 MCP 的 AI 客户端进行智能分析。
支持的客户端
注意事项:
- 将
/path/to/TrendRadar替换为你的项目实际路径 - Windows 路径使用双反斜杠:
C:\\Users\\YourName\\TrendRadar - 保存后记得重启
常见问题
☕问题答疑与交流
如果你想支持本项目,可通过微信搜索腾讯公益,对里面的助学相关的项目随心捐助
感谢参与过一元点赞的朋友,已收录至顶部致谢名单!你们的支持让开源维护更有动力,个人打赏码现已移除。
- GitHub Issues:适合针对性强的解答。提问时请提供完整信息(截图、错误日志、系统环境等)。
- 公众号交流:适合快速咨询。建议优先在相关文章下的公共留言区交流,如私信,请文明礼貌用语😉
- 💡 部署成功了?来公众号说说感受吧,你的点赞和留言都是我继续更新的动力~
🪄 赞助商
每天追踪这么多热点,写报告、回复消息是否让手腕疲惫?
试试「闪电说」AI 语音输入法 —— 用说的,比打字快 4 倍 ⚡ 。从看热点到输出内容,让效率翻倍 👇
📚 项目相关
4 篇文章:
- 可在该文章下方留言,方便项目作者用手机答疑
- 2个月破 1000 star,我的GitHub项目推广实战经验
- github fork 运行本项目的注意事项
- 基于本项目,如何开展公众号或者新闻资讯类文章写作
AI 开发:
- 如果你有小众需求,完全可以基于我的项目自行开发,零编程基础的也可以试试
- 我所有的开源项目或多或少都使用了自己写的AI辅助软件来提升开发效率,这款工具已开源
- 核心功能:迅速筛选项目代码喂给AI,你只需要补充个人需求即可
- 项目地址:https://github.com/sansan0/ai-code-context-helper
其余项目
📍 毛主席足迹地图 - 交互式动态展示1893-1976年完整轨迹。欢迎诸位同志贡献数据
哔哩哔哩(bilibili)评论区数据可视化分析软件
本项目流程图
flowchart TD
A[👤 用户开始] --> B{🚀 选择部署方式}
B -->|云端部署| C1[🍴 Fork 项目到 GitHub]
B -->|本地部署| C2[🐳 Docker 部署]
C1 --> D[⚙️ 配置通知渠道可同时配置多个]
C2 --> D
D --> E[选择通知方式:📱企业微信 💬飞书 🔔钉钉📟Telegram 📧邮件]
E --> F[🔑 填写通知参数GitHub Secrets 或环境变量]
F --> G[📝 配置关键词config/frequency_words.txt普通词/必须词+/过滤词!]
G --> H[🎯 选择运行模式config/config.yaml]
H --> H1[📋 daily - 当日汇总定时推送所有匹配新闻]
H --> H2[📰 current - 当前榜单定时推送最新榜单]
H --> H3[📈 incremental - 增量监控仅推送新增内容]
H1 --> I[可选:推送时间窗口控制⏰ 限制推送时间范围]
H2 --> I
H3 --> I
I --> J[✅ 配置完成]
J --> K[🤖 系统自动运行]
K --> L[🕷️ 爬取11+平台热点]
L --> M[🔍 关键词筛选]
M --> N[⚖️ 权重算法排序排名60% + 频次30% + 热度10%]
N --> O[📊 生成报告HTML网页 + 推送消息]
O --> P[📱 多渠道推送通知]
P --> Q[🎉 持续接收精准推送告别信息过载]
style A fill:#e3f2fd
style B fill:#f3e5f5
style D fill:#fff3e0
style F fill:#fff9c4
style G fill:#e8f5e9
style H fill:#e0f2f1
style I fill:#fce4ec
style O fill:#e1bee7
style Q fill:#c8e6c9
📄 许可证
GPL-3.0 License
Install
docker run -d \Configuration
{
"mcpServers": {
"trendradar": {
"url": "http://127.0.0.1:3333/mcp",
"type": "streamableHttp"
}
}
}