开源一个热搜聚合推送工具 HotPush,热点自动推送到 Telegram/企业微信/飞书,不用再挨个刷平台了

52 阅读3分钟

前言

作为一个经常刷热搜的人,每天要在微博、知乎、B站、V2EX、Hacker News 之间来回切换,就为了不错过什么重要的事。后来实在受不了了,干脆自己写了一个工具——HotPush,把多个平台的热榜聚合到一个页面,新热点还能自动推送到 Telegram、企业微信、飞书等 IM,不用主动去刷,热点自己来找你。

项目已开源,欢迎体验和交流。

在线演示hotpush.dawenzaist.de5.net(测试账号:test / test123

GitHubgithub.com/JackyST0/ho…

效果展示

热搜榜

技术选型

层级技术选择理由
后端框架FastAPI异步原生支持,性能好,自带 Swagger 文档
前端框架Vue 3 + Vite组合式 API 开发体验好,Vite 构建速度快
UITailwind CSS原子化 CSS,快速搭建现代化界面
状态管理PiniaVue 3 官方推荐,比 Vuex 更简洁
数据库MySQL持久化推送记录、用户数据、推送规则等
缓存Redis热榜数据缓存、推送去重、抓取锁
定时任务APScheduler轻量级,支持异步,配置灵活
数据源RSSHub万物皆可 RSS,统一的数据获取方式
部署Docker Compose一键启动全部服务,开箱即用

架构设计

整体分为四个核心模块:

1. 数据抓取层

通过 RSSHub 统一获取各平台热榜数据。项目自带 RSSHub 实例,支持多实例容错——主实例挂了自动切换备用实例。用 Redis 缓存抓取结果(默认 5 分钟 TTL),避免频繁请求上游。

2. 推送服务层

这是项目的核心。设计了一个 BasePusher 抽象基类,每个推送渠道继承实现:

  • Telegram:Bot API 推送,支持 HTML 格式
  • Discord:Webhook 推送
  • 企业微信 / 飞书 / 钉钉:Webhook 推送,Markdown 格式
  • 邮件:SMTP 推送,HTML 模板
  • Webhook:通用 Webhook,适配任意平台

消息支持自动分割(避免超长消息被截断),按平台分组显示。

3. 规则过滤层

推送前经过规则引擎过滤:

  • 关键词过滤:包含/排除关键词
  • 时间段限制:设置免打扰时段
  • 来源过滤:只推送指定平台的内容
  • 去重机制:Redis Set 记录已推送条目,避免重复推送

4. Web 管理层

Vue 3 构建的管理界面,所有配置可视化操作:

  • 实时查看聚合热搜榜
  • 在线配置推送渠道(填 Token 就行,不用改配置文件)
  • 管理过滤规则
  • 查看推送历史
  • 多用户权限管理

部署方式

Docker Compose 一键启动,包含 MySQL、Redis、RSSHub、后端、前端共 5 个服务:

git clone https://github.com/JackyST0/hotpush.git
cd hotpush
docker compose up -d

访问 http://localhost:3001,默认管理员 admin / admin123

目前支持的平台

微博、知乎、B站、V2EX、Hacker News、Linux DO、掘金、少数派、品玩、豆瓣热映、豆瓣新书、联合早报、澎湃新闻,共 13 个内置源,还支持自定义添加任意 RSS 源。

后续计划

  • AI 摘要:接入大模型,自动总结每日热点
  • PWA 移动端:手机端体验优化
  • 热搜趋势图表:可视化热度变化

写在最后

项目 MIT 协议开源,欢迎 Star、Issue、PR。如果你也受够了每天在各个平台之间来回切换刷热搜,可以试试这个工具。

GitHub 地址:github.com/JackyST0/ho…