Files
weibo_signin/README.md
2026-03-09 14:05:00 +08:00

4.3 KiB
Raw Permalink Blame History

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. 克隆项目

    cd d:/code/weibo
    
  2. 启动所有服务

    docker-compose up -d
    
  3. 查看服务状态

    docker-compose ps
    
  4. 访问服务

📋 已实现功能

认证服务 (auth_service)

  • 用户注册 (POST /auth/register)
  • 用户登录 (POST /auth/login)
  • JWT Token生成和验证
  • 密码强度验证和bcrypt哈希
  • CORS跨域支持
  • 数据库连接管理
  • 完整的错误处理和日志记录

任务调度服务 (task_scheduler)

  • Celery Beat定时任务调度
  • Cron表达式解析和动态任务加载
  • 任务队列管理 (Redis)
  • 任务重试和错误处理
  • 调用签到执行服务

签到执行服务 (signin_executor)

  • 微博超话签到核心逻辑
  • 动态IP代理池集成 (模拟)
  • 浏览器指纹模拟 (模拟)
  • Cookie管理和验证 (模拟)
  • 完整的签到工作流和状态管理
  • 反爬虫保护机制 (随机延迟)

基础设施

  • Docker容器化配置
  • PostgreSQL数据库初始化
  • Redis缓存配置
  • Nginx反向代理配置
  • 微服务网络通信

🔄 待实现功能

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

🔧 配置说明

环境变量

主要配置通过环境变量设置:

# 数据库
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/)
  • 通用响应结构:
    {
      "success": true,
      "data": {...},
      "message": "Operation successful",
      "error": null
    }
    

🤝 贡献指南

  1. Fork项目
  2. 创建特性分支
  3. 提交代码变更
  4. 推送到分支
  5. 创建Pull Request

📄 许可证

MIT License

🙏 致谢

感谢开发文档提供的详细技术规范和架构指导,本实现严格遵循文档中的各项技术要求。