Skip to content

JackyST0/hotpush

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🔥 HotPush

热点聚合推送平台 - 聚合全网热点,主动推送到你指定的平台

CI License: MIT Python FastAPI Vue

✨ 特性

  • 🌐 公开热搜榜 - 访问首页即可浏览全网热点,无需登录也能快速体验
  • 🔐 分级权限 - 热搜公开可见,数据源、推送、规则、用户管理等功能登录后按角色授权
  • 📦 热点聚合 - 聚合微博、知乎、B站、V2EX、Hacker News、NodeSeek 等多个平台热榜
  • 📨 多渠道推送 - 支持 Telegram、Discord、企业微信、飞书、钉钉等
  • 实时更新 - 分钟级热点监控,第一时间推送新热点
  • 🎯 智能过滤 - 支持关键词过滤、时间段限制、来源过滤等规则
  • 🤖 AI 摘要 - 支持 OpenAI、Claude、DeepSeek、Ollama 等,自动生成智能热点摘要
  • 📈 趋势分析 - 可视化热搜排名变化趋势与热度走势
  • 🎨 现代化界面 - Vue 3 + Tailwind CSS 构建的响应式前端
  • 👥 用户管理 - 支持多用户、权限控制
  • 🐳 一键部署 - Docker 快速启动,开箱即用
  • 🆓 开源免费 - MIT 协议,自由使用

🌐 在线演示

想先体验一下?访问我们的在线演示站点:

演示地址https://hotpush.dawenzaist.de5.net

热搜榜可直接访问,无需登录。需要体验推送配置、数据源、趋势分析等管理功能时,可使用测试账号:

账号 密码
test test123

⚠️ 演示账号仅供体验,权限受限。如需完整管理能力请自行部署。

📸 界面预览

🔥 公开热搜榜 - 未登录也可浏览

访问首页即可查看聚合热点,右上角保留登录/注册入口,侧边栏仅展示公开菜单。

🔐 登录页面

支持从登录页返回热搜榜,用户登录后按角色进入对应功能。

📡 数据源管理

查看内置数据源,并按分类管理自定义 RSS 源。

📈 趋势分析 - 排名变化与热度走势
📨 推送配置 - 多渠道推送

配置 Telegram、Discord、企业微信、飞书、钉钉、邮件、Webhook 等推送渠道,并选择参与推送的数据源。

🎯 推送规则 - 智能过滤

配置关键词包含、关键词排除、时间段限制、来源过滤等推送规则。

📜 推送历史

查看历史推送记录、成功率和推送统计。

⏰ 定时任务与 AI 摘要

配置定时摘要、立即推送摘要,并接入 OpenAI、Claude、DeepSeek、Ollama 等模型生成热点摘要。

👥 用户管理

管理员可管理用户账号和角色权限。

📦 支持的热榜源

分类 平台
热搜榜 微博热搜、知乎热榜
技术 V2EX、Hacker News、掘金热榜、Linux DO、NodeSeek
视频 B站热搜
科技资讯 少数派
影视 豆瓣热映
阅读 豆瓣新书
新闻 联合早报、澎湃新闻

📱 支持的推送渠道

渠道 状态 配置难度
Telegram ⭐ 简单
Discord ⭐ 简单
企业微信 ⭐⭐ 中等
飞书 ⭐⭐ 中等
钉钉 ⭐⭐ 中等
Webhook ⭐ 简单
邮件 ⭐⭐ 中等

🛠️ 技术栈

组件 技术
后端 Python 3.11+ / FastAPI
前端 Vue 3 / Vite / Tailwind CSS
数据库 MySQL 8.0+
缓存 Redis 6.0+
数据源 RSSHub

🚀 快速开始

环境要求

  • Python 3.11+
  • Node.js 18+
  • MySQL 8.0+
  • Redis 6.0+

方式一:Docker 部署(推荐)

# 克隆项目
git clone https://github.com/JackyST0/hotpush.git
cd hotpush

# 编辑 docker-compose.yml:
# 1. 修改 ADMIN_PASSWORD 和 JWT_SECRET
# 2. 按需配置 RSSHub Cookie、AI 摘要或推送渠道

# 启动
docker compose up -d

# 访问 http://localhost:3001,未登录即可查看热搜榜

⚠️ 重要:项目自带 RSSHub 实例,部分数据源需要配置 Cookie 才能正常使用,详见 Cookie 配置说明

默认管理员账号

  • 用户名:admin
  • 密码:admin123(请在 docker-compose.yml 中修改)

部署后请修改以下配置

# 生成随机 JWT 密钥(防止重启后用户登录失效)
openssl rand -base64 32

将生成的字符串填入 docker-compose.ymlJWT_SECRET 中。

💡 Docker 部署时配置主要在 docker-compose.yml 里完成;backend/.env 主要用于本地开发模式。

方式二:本地开发

1. 启动后端

cd hotpush/backend

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate

# 安装依赖
pip install -r requirements.txt

# 配置环境变量
cp .env.example .env
# 编辑 .env 文件,配置 MySQL 和 Redis

# 创建数据库
mysql -u root -p -e "CREATE DATABASE hotpush CHARACTER SET utf8mb4;"

# 启动后端
uvicorn app.main:app --reload --port 8000

2. 启动前端

cd hotpush/frontend

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 访问 http://localhost:3000,未登录即可查看热搜榜

📖 API 文档

本地开发模式启动后,可访问 http://localhost:8000/docs 查看 Swagger API 文档。

生产/Docker 默认 DEBUG=false,不会暴露 Swagger 文档。

主要接口

公开接口:

接口 方法 说明
/api/hot/stream GET 流式获取热榜,前端热搜榜默认使用
/api/hot GET 获取所有热榜
/api/hot/{source_id} GET 获取指定热榜
/api/stats GET 获取基础统计信息

登录后接口:

接口 方法 说明
/api/sources GET 获取所有热榜源
/api/sources/custom GET/POST 管理自定义 RSS 源
/api/trends/ranking/{source_id} GET 获取排名变化趋势
/api/config/push GET/POST 管理推送渠道
/api/rules GET/POST 管理推送规则
/api/history GET 查看推送历史
/api/scheduler/status GET 查看定时任务状态
/api/users GET 用户管理(管理员)

🍪 Cookie 配置

部分热榜源配置 Cookie 后更稳定、数据更完整。Docker 部署时可在 docker-compose.yml 中的 rsshub 服务下配置:

数据源 环境变量 是否必须 获取方式
微博热搜 WEIBO_COOKIE 推荐 登录 weibo.com → F12 → Network → 复制 Cookie
B站热搜 BILIBILI_COOKIE 推荐 登录 bilibili.com → F12 → Network → 复制 Cookie

获取 Cookie 步骤

  1. 使用 Chrome 浏览器登录对应网站
  2. 按 F12 打开开发者工具
  3. 切换到 Network(网络)标签
  4. 刷新页面,点击任意请求
  5. 在 Headers 中找到 Cookie 字段,复制完整内容

配置示例

编辑 docker-compose.yml

rsshub:
  environment:
    - WEIBO_COOKIE=SUB=xxx; SUBP=xxx; ...
    - BILIBILI_COOKIE=SESSDATA=xxx; bili_jct=xxx; ...

💡 Cookie 会过期,如果数据获取失败,请重新获取并更新配置

⚙️ 推送渠道配置

Telegram 配置

  1. @BotFather 创建 Bot,获取 Token
  2. @userinfobot 获取你的 Chat ID
  3. 登录管理界面,在「推送配置」里填写;也可以通过环境变量预配置:
    TELEGRAM_BOT_TOKEN=your_bot_token
    TELEGRAM_CHAT_ID=your_chat_id
    

Discord 配置

  1. 服务器设置 → 整合 → Webhook → 创建 Webhook
  2. 复制 Webhook URL
  3. 登录管理界面,在「推送配置」里填写;也可以通过环境变量预配置:
    DISCORD_WEBHOOK_URL=your_webhook_url
    

企业微信/飞书/钉钉

  1. 在群设置中添加机器人
  2. 复制 Webhook URL
  3. 登录管理界面,在「推送配置」里填写;也可以通过环境变量预配置

📚 功能说明

模块 说明
公开热搜榜 访问首页即可浏览各平台热点,支持按分类筛选和实时刷新
登录与权限 未登录只展示热搜榜;登录后按测试用户、普通用户、管理员角色开放功能
数据源 管理内置数据源,支持添加自定义 RSS 源
趋势分析 可视化各平台热搜排名变化趋势和热度走势,支持时间范围筛选
推送配置 配置 Telegram、Discord、企业微信等推送渠道
推送规则 设置关键词过滤、时间段限制、来源过滤等规则
推送历史 查看历史推送记录,支持清理旧数据
定时任务 配置抓取间隔、定时摘要推送
AI 摘要 使用 AI 生成智能热点摘要,支持多种风格和模型
用户管理 管理系统用户,设置权限(管理员可见)

🗺️ 路线图

  • MVP:热点聚合 + 基础推送
  • Vue 前端管理界面
  • 用户系统 + 权限管理
  • 公开热搜榜,未登录可浏览
  • 推送规则(关键词过滤、时间段限制)
  • 自定义数据源(RSS)
  • Redis 缓存
  • MySQL 持久化
  • AI 摘要(支持 OpenAI / Claude / DeepSeek / Ollama 等)
  • 移动端适配优化
  • 热搜趋势图表

🤖 AI 摘要配置

AI 摘要功能使用 litellm 统一接入多种大模型,在定时摘要推送时自动生成智能热点摘要。

支持的模型

提供商 模型示例 说明
OpenAI gpt-4o-mini 性价比高
Anthropic claude-sonnet-4-20250514 长文理解强
DeepSeek deepseek/deepseek-chat 国产模型,价格低
Ollama ollama/llama3 本地部署,免费
其他 支持所有 litellm 兼容模型 完整列表

配置方式

在管理界面「定时任务」页面底部的「AI 摘要」面板中配置:

  1. 模型 - 填写模型名称(如 gpt-4o-mini
  2. API Key - 填写对应提供商的 API Key
  3. API 地址(可选)- 使用第三方代理或本地模型时填写
  4. 摘要风格 - 简洁速递 / 详细分析 / 晨间简报

💡 支持 OpenAI 兼容的第三方代理服务,填写代理地址和 Key 即可。系统会根据模型名自动识别 API 格式。

摘要风格

风格 特点 适合场景
简洁速递 按主题分组,每条1-2句话,500字以内 日常快速了解
详细分析 有背景分析和趋势点评,800字以内 深入了解来龙去脉
晨间简报 分版块、每条一句话,400字以内 像看专业早报

❓ 常见问题

Q: 热搜数据获取失败?
  1. 检查 RSSHub 服务是否正常运行:docker logs hotpush-rsshub
  2. 部分源需要配置 Cookie(微博、B站),参考 Cookie 配置
  3. Cookie 可能已过期,需要重新获取
Q: 推送没有收到消息?
  1. 检查推送渠道配置是否正确
  2. 使用"测试推送"功能验证
  3. 检查是否有推送规则过滤了所有内容
Q: 如何添加自定义数据源?

在"数据源"页面点击"添加自定义源",输入任意有效的 RSS 地址即可。

Q: Docker 部署后无法访问?
  1. 确保所有服务正常启动:docker compose ps
  2. 检查端口是否被占用:默认前端访问端口是 3001
  3. 查看日志定位问题:docker compose logs -f

🤝 贡献

欢迎提交 Issue 和 Pull Request!

📄 License

MIT

📚 相关项目

项目 说明
awesome-rsshub-routes 🎯 精选 RSSHub 实用路由推荐,让你的 RSS 阅读更高效!

💡 如果你想了解更多 RSSHub 路由或添加自定义数据源,可以参考这个项目获取灵感!

🙏 致谢

  • LINUX DO - 新的理想型社区,本项目支持聚合 LINUX DO 热点内容
  • RSSHub - 万物皆可 RSS
  • FastAPI - 现代 Python Web 框架
  • Vue.js - 渐进式 JavaScript 框架
  • Tailwind CSS - 实用优先的 CSS 框架
  • Vite - 下一代前端构建工具

About

🔥 热点聚合推送平台 - 聚合微博、知乎、B站等 13+ 平台热榜,支持 Telegram、Discord、企业微信等多渠道推送

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors