logo
0
0
WeChat Login

WeHot Helper - 微热小助手

Python 3.8+ FastAPI Apache-2.0 License WeChat

项目简介

WeHot Helper 是一款轻量级、带可视化前后端的公众号自动发文系统,专为个人及中小团队公众号运营设计。系统可定时采集网络高热度热点 / 科技资讯,基于无版权 API 自动匹配配图,并通过微信官方 API 实现图文内容的全自动发布,全程可视化配置,无需编写代码,无需人工干预,7×24 小时稳定运行。

功能特性

  • 可视化配置中心:网页端一键配置公众号密钥、定时时间、热点筛选规则,所有配置实时生效,无需修改代码
  • 精准热点采集:实时采集今日头条高热度热点,支持采集数量、热度阈值自定义筛选
  • 智能无版权配图:基于 Pixabay API 自动匹配热点相关配图,所有图片支持商用,无版权纠纷
  • 官方接口发布:全程调用微信公众号官方 API,无第三方中转,从根本上避免封号风险
  • 动态定时任务:网页端直接修改定时发文时间,即时生效,无需重启服务
  • 实时日志系统:所有操作(采集/配图/发布/报错)均记录到日志,网页端 5 秒自动刷新
  • 配置持久化:所有配置自动保存到本地 JSON 文件,服务重启后配置不丢失
  • 轻量易部署:无需数据库,单文件核心程序,本地/服务器均可运行
  • 平台扩展中:后续会逐步支持其他平台自动发送,有问题欢迎提 issue

技术栈

模块技术/库核心优势
后端框架FastAPI + Uvicorn高性能异步框架,自动生成接口文档
前端页面Jinja2 + Bootstrap 5无需打包工具,CDN 直引资源,响应式布局
定时调度APScheduler支持动态增删改定时任务,适配 FastAPI 异步环境
配置存储JSON 文件无需数据库,轻量易迁移
公众号对接wechatpy完美封装微信公众号所有 API,自动处理 Token 刷新
网络请求requests轻量稳定,支持超时/异常捕获
时区处理pytz精准处理北京时间,避免定时任务时区偏差

快速开始

前置准备

  1. 公众号配置:需拥有认证后的公众号(服务号/订阅号均可),在微信公众号后台「设置与开发→基本配置」获取 AppID 和 AppSecret
  2. Pixabay API Key:在 Pixabay API 官方页面 免费注册账号,获取 API Key
  3. 运行环境:安装 Python 3.8+(推荐 3.9/3.10)

环境搭建

# 1. 克隆项目 git clone https://github.com/your-username/WeHotHelper.git cd WeHotHelper # 2. 安装依赖 pip install -r requirements.txt

启动服务

# 进入核心程序目录 cd app # 启动后端服务 python main.py

服务启动成功后,打开浏览器访问 http://localhost:8000 即可进入可视化配置页面。

快速使用步骤

  1. 配置填写:访问 http://localhost:8000,填写公众号 AppID/Secret、Pixabay API Key
  2. 定时开启:设置定时发文时间,勾选「开启定时任务」,点击「保存配置并应用」
  3. 功能测试:点击「立即测试发布」,访问 http://localhost:8000/log 查看日志验证流程
  4. 正式运行:测试正常后,修改为目标定时时间,保持服务运行即可

项目结构

cloudWeHot/ ├── app/ # 核心程序目录 │ ├── main.py # 应用入口文件 │ ├── config/ # 配置模块 │ │ ├── __init__.py │ │ └── database.py # 数据库配置和操作 │ ├── routes/ # 路由模块 │ │ ├── __init__.py │ │ ├── admin.py # 管理员相关路由 │ │ ├── articles.py # 文章管理路由 │ │ ├── auth.py # 认证相关路由 │ │ └── dashboard.py # 仪表板路由 │ ├── services/ # 业务服务层 │ │ ├── __init__.py │ │ ├── ai_content.py # AI内容生成服务 │ │ ├── content_filter.py # 内容过滤服务(违禁词检测) │ │ ├── email.py # 邮件服务 │ │ ├── geetest.py # 极验验证服务 │ │ ├── hotspot.py # 热点采集服务 │ │ ├── publish.py # 发布服务 │ │ ├── scheduler.py # 定时任务调度 │ │ ├── verification.py # 验证码服务 │ │ └── wechat.py # 微信公众号服务 │ ├── templates/ # 前端模板目录 │ │ ├── base.html # 基础模板 │ │ ├── admin/ # 管理员页面 │ │ │ ├── settings.html # 系统设置页面 │ │ │ └── users.html # 用户管理页面 │ │ ├── dashboard/ # 仪表板页面 │ │ │ ├── index.html # 主配置页面 │ │ │ ├── ai_models.html # AI模型管理 │ │ │ ├── articles.html # 文章管理 │ │ │ └── log.html # 日志查看 │ │ └── public/ # 公共页面 │ │ ├── landing.html # 首页 │ │ ├── login.html # 登录页面 │ │ ├── register.html # 注册页面 │ │ └── install.html # 安装向导 │ ├── static/ # 静态资源目录 │ ├── models/ # 数据模型 │ ├── utils/ # 工具函数 │ ├── wehot.db # SQLite数据库文件 │ └── app.log # 应用日志文件 ├── docs/ # 文档目录 │ ├── architecture.md # 架构设计文档 │ └── database.md # 数据库设计文档 ├── README.md # 项目说明文档 ├── LICENSE # MIT开源许可证 ├── requirements.txt # 项目依赖清单 └── .gitignore # Git忽略文件配置

配置说明

公众号配置

  • AppID:微信公众号应用ID
  • AppSecret:微信公众号应用密钥
  • 注意:公众号必须通过微信认证,否则无法使用图文发布接口

热点采集配置

  • 采集数量:单次采集热点数量(1-20条)
  • 热度阈值:低于此热度值的热点将被过滤
  • 发布数量:每次定时任务发布的热点数(1-5条)

定时发布配置

  • 作者名称:公众号发文显示的作者名称
  • 定时小时:每天定时发布的小时(0-23)
  • 定时分钟:每天定时发布的分钟(0-59)

API 接口

接口方法说明
/GET配置页面
/logGET日志查看页面
/savePOST保存配置
/api/logsGET获取日志内容
/api/testPOST手动测试发布

注意事项

  1. 公众号认证:未认证的个人订阅号无「图文消息发布」接口权限
  2. IP 白名单:需要在公众号后台配置服务器 IP 白名单
  3. 安全建议:生产环境建议配置 HTTPS,并妥善保管 AppSecret
  4. 定时任务:本地运行需保持电脑开机,服务器运行可实现 7×24 小时无人值守
  5. 合规内容:发布内容需遵守法律法规与平台规则,保持良好健康的互联网内容生态。本工具旨在减轻手动操作负担,自行保证内容合规性

常见问题

Q: 提示"公众号客户端初始化失败"?
A: 请检查 AppID 和 AppSecret 是否正确,公众号是否已完成微信认证。

Q: 无法获取配图?
A: 请检查 Pixabay API Key 是否正确,或该热点关键词暂无匹配图片。

Q: 定时任务不执行?
A: 请检查是否勾选了「开启定时任务」,并确认服务保持运行状态。

开源协议

本项目基于 Apache-2.0 License 开源,可自由用于个人或商业用途。

赞助与关注

如果这个项目对您有帮助,欢迎赞助支持我们继续开发和维护 🙏

赞助二维码
赞助支持
公众号二维码
关注公众号

贡献与反馈

欢迎提交 Issue 和 Pull Request!如果这个项目对您有帮助,请给个 Star ⭐️


Made with ❤️ by WeHot Helper Team

About

这是一个方便管理你的公众号文章的系统,即刻出发,但一定要遵循公众号的规则,不要违反。

57.22 MiB
0 forks0 stars1 branches0 TagREADMEApache-2.0 license
Language
Python52.6%
HTML45.2%
Shell2.1%
Dockerfile0.1%