Files
cookie/功能需求文档.md
2026-03-02 17:02:09 +08:00

8.1 KiB
Raw Permalink Blame History

Cookie 自动监控功能需求文档

1. 功能概述

本系统提供 Cookie 自动监控、管理和通知功能,确保用户能够持续访问多个网站。

2. 详细功能需求

  • 功能描述: 从 Cookie Cloud 服务器获取并解密 Cookie 数据
  • 输入: Cookie Cloud API 地址、UUID、密码
  • 输出: 按域名分组的 Cookie 数据
  • 处理逻辑:
    1. 发送 GET 请求到 /get/{uuid} 接口
    2. 获取加密的 Cookie 数据
    3. 使用 AES 算法解密数据
    4. 解析 JSON 格式的 Cookie 数据
    5. 按域名组织 Cookie
  • 功能描述: 获取指定域名的 Cookie
  • 输入: 域名
  • 输出: 该域名的 Cookie 列表
  • 处理逻辑: 遍历所有 Cookie,匹配域名

2.2 浏览器控制

2.2.1 创建浏览器实例

  • 功能描述: 创建浏览器实例并启动浏览器
  • 输入: 浏览器类型(chrome/edge)、是否无头模式
  • 输出: 浏览器对象
  • 支持浏览器: Chrome、Edge
  • 运行模式: 有头模式、无头模式

2.2.2 检测登录状态

  • 功能描述: 检测网站是否已登录
  • 输入: 网站 URL、登录检测选择器、成功文本
  • 输出: 是否已登录(True/False
  • 处理逻辑:
    1. 访问网站
    2. 查找登录检测元素
    3. 检查元素文本是否包含成功文本
  • 功能描述: 使用 Cookie 登录网站
  • 输入: 网站 URL、Cookie 列表、登录检测选择器、成功文本
  • 输出: 是否登录成功(True/False
  • 处理逻辑:
    1. 访问网站
    2. 设置 Cookie
    3. 刷新页面
    4. 检测登录状态
  • 功能描述: 刷新页面并获取最新的 Cookie
  • 输入: 网站 URL
  • 输出: 最新的 Cookie 列表
  • 处理逻辑:
    1. 刷新页面
    2. 获取当前所有 Cookie
    3. 返回 Cookie 列表
  • 功能描述: 保存指定用户和网站的 Cookie
  • 输入: 用户名、网站名、Cookie 列表
  • 输出: 无
  • 存储位置: cookies.json 文件
  • 存储格式:
    {
      "用户名": {
        "网站名": [
          {
            "name": "cookie名称",
            "value": "cookie值",
            "domain": "域名",
            "path": "路径",
            "expiry": "过期时间"
          }
        ]
      }
    }
    
  • 功能描述: 读取指定用户和网站的 Cookie
  • 输入: 用户名、网站名
  • 输出: Cookie 列表
  • 数据来源: cookies.json 文件
  • 功能描述: 从所有 Cookie 中查找指定域名的 Cookie
  • 输入: 域名
  • 输出: Cookie 列表
  • 匹配规则: 域名完全匹配或包含关系

2.4 失败追踪

2.4.1 获取失败次数

  • 功能描述: 获取指定用户和网站的失败次数
  • 输入: 用户名、网站名
  • 输出: 失败次数
  • 数据来源: state.json 文件

2.4.2 增加失败次数

  • 功能描述: 增加指定用户和网站的失败次数
  • 输入: 用户名、网站名
  • 输出: 增加后的失败次数
  • 存储位置: state.json 文件

2.4.3 重置失败次数

  • 功能描述: 重置指定用户和网站的失败次数
  • 输入: 用户名、网站名
  • 输出: 无

2.4.4 检查并发送通知

  • 功能描述: 检查失败次数,达到阈值时发送通知
  • 输入: 用户名、网站名、最大失败次数、通知器、错误信息
  • 输出: 是否应该停止重试
  • 处理逻辑:
    1. 增加失败次数
    2. 判断是否达到阈值
    3. 达到阈值则发送通知
    4. 发送通知后重置失败计数
    5. 返回是否停止重试

2.5 消息通知

2.5.1 发送爱语飞飞通知

  • 功能描述: 通过爱语飞飞 API 发送通知
  • 输入: 令牌、标题、内容
  • 输出: 是否发送成功(True/False
  • API 地址: https://iyuu.cn/{令牌}.send
  • 请求方式: GET
  • 请求参数:
    • text: 通知标题
    • desp: 通知内容

2.6 主程序流程

2.6.1 读取配置

  • 功能描述: 读取配置文件
  • 输入: 配置文件路径
  • 输出: 配置字典
  • 配置文件: config.json

2.6.2 处理用户

  • 功能描述: 处理单个用户的所有网站
  • 输入: 用户配置
  • 输出: 无
  • 处理逻辑:
    1. 初始化 Cookie Cloud 客户端
    2. 初始化爱语飞飞通知器
    3. 初始化浏览器
    4. 遍历该用户的所有网站
    5. 调用处理网站功能
    6. 关闭浏览器

2.6.3 处理网站

  • 功能描述: 处理单个网站的监控
  • 输入: 用户名、网站配置、Cookie Cloud 客户端、通知器、最大失败次数、浏览器
  • 输出: 无
  • 处理流程:
    1. 步骤 1: 尝试使用本地 Cookie 登录
      • 读取本地 Cookie
      • 登录网站
      • 检测登录状态
      • 登录成功 → 跳转到步骤 3
      • 登录失败 → 跳转到步骤 2
    2. 步骤 2: 从 Cookie Cloud 获取 Cookie 并重试
      • 从 Cookie Cloud 获取 Cookie
      • 登录网站
      • 检测登录状态
      • 登录成功 → 跳转到步骤 3
      • 登录失败 → 跳转到步骤 4
    3. 步骤 3: 刷新页面并保存新 Cookie
      • 刷新页面
      • 获取最新 Cookie
      • 保存到 Cookie 文件
      • 重置失败计数
      • 结束
    4. 步骤 4: 登录失败处理
      • 增加失败计数
      • 判断是否达到阈值
      • 达到阈值 → 发送通知 → 重置计数
      • 未达到阈值 → 记录日志

2.6.4 运行监控

  • 功能描述: 运行整个监控流程
  • 输入: 无
  • 输出: 无
  • 处理逻辑:
    1. 读取配置文件
    2. 遍历所有用户
    3. 处理每个用户
    4. 记录成功和失败数量
    5. 输出日志

3. 配置管理功能

3.1 配置文件管理

  • 支持多用户配置
  • 支持多网站配置
  • 支持 Cookie Cloud 配置
  • 支持通知配置
  • 支持浏览器配置

3.2 状态文件管理

  • 记录失败次数
  • 持久化存储
  • 自动加载和保存
  • 统一管理所有 Cookie
  • 按用户和网站组织
  • 持久化存储

4. 日志功能

4.1 日志记录

  • 记录操作开始和结束
  • 记录用户和网站处理状态
  • 记录登录成功和失败
  • 记录 Cookie 更新
  • 记录通知发送
  • 记录异常信息

4.2 日志格式

[时间戳] 日志内容

5. 异常处理

5.1 网络异常

  • Cookie Cloud 请求失败
  • 网站访问失败
  • 通知发送失败

5.2 浏览器异常

  • 浏览器启动失败
  • 元素查找失败
  • Cookie 设置失败

5.3 文件异常

  • 配置文件读取失败
  • Cookie 文件读写失败
  • 状态文件读写失败

5.4 加密异常

  • Cookie 解密失败
  • 密钥生成失败

6. 性能要求

  • Cookie Cloud 请求超时:30 秒
  • 网站访问超时:10 秒
  • 元素查找超时:10 秒
  • 通知发送超时:10 秒

7. 安全要求

  • Cookie Cloud 使用端到端加密
  • 配置文件包含敏感信息,需妥善保管
  • 爱语飞飞令牌不应泄露
  • Cookie 数据不应明文传输

8. 扩展功能

8.1 多用户支持

  • 每个用户独立的 Cookie Cloud 配置
  • 每个用户独立的爱语飞飞令牌
  • 每个用户独立的浏览器配置

8.2 多网站支持

  • 每个用户可以配置多个网站
  • 每个网站独立的登录检测
  • 每个网站独立的失败计数

8.3 浏览器配置

  • 支持 Chrome 和 Edge
  • 支持有头和无头模式
  • 每个用户可以独立配置浏览器

8.4 通知配置

  • 支持自定义最大失败次数
  • 支持自定义通知内容
  • 每个用户独立的通知配置

9. 非功能需求

9.1 可靠性

  • 程序异常不影响下次执行
  • 状态文件确保数据不丢失
  • 浏览器异常自动关闭

9.2 可维护性

  • 模块化设计
  • 清晰的日志输出
  • 详细的错误信息

9.3 可扩展性

  • 易于添加新用户
  • 易于添加新网站
  • 易于添加新通知方式

9.4 易用性

  • 配置文件简单明了
  • 日志输出清晰易懂
  • 通知信息详细准确