188 lines
4.3 KiB
Markdown
188 lines
4.3 KiB
Markdown
# Weibo-HotSign - 微博超话智能签到系统
|
||
|
||
基于开发文档实现的分布式微博超话智能签到系统,具备多账户管理、高稳定性反爬虫、Web可视化管理等核心功能。
|
||
|
||
## 🏗️ 项目架构
|
||
|
||
本项目采用微服务架构,包含以下核心服务:
|
||
|
||
- **认证服务** (auth_service) - 用户注册、登录、JWT认证
|
||
- **API网关** (api_service) - 统一API入口和路由
|
||
- **任务调度** (task_scheduler) - 基于Celery Beat的定时任务
|
||
- **签到执行** (signin_executor) - 核心签到业务逻辑
|
||
- **浏览器自动化** (browser_automation_service) - 处理复杂JS加密
|
||
- **通知中心** (notification_hub) - 多渠道通知分发
|
||
- **前端应用** (frontend) - React可视化界面
|
||
|
||
## 🚀 快速启动
|
||
|
||
### 环境要求
|
||
- Docker & Docker Compose
|
||
- Python 3.11+
|
||
- Node.js 18+
|
||
|
||
### 启动步骤
|
||
|
||
1. **克隆项目**
|
||
```bash
|
||
cd d:/code/weibo
|
||
```
|
||
|
||
2. **启动所有服务**
|
||
```bash
|
||
docker-compose up -d
|
||
```
|
||
|
||
3. **查看服务状态**
|
||
```bash
|
||
docker-compose ps
|
||
```
|
||
|
||
4. **访问服务**
|
||
- 前端界面: http://localhost:3000
|
||
- API文档: http://localhost:8000/docs
|
||
- 认证服务: http://localhost:8001/docs
|
||
- 健康检查: http://localhost:8000/health
|
||
|
||
## 📋 已实现功能
|
||
|
||
### ✅ 认证服务 (auth_service)
|
||
- [x] 用户注册 (`POST /auth/register`)
|
||
- [x] 用户登录 (`POST /auth/login`)
|
||
- [x] JWT Token生成和验证
|
||
- [x] 密码强度验证和bcrypt哈希
|
||
- [x] CORS跨域支持
|
||
- [x] 数据库连接管理
|
||
- [x] 完整的错误处理和日志记录
|
||
|
||
### ✅ 任务调度服务 (task_scheduler)
|
||
- [x] Celery Beat定时任务调度
|
||
- [x] Cron表达式解析和动态任务加载
|
||
- [x] 任务队列管理 (Redis)
|
||
- [x] 任务重试和错误处理
|
||
- [x] 调用签到执行服务
|
||
|
||
### ✅ 签到执行服务 (signin_executor)
|
||
- [x] 微博超话签到核心逻辑
|
||
- [x] 动态IP代理池集成 (模拟)
|
||
- [x] 浏览器指纹模拟 (模拟)
|
||
- [x] Cookie管理和验证 (模拟)
|
||
- [x] 完整的签到工作流和状态管理
|
||
- [x] 反爬虫保护机制 (随机延迟)
|
||
|
||
### ✅ 基础设施
|
||
- [x] Docker容器化配置
|
||
- [x] PostgreSQL数据库初始化
|
||
- [x] Redis缓存配置
|
||
- [x] Nginx反向代理配置
|
||
- [x] 微服务网络通信
|
||
|
||
### 🔄 待实现功能
|
||
|
||
#### API网关服务 (api_service)
|
||
- 请求路由和负载均衡
|
||
- API组合和聚合
|
||
- 速率限制和熔断
|
||
|
||
#### 浏览器自动化服务 (browser_automation_service)
|
||
- Playwright无头浏览器
|
||
- JS加密参数逆向
|
||
- 网络请求拦截和提取
|
||
|
||
#### 前端React应用 (frontend)
|
||
- 用户登录注册界面
|
||
- 账号管理面板
|
||
- 任务配置界面
|
||
- 签到日志查看
|
||
- 实时状态监控
|
||
|
||
#### 通知中心服务 (notification_hub)
|
||
- 多渠道通知分发 (Server酱, Email等)
|
||
|
||
## 🛠️ 技术栈
|
||
|
||
### 后端
|
||
- **Web框架**: FastAPI (Python)
|
||
- **数据库**: PostgreSQL + SQLAlchemy
|
||
- **缓存**: Redis
|
||
- **任务队列**: Celery + Redis
|
||
- **认证**: JWT + bcrypt
|
||
- **浏览器自动化**: Playwright
|
||
|
||
### 前端
|
||
- **框架**: React 18 + Vite
|
||
- **状态管理**: Zustand
|
||
- **UI库**: Ant Design
|
||
- **HTTP客户端**: Axios
|
||
|
||
### 基础设施
|
||
- **容器化**: Docker + Docker Compose
|
||
- **反向代理**: Nginx
|
||
- **监控**: Prometheus + Grafana
|
||
- **日志**: ELK Stack
|
||
|
||
## 📊 数据库设计
|
||
|
||
系统包含以下核心数据表:
|
||
|
||
- `users` - 用户信息
|
||
- `accounts` - 微博账号管理
|
||
- `tasks` - 签到任务配置
|
||
- `signin_logs` - 签到历史记录
|
||
|
||
详细表结构见 `init-db.sql`
|
||
|
||
## 🔧 配置说明
|
||
|
||
### 环境变量
|
||
主要配置通过环境变量设置:
|
||
|
||
```bash
|
||
# 数据库
|
||
DATABASE_URL=postgresql+asyncpg://user:pass@postgres:5432/dbname
|
||
REDIS_URL=redis://redis:6379
|
||
|
||
# JWT
|
||
JWT_SECRET_KEY=your-super-secret-jwt-key
|
||
JWT_EXPIRATION_HOURS=24
|
||
|
||
# 应用
|
||
DEBUG=true
|
||
HOST=0.0.0.0
|
||
PORT=8000
|
||
```
|
||
|
||
## 📝 API规范
|
||
|
||
遵循RESTful设计规范:
|
||
|
||
- **协议**: HTTPS
|
||
- **数据格式**: JSON
|
||
- **认证**: Bearer Token (JWT)
|
||
- **版本控制**: URL路径 (`/api/v1/`)
|
||
- **通用响应结构**:
|
||
```json
|
||
{
|
||
"success": true,
|
||
"data": {...},
|
||
"message": "Operation successful",
|
||
"error": null
|
||
}
|
||
```
|
||
|
||
## 🤝 贡献指南
|
||
|
||
1. Fork项目
|
||
2. 创建特性分支
|
||
3. 提交代码变更
|
||
4. 推送到分支
|
||
5. 创建Pull Request
|
||
|
||
## 📄 许可证
|
||
|
||
MIT License
|
||
|
||
## 🙏 致谢
|
||
|
||
感谢开发文档提供的详细技术规范和架构指导,本实现严格遵循文档中的各项技术要求。
|