GT

gloriousepiphany/trendreader

Developer tools
56 stars 24 forks Quality 80 Trend 30GPL-3.0

告别信息过载,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 部署,数据存储在本地,无需签到,不过需要额外付费购买云服务器。


  1. Fork 本项目到你的 GitHub 账户

    • 点击本页面右上角的"Fork"按钮
  2. 设置 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_URL https://webhook1;https://webhook2;https://webhook3
    TELEGRAM_BOT_TOKEN token1;token2
    TELEGRAM_CHAT_ID chatid1;chatid2
    NTFY_TOPIC topic1;topic2
    NTFY_TOKEN ;token2(第一个无 token 时留空占位)

    配置示例:

    如上图所示,每一行是一个配置项:

    • Name(名称):必须使用下方展开内容中列出的固定名称(如 WEWORK_WEBHOOK_URL)
    • Secret(值):填写你从对应平台获取的实际内容(如 Webhook 地址、Token 等)

    推荐选择:

    用户类型 推荐方案 理由
    普通用户 方式一(免费) 简单快速,够用
    技术用户 方式二(自托管) 完全控制,无限制
    高频用户 方式三(付费) 这个自己去官网看吧

    相关链接:

  3. 手动测试新闻推送:

    💡 完成第1-2步后,请立即测试! 测试成功后再根据需要调整配置(第4步)。

    ⚠️ 重要提醒:请进入你自己 fork 的项目,不是本项目!

    如何找到你的 Actions 页面:

    • 方法一:打开你 fork 的项目主页,点击顶部的 Actions 标签
    • 方法二:直接访问 https://github.com/你的用户名/TrendRadar/actions

    示例对比:

    • ❌ 作者的项目:https://github.com/sansan0/TrendRadar/actions
    • ✅ 你的项目:https://github.com/你的用户名/TrendRadar/actions

    测试步骤:

    1. 进入你项目的 Actions 页面
    2. 找到 “Get Hot News”(必须得是这个字)点进去,点击右侧的 “Run workflow” 按钮运行
      • 如果看不到该字样,参照 #109 解决
    3. 3 分钟左右,消息会推送到你配置的平台

    ⏱️ 测试提示:

    • 手动测试不要太频繁,避免触发 GitHub Actions 限制
    • 点击 Run workflow 后需要刷新浏览器页面才能看到新的运行记录
  4. 配置说明(可选):

    💡 默认配置已可正常使用,如需个性化调整,了解以下三个文件即可

    文件 作用
    config/config.yaml 主配置文件:推送模式、时间窗口、平台列表、热点权重等
    config/frequency_words.txt 关键词文件:设置你关心的词汇,筛选推送内容
    .github/workflows/crawler.yml 执行频率:控制多久运行一次(⚠️ 谨慎修改)

    👉 详细配置教程:配置详解

  5. 🎉 部署成功!分享你的使用体验

    恭喜你完成了 TrendRadar 的配置!现在你可以开始追踪热点资讯了。

    💬 有更多小伙伴在公众号交流使用心得,期待你的分享~

    • 想了解更多玩法和高级技巧?
    • 遇到问题需要快速解答?
    • 有好的想法想要交流?

    👉 欢迎关注公众号「硅基茶水间」,你的点赞和留言都是项目持续更新的动力。

    详细的交流方式,请查看 → 问题答疑与交流

  6. 想要更智能的分析?试试 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. 部分成功判定:只要有一个账号发送成功,整体视为成功
  3. 日志区分:多账号时日志会显示"账号1"、"账号2"等标签
  4. 批次间隔:多账号会增加总发送时间(每个账号独立计算批次间隔)

常见问题

11. 存储配置

🤖 AI 智能分析

TrendRadar v3.0.0 新增了基于 MCP (Model Context Protocol) 的 AI 分析功能,让你可以通过自然语言与新闻数据对话,进行深度分析。

⚠️ 使用前必读

重要提示:AI 功能需要本地新闻数据支持

AI 分析功能不是直接查询网络实时数据,而是分析你本地已积累的新闻数据(存储在 output 文件夹中)

使用说明:

  1. 项目自带测试数据:output 目录默认包含 2025-11-01~2025-11-15 的新闻数据,可用于快速体验 AI 功能

  2. 查询限制:

    • ✅ 只能查询已有日期范围内的数据(11月1-15日)
    • ❌ 无法查询实时新闻或未来日期
  3. 获取最新数据:

    • 测试数据仅供快速体验,建议自行部署项目获取实时数据
    • 按照 快速开始 部署运行项目
    • 等待至少 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 篇文章:

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


View this README on GitHub

Install

docker run -d \

Configuration

{ "mcpServers": { "trendradar": { "url": "http://127.0.0.1:3333/mcp", "type": "streamableHttp" } } }