GitHub Actions + 钉钉,半小时搭个免费的热榜推送机器人

0 阅读3分钟

大家好,欢迎来到小民AI实战笔记

我是小民,只写我跑通过的AI实操

你有没有这种感觉:

每天早上打开手机,想刷点有用的,结果微博、知乎、B站刷一圈,半小时没了。

满屏的八卦、娱乐、体育。

我就想问一句:能不能只给我看我想看的内容?

——能。

TrendRadar,一个免费开源工具,不用服务器,不用懂代码,半小时搞定。


先看效果(钉钉里收到的消息长这样):

一、TrendRadar能干嘛?

**支持35+个平台:**知乎、微博、B站、抖音、百度热搜、今日头条、华尔街见闻、财联社、澎湃新闻……基本够用了。

三种推送模式:

  • 当日汇总: 每天一次,打包推送,适合通勤扫一眼
  • 当前榜单: 实时推送,适合追热点
  • 增量监控: 只推新出现的内容,适合盯某个话题

二、准备什么?

就两样:

  1. GitHub账号(免费注册)
  2. 钉钉(免费,个人就能注册)
钉钉获取Webhook地址
第1步:创建群聊

打开钉钉,创建一个群聊,可以只拉自己

第2步:添加机器人

群设置 ➔ 机器人 ➔ 添加机器人

第3步:选择「自定义机器人」

名字随便写,比如「热榜推送」

第4步:安全设置

勾选并填写「自定义关键词」,示例如下:

只有带关键词的消息才会发进来,防止别人乱用你的webhook

第5步:复制Webhook地址

保存好,地址长这样:

https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxxxxxxxxxxx

钉钉群准备完成

三、开搞

第1步:创建项目

地址:github.com/sansan0/Tre…

注意:不要点Fork

点绿色的Use this templateCreate a new repository

为什么用Template不用Fork?

Fork会带原项目的全部提交历史,占用GitHub资源,Template创建的是干净仓库,更稳定。

第2步:配置关键词——只推你想看的

打开刚创建的仓库,找到config/frequency_words.txt ,点进去编辑。

把下面这段全部复制,粘贴进去:

# 小民AI实战笔记 - 只推送AI相关热点

[GLOBAL_FILTER]
!广告
!营销
!推广
!商城
!红包
!美女
!明星
!八卦
!娱乐
!体育
!足球
!篮球

[WORD_GROUPS]

[AI模型]
OpenAI
ChatGPT
GPT-4
GPT-5
Sora
Claude
Gemini
DeepSeek
通义
文心
豆包
Kimi
智谱

[热点概念]
大模型
LLM
Agent
MCP
RAG
AIGC

[工具应用]
Dify
LangChain
Coze
Ollama
ComfyUI
Midjourney
可灵
即梦

第3步:开启关键词筛选(重要!)

找到 config/config.yaml,把 filter.methodai 改成 keyword

filter:
  method: "keyword" # 改成keyword,用关键词筛选

不改这一步,上面配的关键词不生效

第4步:配置推送渠道

⚠️不要直接把Webhook填在配置文件里!仓库是公开的,别人看到会滥用。

正确做法 ➔ 把Webhook地址存到GitHub Secrets里。

操作步骤

打开你的GitHub仓库 ➔ Settings ➔ Secrets and variables ➔ Actions

点击「New repository secret」

  • Name填DINGTALK_WEBHOOK_URL

  • Secret填你复制的钉钉Webhook地址

点「Add Secret」

然后在config.yaml里,找到钉钉的配置,改成👇

channels:
  dingtalk:
    webhook_url: "${{ secrets.DINGTALK_WEBHOOK_URL }}"

第5步:设置推送时间

默认是早晚各一次,想改成早上6点、中午12点、晚上7点各推送一次,按下面两步:

① 修改config/config.yaml

preset改成custom

schedule:
  enabled: true
  preset: "custom"

②修改timeline.yaml

找到custom:这一行,把整个custom块替换

custom:
  name: "自定义"
  description: "早上6点、中午12点、晚上7点各推送一次"

  default:
    collect: true
    analyze: false
    ai_mode: "current"
    push: false
    report_mode: "current"
    once:
      analyze: true
      push: true

  periods:
    morning:
      name: "早间推送"
      start: "07:00"
      end: "08:00"
      push: true
      report_mode: "daily"
    noon:
      name: "午间推送"
      start: "12:00"
      end: "13:00"
      push: true
      report_mode: "current"
    evening:
      name: "晚间推送"
      start: "19:00"
      end: "20:00"
      push: true
      report_mode: "daily"

  day_plans:
    all_day:
      periods: ["morning", "noon", "evening"]

  week_map:
    1: "all_day"
    2: "all_day"
    3: "all_day"
    4: "all_day"
    5: "all_day"
    6: "all_day"
    7: "all_day"

  overlap:
    policy: "error_on_overlap"

程序每小时运行一次,检查当前时间在不在 06:00-07:00、12:00-13:00、19:00-20:00 这三个窗口内,在就推送,不在就跳过。

改完保存

GitHub Actions就会自动按新时间推送了

第6步:开启自动推送

点仓库上方的 Actions 标签,如果看到提示,点 I understand my workflows, go ahead and enable them。

之后程序会自动运行,不需要你再操作。

四、试试跑起来

配置完成后,不用等到定时推送,可以手动触发一次来验证。

方法一:临时改模式(推荐)

config.yaml 里临时把 preset 改成 always_on,保存

⚠️测试完别忘了改回custom

Actions ➔ 选择工作流 ➔ Run workflow

等待30秒到1分钟,运行成功会显示绿色对勾✅

回到钉钉,检查你创建的群聊——如果收到消息,说明配置成功

方法二:耐心等到推送时间窗口

如果你不想改配置,就等到早上6-7点、中午12-13点、晚上19-20点,程序会自动推送。

五、网页版查看

在电脑上可以通过浏览器看完整的热榜页面:

https://你的github用户名.github.io/你的仓库名

我的地址是:fenglm2021.github.io/trendradar-…

如果觉得信息不是自己想要的,随时调整frequency_words.txt里的关键词就行。

六、卡住了?先看这

Q1: 手动测试时没收到消息,日志显示「当前时间段不执行推送」

这是因为你手动运行的时间不在你预设的推送时间窗口内(比如你设的是6点、12点、19点,但你在早上8点测试)。

解决方法: 用上面「方法一」临时改presetalways_on,测完改回来。


Q2: 日志显示「DINGTALK_WEBHOOK_URL not found」

GitHub Secrets 没配置对,或者配置文件里变量名写错了,检查:

  • Secrets 名称是不是DINGTALK_WEBHOOK_URL(大写)
  • config.yaml 里写的是不是${{ secrets.DINGTALK_WEBHOOK_URL }}

Q3: 推送内容太多或太少

调整frequency_words.txt里的关键词:

  • 想推更多:加关键词
  • 想推更少:删关键词
  • 误推了不想看的:在 [GLOBAL_FILTER] 里加 !不想看的词

七、写在最后

配置完后钉钉每天都能收到自己想看的AI热点消息,省时间,还免费。

整个搭建过程半小时左右,之后全自动运行,感觉还不错,推荐给大家。

📢 关于我

以上是本次分享的全部内容。

如果你对我的实操笔记感兴趣,或想交流AI工具的使用经验:

👉 「个人主页」有我的联系方式,欢迎来聊

感谢阅读,下期见~