# 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 ## 🙏 致谢 感谢开发文档提供的详细技术规范和架构指导,本实现严格遵循文档中的各项技术要求。