TrendRadar is an AI-driven public opinion and trend monitoring tool that aggregates information from multiple platforms, including RSS feeds. It offers smart alerts, AI translation, and AI-powered analysis briefings delivered directly to your phone. The platform supports integration with MCP architecture for advanced natural language processing, sentiment analysis, and trend prediction.
最快<strong>30秒</strong>部署的热点助手 —— 告别无效刷屏,只看真正关心的新闻资讯
<a href="https://trendshift.io/repositories/14726" target="_blank"><img src="https://trendshift.io/api/badge/repositories/14726" alt="sansan0%2FTrendRadar | Trendshift" style="width: 250px; height: 55px;" width="250" height="55"/></a>
</div> <div align="center">中文 | English
</div><br>本项目以轻量,易部署为目标
<div align="center">💡 点击下方链接可快速跳转到对应章节。部署推荐从「快速开始」入手,需要详细自定义请看「配置详解」
| 🚀 快速开始 | AI 智能分析 | ⚙️ 配置详解 |
| Docker部署 | MCP客户端 | 📝 更新日志 |
| 🎯 核心功能 | ☕ 支持项目 | 📚 项目相关 |
💡 特别说明:
- 关于名单:下方表格记录了项目起步阶段(天使轮)的支持者。因早期人工统计繁琐,难免存在疏漏或记录不全的情况,如有遗漏,实非本意,万望海涵。
- 未来规划:为了将有限的精力回归代码与功能迭代,即日起不再人工维护此名单。
无论名字是否上榜,你们的每一份支持都是 TrendRadar 能够走到今天的基石。🙏
感谢 GitHub 免费提供的基础设施,这是本项目得以一键 fork便捷运行的最大前提。
本项目使用 newsnow 项目的 API 获取多平台数据,特别感谢作者提供的服务。
经联系,作者表示无需担心服务器压力,但这是基于他的善意和信任。请大家:
感谢以下平台和个人的推荐(按时间排列)
感谢给予资金支持的朋友们,你们的慷慨已化身为键盘旁的零食饮料,陪伴着项目的每一次迭代。
关于"一元点赞"的回归: 随着 v5.0.0 版本的发布,项目迈入了一个新的阶段。为了支持日益增长的 API 成本和咖啡因消耗,"一元点赞"通道现已重新开启。你的每一份心意,都将转化为代码世界里的 Token 和动力。🚀 前往支持
| 点赞人 | 金额 | 日期 | 备注 |
|---|---|---|---|
| D*5 | 1.8 * 3 | 2025.11.24 | |
| *鬼 | 1 | 2025.11.17 | |
| *超 | 10 | 2025.11.17 | |
| R*w | 10 | 2025.11.17 | 这 agent 做的牛逼啊,兄弟 |
| J*o | 1 | 2025.11.17 | 感谢开源,祝大佬事业有成 |
| *晨 | 8.88 | 2025.11.16 | 项目不错,研究学习中 |
| *海 | 1 | 2025.11.15 | |
| *德 | 1.99 | 2025.11.15 | |
| *疏 | 8.8 | 2025.11.14 | 感谢开源,项目很棒,支持一下 |
| M*e | 10 | 2025.11.14 | 开源不易,大佬辛苦了 |
| **柯 | 1 | 2025.11.14 | |
| *云 | 88 | 2025.11.13 | 好项目,感谢开源 |
| *W | 6 | 2025.11.13 | |
| *凯 | 1 | 2025.11.13 | |
| 对*. | 1 | 2025.11.13 | Thanks for your TrendRadar |
| s*y | 1 | 2025.11.13 | |
| **翔 | 10 | 2025.11.13 | 好项目,相见恨晚,感谢开源! |
| *韦 | 9.9 | 2025.11.13 | TrendRadar超赞,请老师喝咖啡~ |
| h*p | 5 | 2025.11.12 | 支持中国开源力量,加油! |
| c*r | 6 | 2025.11.12 | |
| a*n | 5 | 2025.11.12 | |
| 。*c | 1 | 2025.11.12 | 感谢开源分享 |
| *记 | 1 | 2025.11.11 | |
| *主 | 1 | 2025.11.10 | |
| *了 | 10 | 2025.11.09 | |
| *杰 | 5 | 2025.11.08 | |
| *点 | 8.80 | 2025.11.07 | 开发不易,支持一下。 |
| Q*Q | 6.66 | 2025.11.07 | 感谢开源! |
| C*e | 1 | 2025.11.05 | |
| Peter Fan | 20 | 2025.10.29 | |
| M*n | 1 | 2025.10.27 | 感谢开源 |
| *许 | 8.88 | 2025.10.23 | 老师 小白一枚,摸了几天了还没整起来,求教 |
| Eason | 1 | 2025.10.22 | 还没整明白,但你在做好事 |
| P*n | 1 | 2025.10.20 | |
| *杰 | 1 | 2025.10.19 | |
| *徐 | 1 | 2025.10.18 | |
| *志 | 1 | 2025.10.17 | |
| *😀 | 10 | 2025.10.16 | 点赞 |
| **杰 | 10 | 2025.10.16 | |
| *啸 | 10 | 2025.10.16 | |
| *纪 | 5 | 2025.10.14 | TrendRadar |
| J*d | 1 | 2025.10.14 | 谢谢你的工具,很好玩... |
| *H | 1 | 2025.10.14 | |
| 那*O | 10 | 2025.10.13 | |
| *圆 | 1 | 2025.10.13 | |
| P*g | 6 | 2025.10.13 | |
| Ocean | 20 | 2025.10.12 | ...真的太棒了!!!小白级别也能直接用... |
| **培 | 5.2 | 2025.10.2 | github-yzyf1312:开源万岁 |
| *椿 | 3 | 2025.9.23 | 加油,很不错 |
| *🍍 | 10 | 2025.9.21 | |
| E*f | 1 | 2025.9.20 | |
| *记 | 1 | 2025.9.20 | |
| z*u | 2 | 2025.9.19 | |
| **昊 | 5 | 2025.9.17 | |
| *号 | 1 | 2025.9.15 | |
| T*T | 2 | 2025.9.15 | 点赞 |
| *家 | 10 | 2025.9.10 | |
| *X | 1.11 | 2025.9.3 | |
| *飙 | 20 | 2025.8.31 | 来自老童谢谢 |
| *下 | 1 | 2025.8.30 | |
| 2*D | 88 | 2025.8.13 下午 | |
| 2*D | 1 | 2025.8.13 上午 | |
| S*o | 1 | 2025.8.05 | 支持一下 |
| *侠 | 10 | 2025.8.04 | |
| x*x | 2 | 2025.8.03 | trendRadar 好项目 点赞 |
| *远 | 1 | 2025.8.01 | |
| *邪 | 5 | 2025.8.01 | |
| *梦 | 0.1 | 2025.7.30 | |
| **龙 | 10 | 2025.7.29 | 支持一下 |
</div> <br>虚位以待
<a name="-支持项目"></a>
<div align="center">若 TrendRadar 曾为你捕捉价值,不妨为它注入动力,助其持续进化
金额随意,1 元也是对开源的鼓励。欢迎在赞赏时备注留言 (´▽`ʃ♡ƪ)
| 微信赞赏 | 支付宝赞赏 |
|---|---|
| <img src="https://cdn-1258574687.cos.ap-shanghai.myqcloud.com/img/%2F2025%2F07%2F17%2F2ae0a88d98079f7e876c2b4dc85233c6-9e8025.JPG" width="240" alt="微信赞赏"> | <img src="https://cdn-1258574687.cos.ap-shanghai.myqcloud.com/img/%2F2025%2F07%2F17%2F1ed4f20ab8e35be51f8e84c94e6e239b4-fe4947.JPG" width="240" alt="支付宝赞赏"> |
如果你在项目中使用或借鉴了本项目的思路、核心代码,非常欢迎在 README 或文档中注明来源并附上本仓库链接。
这将有助于项目的持续维护和社区发展,感谢你的尊重与支持!❤️
<div align="center">友情提示:
本项目为开源分享,非商业产品。把作者当朋友而非客服,沟通效率会更高哦!
| 公众号关注 |
|---|
| <img src="_image/weixin.png" width="500" title="硅基茶水间"/> |
📌 查看最新更新:原仓库更新日志 :
Breaking Change:配置文件升级(config.yaml 2.0.0),旧版
push_window和analysis_window配置不再兼容,请参考新版 config.yaml 迁移
timeline.yaml,用一套配置控制「什么时间采集 / 推送 / AI 分析」always_on(全天候,默认)、morning_evening(早晚汇总)、office_hours(办公时间)、night_owl(夜猫子)、custom(自定义);也支持在 presets: 下新增自己的模板,只要 key 不重复,然后在 config.yaml 里填你的模板名即可timeline.yaml 编辑标签页,与 config.yaml / frequency_words.txt 并列schedule.presetai_analysis.include_standalone):
include_rank_timeline 联动:开启时利用轨迹数据做深度趋势分析,关闭时基于排名做简要判断standalone_summaries JSON 字段(独立源点速览),所有推送渠道均已适配渲染get_channel_format_guide 工具,告诉 AI 每个渠道支持什么格式、有什么限制,生成的内容排版更好看和 mcp 功能一样, 这个小工具我也不新开一个仓库维护了, 反正纯前端, 都搁一起吧
search_news(query="关键词", include_url=True) → read_article(url=...) 读取正文{success, summary, data, error} 结构asyncio.to_thread() 包装同步调用get_latest_rss 支持多日查询(days 参数),跨日期 URL 去重get_trending_topics 支持 /pattern/ 正则语法和 display_namemake_cache_key() 函数,参数排序+MD5 哈希确保一致性重大重构:AI 模块迁移至 LiteLLM
provider 字段,改用 model: "provider/model_name" 格式num_retries)、备用模型 (fallback_models)ai.provider → 移除(已合并到 model)ai.base_url → ai.api_baseAI_PROVIDER 环境变量 → 移除AI_BASE_URL 环境变量 → AI_API_BASEdeepseek/deepseek-chatopenai/gpt-4ogemini/gemini-2.5-flashanthropic/claude-3-5-sonnet主要见 config.yaml 描述
🌐 AI 翻译功能
🔧 配置架构优化
✨ AI 分析增强
🔧 多模型适配
🐛 Bug 修复
开发小插曲: 致敬那个陪伴我两年多、却在刚续费后反手弹出
"This organization has been disabled"的某 C 厂模型
✨ 推送内容"五大板块"重构
本次更新对推送消息进行了区域化重构,现在推送内容清晰地划分为五大核心板块:
✨ AI 智能分析推送功能
only_analysis(仅 AI 分析)、both(两者都推送)config/ai_analysis_prompt.txt 文件自定义 AI 分析角色和输出格式📋 独立展示区功能
📊 推送体验重构
🔧 配置优化
[组别名] 语法,支持 # 注释行,配置更清晰(感谢 @songge8 提出的建议)AI_API_KEY、AI_PROVIDER 等)💡 详细配置教程见 让 AI 帮我分析热点
/pattern/ 正则语法,解决英文子字符串误匹配问题(如 ai 匹配 training)📖 查看语法详解=> 备注 给复杂的正则表达式起个好记的名字,推送消息显示更清晰(如 /\bai\b/ => AI相关)get_latest_rss、search_rss、get_rss_feeds_statussearch_news 支持 include_rss 参数同时搜索热榜和 RSSkeyword(按关键词分组)和 platform(按平台分组)两种显示模式output/{type}/{date}.dbsort_by_position_first 同时影响热榜和 RSSconfig.yaml 重新组织为 7 个逻辑分组(app、report、notification、storage、platforms、rss、advanced),配置路径更清晰MCP 模块更新 - 优化工具集,新增聚合对比功能,合并冗余工具:
aggregate_news 工具 - 跨平台新闻去重聚合compare_periods 工具 - 时期对比分析(周环比/月环比)find_similar_news + search_related_news_history → find_related_newsget_trending_topics - 新增 auto_extract 模式自动提取热点band_rank)导致的重复推送问题MCP 模块更新:
sync_from_remote、get_storage_status、list_available_dates🎉 重大更新:全面重构存储和核心架构
🎉 核心功能增强
多账号推送支持
; 分隔多个账号,例如:FEISHU_WEBHOOK_URL=url1;url2推送区域配置
display.region_order 自定义各区域的显示顺序(v5.2.0 替代原 reverse_content_order)display.regions 控制各区域是否显示(热榜、新增热点、RSS、独立展示区、AI 分析)全局过滤关键词
[GLOBAL_FILTER] 区域标记,支持全局过滤不想看到的内容🐳 Docker 双路径 HTML 生成优化
index.html 无法同步到宿主机的问题index.html(项目根目录):供 GitHub Pages 访问output/index.html:通过 Docker Volume 挂载,宿主机可直接访问🐳 Docker MCP 镜像支持
wantcat/trendradar-mcp🌐 Web 服务器支持
manage.py 命令控制启动/停止:docker exec -it trendradar python manage.py start_webserverhttp://localhost:8080(端口可配置)📖 文档优化
🔧 升级说明:
main.py、config/config.yaml(新增多账号推送支持,无需修改现有配置)MCP 模块更新:
🔧 格式优化
Bark 推送增强
Slack 格式精准化
<url|text> 和加粗语法:*text*性能提升
🔧 升级说明:
main.py,config.yaml🎉 新增 Slack 推送支持
团队协作推送渠道
多种部署方式
SLACK_WEBHOOK_URL SecretSLACK_WEBHOOK_URLconfig/config.yaml 配置文件📖 详细配置教程:快速开始 - Slack 推送
🔧 升级说明:
main.py、config/config.yaml、.github/workflows/crawler.yml🎉 新增 Bark 推送支持
iOS 专属推送渠道
多种部署方式
BARK_URL SecretBARK_URLconfig/config.yaml 配置文件📖 详细配置教程:快速开始 - Bark 推送
🐛 Bug 修复
config.yaml 中 ntfy_server_url 配置不生效的问题 (#345)🔧 升级说明:
main.py、config/config.yaml、.github/workflows/crawler.yml🎯 新增高级定制功能
关键词排序优先级配置
显示数量精准控制
@数字 语法为特定关键词设置限制📖 详细配置教程:关键词配置 - 高级配置
🔧 升级说明:
main.py、config/config.yamlMCP 模块更新:
'float' object has no attribute 'lower' 错误升级说明(GitHub Fork 用户):
main.pymarkdown(企业微信群机器人)和 text(个人微信应用)WEWORK_MSG_TYPE 环境变量配置,支持 GitHub Actions、Docker、docker compose 等多种部署方式text 模式自动清除 Markdown 语法,提供纯文本推送效果升级说明(GitHub Fork 用户):
main.py、config/config.yaml.github/workflows/crawler.yml(如使用 GitHub Actions 部署)enable_crawler、report_mode、push_window 等)支持通过环境变量覆盖,解决 NAS 用户修改配置文件不生效的问题(详见 🐳 Docker 部署 章节)MCP 模块更新:
重大更新 - AI 分析功能上线 ✨
核心功能:
分析能力:
更新提示:
更新内容:
更新提示:
感谢 nidaye996 发现的体验问题
更新内容:
更新提示:
更新内容:
更新提示:
新增 ntfy 推送通知
核心功能:
使用场景:
更新提示:
修复说明:
使用说明:
更新提示:
使用说明:
核心改进:
更新提示:
修复问题:
重大重构:
config/config.yaml 文件管理(main.py 我依旧没拆分,方便你们复制升级)daily(当日汇总)、current(当前榜单)、incremental(增量监控)配置文件说明:
config/config.yaml - 主配置文件(应用设置、爬虫配置、通知配置、平台配置等)config/frequency_words.txt - 关键词配置(监控词汇设置)功能新增:增加增量推送(在 main.py 头部配置 FOCUS_NEW_ONLY),该开关只关心新话题而非持续热度,只在有新内容时才发通知。
修复问题: 某些情况下,由于新闻本身含有特殊符号导致的偶发性排版异常。
企业微信 和 Telegram 的推送消息有长度限制,对此我采用将消息拆分推送的方式。开发文档详见企业微信 和 Telegram
在本版本之前的旧版本,不仅 main.py 需要复制替换, crawler.yml 也需要你复制替换 https://github.com/sansan0/TrendRadar/blob/master/.github/workflows/crawler.yml
感谢 claude research 整理的各平台 api ,让我快速完成各平台适配(虽然代码更多冗余了~
200 star⭐ 了, 继续给大伙儿助兴~近期,在我的"怂恿"下,挺多人在我公众号点赞分享推荐助力了我,我都在后台看见了具体账号的鼓励数据,很多都成了天使轮老粉(我玩公众号才一个多月,虽然注册是七八年前的事了哈哈,属于上车早,发车晚),但因为你们没有留言或私信我,所以我也无法一一回应并感谢支持,在此一并谢谢!
100 star⭐ 了,写个小功能给大伙儿助助兴 frequency_words.txt 文件增加了一个【必须词】功能,使用 + 号
+唐僧
+猪八戒
+唐僧
!唐僧念经
默认监控 11 个主流平台,也可自行增加额外的平台
💡 详细配置教程见 配置详解 - 平台配置
支持 RSS/Atom 订阅源抓取,按关键词分组统计(与热榜格式一致):
config.yaml 中添加 RSS 源💡 RSS 使用与热榜相同的
frequency_words.txt进行关键词过滤
提供基于 Web 的图形化配置界面,无需手动编辑 YAML 文件,通过表单即可完成所有配置项的修改与导出。
👉 在线体验:https://sansan0.github.io/TrendRadar/
<img src="/_image/editor.png" alt="可视化配置编辑器" width="80%">三种推送模式:
| 模式 | 适用场景 | 推送特点 |
|---|---|---|
| 当日汇总 (daily) | 企业管理者/普通用户 | 按时推送当日所有匹配新闻(会包含之前推送过的) |
| 当前榜单 (current) | 自媒体人/内容创作者 | 按时推送当前榜单匹配新闻(持续在榜的每次都出现) |
| 增量监控 (incremental) | 投资者/交易员 | 仅推送新增内容,零重复 |
💡 快速选择指南:
- 不想看到重复新闻 → 用
incremental(增量监控)- 想看完整榜单趋势 → 用
current(当前榜单)- 需要每日汇总报告 → 用
daily(当日汇总)详细对比和配置教程见 配置详解 - 推送模式详解
附加功能(可选):
| 功能 | 说明 | 默认 |
|---|---|---|
| 调度系统 | 按周一到周日逐日编排:为每天分配不同时间段、推送模式和 AI 分析策略。内置 5 种预设(always_on / morning_evening / office_hours / night_owl / custom),也可自定义。支持工作日/周末差异化、跨午夜时段、per-period 去重(v6.0.0) | morning_evening |
| 内容顺序配置 | 通过 display.region_order 调整各区域(热榜、新增热点、RSS、独立展示区、AI 分析)的显示顺序;通过 display.regions 控制各区域是否显示(v5.2.0) | 见配置文件 |
| 显示模式切换 | keyword=按关键词分组,platform=按平台分组(v4.6.0 新增) | keyword |
设置个人关键词(如:AI、比亚迪、教育政策),只推送相关热点,过滤无关信息
💡 基础配置教程:关键词配置 - 基础语法
💡 高级配置教程:关键词配置 - 高级配置
💡 也可以不做筛选,完整推送所有热点(将 frequency_words.txt 留空)
实时追踪新闻热度变化,让你不仅知道"什么在热搜",更了解"热点如何演变"
💡 推送格式说明见 消息样式说明
不再被各个平台的算法牵着走,TrendRadar 会重新整理全网热搜
💡 三个比例可以调整,详见 配置详解 - 热点权重调整
支持企业微信(+ 微信推送方案)、飞书、钉钉、Telegram、邮件、ntfy、Bark、Slack,消息直达手机和邮箱
💡 详细配置教程见 推送到多个群/设备
将推送内容翻译为任意语言,打破语言壁垒,无论是阅读国内热点还是通过 RSS 订阅海外资讯,都能以母语轻松获取
config.yaml 中设置 ai_translation.enabled: true 和目标语言即可ai_translation_prompt.txt 自定义翻译风格和术语ai 配置段的模型设置# config.yaml 快速启用示例
ai_translation:
enabled: true
language: "English" # 翻译目标语言
💡 翻译功能与 AI 分析功能共享模型配置,只需配置一次
ai.api_key即可同时使用两个功能
RSS 源参考:以下是一些 RSS 订阅源合集,可按需选用
⚠️ 部分海外媒体内容可能涉及敏感话题,AI 模型可能拒绝翻译,建议根据实际需求筛选订阅源
多存储后端支持:
💡 详细说明见 数据保存在哪里?
使用 AI 大模型对推送内容进行深度分析,自动生成热点洞察报告
config/ai_analysis_prompt.txt 自定义分析角度💡 详细配置教程见 让 AI 帮我分析热点
为指定平台提供完整热榜展示,不受关键词过滤影响
💡 详细配置教程见 推送内容怎么显示? - 独立展示区
基于 MCP (Model Context Protocol) 协议的 AI 对话分析系统,让你用自然语言深度挖掘新闻数据
💡 使用提示:AI 功能需要本地新闻数据支持
- 项目自带测试数据,可立即体验功能
- 建议自行部署运行项目,获取更实时的数据
详见 AI 智能分析
运行后根目录生成 index.html,即为完整的新闻报告页面。
部署方式:点击 Use this template 创建仓库,可部署到 Cloudflare Pages 或 GitHub Pages 等静态托管平台。
💡 提示:启用 GitHub Pages 可获得在线访问地址,进入仓库 Settings → Pages 即可开启。效果预览
⚠️ 原 GitHub Actions 自动存储功能已下线(该方案曾导致 GitHub 服务器负载过高,影响平台稳定性)。
从"被算法推荐绑架"变成"主动获取自己想要的信息"
适合人群: 投资者、自媒体人、企业公关、关心时事的普通用户
典型场景: 股市投资监控、品牌舆情追踪、行业动态关注、生活资讯获取
| 网页效果(邮箱推送效果) | 飞书推送效果 | AI 分析推送效果 |
|---|---|---|
![]() | ![]() | ![]() |
提醒:建议先 查看最新官方文档,确保配置步骤是最新的。
点击本仓库页面右上角的绿色 [Use this template] 按钮 → 选择 "Create a new repository"。
<br>⚠️ 提醒:
- 后续文档中提到的 "Fork" 均可理解为 "Use this template"
- 使用 Fork 可能导致运行异常,详见 Issue #606
在你 Fork 后的仓库中,进入 Settings > Secrets and variables > Actions > New repository secret
📌 重要说明(请务必仔细阅读):
WEWORK_WEBHOOK_URL、FEISHU_WEBHOOK_URL 等),不能自己随意修改或创造新名称,否则系统无法识别配置示例:
<img src="_image/secrets.png" alt="GitHub Secrets 配置示例"/>如上图所示,每一行是一个配置项:
WEWORK_WEBHOOK_URL)GitHub Secret 配置(⚠️ Name 名称必须严格一致):
WEWORK_WEBHOOK_URL(请复制粘贴此名称,不要手打,避免打错)机器人设置步骤:
由于该方案是基于企业微信的插件机制,推送样式为纯文本(无 markdown 格式),但可以直接推送到个人微信,无需安装企业微信 App。
GitHub Secret 配置(⚠️ Name 名称必须严格一致):
Name(名称):WEWORK_WEBHOOK_URL(请复制粘贴此名称,不要手打)
Secret(值):你的企业微信应用 Webhook 地址
Name(名称):WEWORK_MSG_TYPE(请复制粘贴此名称,不要手打)
Secret(值):text
设置步骤:
WEWORK_MSG_TYPE Secret,值设为 text说明:
text 为纯文本,markdown 为富文本(默认)若启用 AI 分析,飞书推送偶发(约 5% 概率)会有数分钟延迟(推测为平台对 AI 生成内容的合规性审核)。
GitHub Secret 配置(⚠️ Name 名称必须严格一致):
FEISHU_WEBHOOK_URL(请复制粘贴此名称,不要手打)有两个方案,方案一配置简单,方案二配置复杂(但是稳定推送)
其中方案一,由 ziventian发现并提供建议,在这里感谢他,默认是个人推送,也可以配置群组推送操作#97 ,
方案一:
对部分人存在额外操作,否则会报"系统错误"。需要手机端搜索下机器人,然后开启飞书机器人应用(该建议来自于网友,可参考)
点击"新建机器人指令"
点击"选择触发器",往下滑动,点击"Webhook 触发"
此时你会看到"Webhook 地址",把这个链接先复制到本地记事本暂存,继续接下来的操作
"参数"里面放上下面的内容,然后点击"完成"
{
"message_type": "text",
"content": {
"text": "{{内容}}"
}
}
点击"选择操作" > "通过官方机器人发消息"
消息标题填写"TrendRadar 热点监控"
最关键的部分来了,点击 + 按钮,选择"Webhook 触发",然后按照下面的图片摆放

FEISHU_WEBHOOK_URL方案二:
点击"新建机器人应用"
进入创建的应用后,点击"流程设计" > "创建流程" > "选择触发器"
往下滑动,点击"Webhook 触发"
此时你会看到"Webhook 地址",把这个链接先复制到本地记事本暂存,继续接下来的操作
"参数"里面放上下面的内容,然后点击"完成"
{
"message_type": "text",
"content": {
"text": "{{内容}}"
}
}
点击"选择操作" > "发送飞书消息",勾选 "群消息",然后点击下面的输入框,点击"我管理的群组"(如果没有群组,你可以在飞书 app 上创建群组)
消息标题填写"TrendRadar 热点监控"
最关键的部分来了,点击 + 按钮,选择"Webhook 触发",然后按照下面的图片摆放

FEISHU_WEBHOOK_URLGitHub Secret 配置(⚠️ Name 名称必须严格一致):
DINGTALK_WEBHOOK_URL(请复制粘贴此名称,不要手打)机器人设置步骤:
创建机器人(仅 PC 端支持):
配置机器人:
完成设置:
DINGTALK_WEBHOOK_URL注意:移动端只能接收消息,无法创建新机器人。
</details> <details> <summary>👉 点击展开:<strong>Telegram Bot</strong></summary> <br>GitHub Secret 配置(⚠️ Name 名称必须严格一致):
Name(名称):TELEGRAM_BOT_TOKEN(请复制粘贴此名称,不要手打)
Secret(值):你的 Telegram Bot Token
Name(名称):TELEGRAM_CHAT_ID(请复制粘贴此名称,不要手打)
Secret(值):你的 Telegram Chat ID
说明:Telegram 需要配置两个 Secret,请分别点击两次"New repository secret"按钮添加
<br>机器人设置步骤:
创建机器人:
@BotFather(大小写注意,有蓝色徽章勾勾,有类似 37849827 monthly users,这个才是官方的,有一些仿官方的账号注意辨别)/newbot 命令创建新机器人123456789:AAHfiqksKZ8WmR2zSjiQ7_v4TMAKdiHm9T0)获取 Chat ID:
方法一:通过官方 API 获取
https://api.telegram.org/bot<你的Bot Token>/getUpdates"chat":{"id":数字} 中的数字方法二:使用第三方工具
@userinfobot 并发送 /start配置到 GitHub:
TELEGRAM_BOT_TOKEN:填入第 1 步获得的 Bot TokenTELEGRAM_CHAT_ID:填入第 2 步获得的 Chat ID<br>⚠️ 重要配置依赖:邮件推送需要 HTML 报告文件。请确保
config/config.yaml中的storage.formats.html设置为true:storage: formats: sqlite: true txt: false html: true # 必须启用,否则邮件推送会失败如果设置为
false,邮件推送时会报错:错误:HTML文件不存在或未提供: None
GitHub Secret 配置(⚠️ Name 名称必须严格一致):
Name(名称):EMAIL_FROM(请复制粘贴此名称,不要手打)
Secret(值):发件人邮箱地址
Name(名称):EMAIL_PASSWORD(请复制粘贴此名称,不要手打)
Secret(值):邮箱密码或授权码
Name(名称):EMAIL_TO(请复制粘贴此名称,不要手打)
Secret(值):收件人邮箱地址(多个收件人用英文逗号分隔,也可以和 EMAIL_FROM 一样,自己发送给自己)
Name(名称):EMAIL_SMTP_SERVER(可选配置,请复制粘贴此名称)
Secret(值):SMTP服务器地址(可留空,系统会自动识别)
Name(名称):EMAIL_SMTP_PORT(可选配置,请复制粘贴此名称)
Secret(值):SMTP端口(可留空,系统会自动识别)
说明:邮件推送需要配置至少3个必需 Secret(EMAIL_FROM、EMAIL_PASSWORD、EMAIL_TO),后两个为可选配置
<br>支持的邮箱服务商(自动识别 SMTP 配置):
| 邮箱服务商 | 域名 | SMTP 服务器 | 端口 | 加密方式 |
|---|---|---|---|---|
| Gmail | gmail.com | smtp.gmail.com | 587 | TLS |
| QQ邮箱 | qq.com | smtp.qq.com | 465 | SSL |
| Outlook | outlook.com | smtp-mail.outlook.com | 587 | TLS |
| Hotmail | hotmail.com | smtp-mail.outlook.com | 587 | TLS |
| Live | live.com | smtp-mail.outlook.com | 587 | TLS |
| 163邮箱 | 163.com | smtp.163.com | 465 | SSL |
| 126邮箱 | 126.com | smtp.126.com | 465 | SSL |
| 新浪邮箱 | sina.com | smtp.sina.com | 465 | SSL |
| 搜狐邮箱 | sohu.com | smtp.sohu.com | 465 | SSL |
| 天翼邮箱 | 189.cn | smtp.189.cn | 465 | SSL |
| 阿里云邮箱 | aliyun.com | smtp.aliyun.com | 465 | TLS |
| Yandex邮箱 | yandex.com | smtp.yandex.com | 465 | TLS |
| iCloud邮箱 | icloud.com | smtp.mail.me.com | 587 | SSL |
自动识别:使用以上邮箱时,无需手动配置
EMAIL_SMTP_SERVER和EMAIL_SMTP_PORT,系统会自动识别。反馈说明:
特别感谢:
- 感谢 @DYZYD 贡献天翼邮箱(189.cn)配置并完成自发自收测试 (#291)
- 感谢 @longzhenren 贡献阿里云邮箱(aliyun.com)配置并完成测试 (#344)
- 感谢 @ACANX 贡献 Yandex 邮箱(yandex.com)配置并完成测试 (#663)
- 感谢 @Sleepy-Tianhao 贡献 iCloud 邮箱(icloud.com)配置并完成测试 (#728)
常见邮箱设置:
EMAIL_PASSWORD 填写授权码,而非 QQ 密码EMAIL_PASSWORD 填写应用专用密码EMAIL_PASSWORD 填写授权码
<br>
高级配置: 如果自动识别失败,可手动配置 SMTP:
EMAIL_SMTP_SERVER:如 smtp.gmail.comEMAIL_SMTP_PORT:如 587(TLS)或 465(SSL)
<br>
如果有多个收件人(注意是英文逗号分隔):
两种使用方式:
特点:
快速开始:
下载 ntfy 应用:
订阅主题(选择一个难猜的名称):
建议格式:trendradar-{你的名字缩写}-{随机数字}
不能使用中文
✅ 好例子:trendradar-zs-8492
❌ 坏例子:news、alerts(太容易被猜到)
配置 GitHub Secret(⚠️ Name 名称必须严格一致):
Name(名称):NTFY_TOPIC(请复制粘贴此名称,不要手打)
Secret(值):填写你刚才订阅的主题名称
Name(名称):NTFY_SERVER_URL(可选配置,请复制粘贴此名称)
Secret(值):留空(默认使用 ntfy.sh)
Name(名称):NTFY_TOKEN(可选配置,请复制粘贴此名称)
Secret(值):留空
说明:ntfy 至少需要配置 1 个必需 Secret (NTFY_TOPIC),后两个为可选配置
测试:
curl -d "测试消息" ntfy.sh/你的主题名称
适合人群:有服务器、追求完全隐私、技术能力强
优势:
Docker 一键部署:
docker run -d \
--name ntfy \
-p 80:80 \
-v /var/cache/ntfy:/var/cache/ntfy \
binwiederhier/ntfy \
serve --cache-file /var/cache/ntfy/cache.db
配置 TrendRadar:
NTFY_SERVER_URL: https://ntfy.yourdomain.com
NTFY_TOPIC: trendradar-alerts # 自托管可用简单名称
NTFY_TOKEN: tk_your_token # 可选:启用访问控制
在应用中订阅:
常见问题:
<details> <summary><strong>Q1: 免费版够用吗?</strong></summary>每天 250 条消息对大多数用户足够。按 30 分钟抓取一次计算,每天约 48 次推送,完全够用。
</details> <details> <summary><strong>Q2: Topic 名称真的安全吗?</strong></summary>如果你选择随机的、足够长的名称(如 trendradar-zs-8492-news),暴力破解几乎不可能:
推荐选择:
| 用户类型 | 推荐方案 | 理由 |
|---|---|---|
| 普通用户 | 方式一(免费) | 简单快速,够用 |
| 技术用户 | 方式二(自托管) | 完全控制,无限制 |
| 高频用户 | 方式三(付费) | 这个自己去官网看吧 |
相关链接:
</details> <details> <summary>👉 点击展开:<strong>Bark 推送</strong>(iOS 专属,简洁高效)</summary> <br>GitHub Secret 配置(⚠️ Name 名称必须严格一致):
BARK_URL(请复制粘贴此名称,不要手打)Bark 简介:
Bark 是一款 iOS 平台的免费开源推送工具,特点是简单、快速、无广告。
使用方式:
下载 Bark App:
获取推送 URL:
https://api.day.app/your_device_key)BARK_URL适合人群:有服务器、追求完全隐私、技术能力强
Docker 一键部署:
docker run -d \
--name bark-server \
-p 8080:8080 \
finab/bark-server
配置 TrendRadar:
BARK_URL: http://your-server-ip:8080/your_device_key
注意事项:
相关链接:
</details> <details> <summary>👉 点击展开:<strong>Slack 推送</strong></summary> <br>GitHub Secret 配置(⚠️ Name 名称必须严格一致):
SLACK_WEBHOOK_URL(请复制粘贴此名称,不要手打)Slack 简介:
Slack 是团队协作工具,Incoming Webhooks 可以将消息推送到 Slack 频道。
设置步骤:
访问 Slack API 页面:
选择创建方式:
填写 App 信息:
TrendRadar 或 热点新闻监控)导航到 Incoming Webhooks:
启用功能:
OFF 切换到 ON添加新的 Webhook:
选择目标频道:
#热点新闻)授权应用:
查看生成的 URL:
https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX复制 URL:
配置到 TrendRadar:
SLACK_WEBHOOK_URLconfig/config.yaml 的 slack_webhook_url 字段docker/.env 文件的 SLACK_WEBHOOK_URL 变量注意事项:
消息格式预览:
*[第 1/2 批次]*
📊 *热点词汇统计*
🔥 *[1/3] AI ChatGPT* : 2 条
1. [百度热搜] 🆕 ChatGPT-5正式发布 *[1]* - 09时15分 (1次)
2. [今日头条] AI芯片概念股暴涨 *[3]* - [08时30分 ~ 10时45分] (3次)
相关链接:
</details> <details> <summary>👉 点击展开:<strong>通用 Webhook 推送</strong>(支持 Discord、Matrix、IFTTT 等)</summary> <br>GitHub Secret 配置(⚠️ Name 名称必须严格一致):
Name(名称):GENERIC_WEBHOOK_URL(请复制粘贴此名称,不要手打)
Secret(值):你的 Webhook URL
Name(名称):GENERIC_WEBHOOK_TEMPLATE(可选配置,请复制粘贴此名称)
Secret(值):JSON 模板字符串,支持 {title} 和 {content} 占位符
通用 Webhook 简介:
通用 Webhook 支持任意接受 HTTP POST 请求的平台,包括但不限于:
配置示例:
获取 Webhook URL:
配置模板:
{"content": "{content}"}
GitHub Secret 配置:
GENERIC_WEBHOOK_URL:Discord Webhook URLGENERIC_WEBHOOK_TEMPLATE:{"content": "{content}"}模板支持两个占位符:
{title} - 消息标题{content} - 消息内容模板示例:
# 默认格式(留空时使用)
{"title": "{title}", "content": "{content}"}
# Discord 格式
{"content": "{content}"}
# 自定义格式
{"text": "{content}", "username": "TrendRadar"}
注意事项:
; 分隔)⚠️ 提醒:
- 完成第 1-2 步后,请立即测试!测试成功后再根据需要调整配置(第 4 步)
- 请进入你自己的项目,不是本项目!
如何找到你的 Actions 页面:
https://github.com/你的用户名/TrendRadar/actions示例对比:
https://github.com/sansan0/TrendRadar/actionshttps://github.com/你的用户名/TrendRadar/actions测试步骤:
<br>⚠️ 提醒:
- 手动测试不要太频繁,避免触发 GitHub Actions 限制
- 点击 Run workflow 后需要刷新浏览器页面才能看到新的运行记录
默认配置已可正常使用,如需个性化调整,了解以下文件即可:
| 文件 | 作用 |
|---|---|
config/config.yaml | 主配置文件:推送模式、时间窗口、平台列表、热点权重等 |
config/frequency_words.txt | 关键词文件:设置你关心的词汇,筛选推送内容 |
config/ai_analysis_prompt.txt | AI 提示词模板:自定义 AI 分析师的角色和分析维度 |
.github/workflows/crawler.yml | 执行频率:控制多久运行一次(⚠️ 谨慎修改) |
👉 详细配置教程:配置详解
<br>v4.0.0 重要变更:引入「活跃度检测」机制,GitHub Actions 需定期签到以维持运行。
Actions → Check In → Run workflow