Clone original repository
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# 对话归档:OWCX 插件评估、重构与 v2.3.0 更新
|
||||
|
||||
- 归档日期:2026-09-29
|
||||
- 仓库:`https://github.com/TZYCeng/astrbot_plugin_owcx.git`
|
||||
- 分支:`main`
|
||||
- 版本跨度:v2.1.0 → v2.2.0 → v2.3.0
|
||||
|
||||
## 初评发现
|
||||
|
||||
- `main.py` 约 1904 行,常量、工具与绑定逻辑混杂。
|
||||
- 图片与头像下载为每次请求单独创建 aiohttp session;临时图片没有清理。
|
||||
- API 请求缺少缓存与 429/503 重试,默认超时 30 秒。
|
||||
- 玩家 ID 缺少校验及 URL 编码;重复定义竞技图标;日志实现不统一。
|
||||
- 图片开关默认值与配置 schema 不一致;README 仓库地址有误,存在重复 logo 文件。
|
||||
|
||||
## v2.2.0:重构与健壮性(`9f3deca`)
|
||||
|
||||
- 将映射拆至 `constants.py`,纯逻辑拆至 `utils.py`,绑定存储与迁移拆至 `bindings.py`;`main.py` 缩减至约 700 行,并保留旧导入路径兼容。
|
||||
- API 超时改为 15 秒;增加进程级 GET 缓存(玩家 120 秒、榜单 600 秒、英雄 3600 秒)及 429/503 的 `retry_after` 重试(最多 2 次);对 URL 参数进行 quote。
|
||||
- 图片/头像下载复用 session,并限制同时下载数为 6。
|
||||
- 新增旧临时图片清理逻辑及英雄统计卡片渲染;补充玩家 ID 校验;统一使用 AstrBot logger。
|
||||
- 图片渲染默认值与 schema 统一为开启;修正 README 仓库地址并删除重复 logo 文件。
|
||||
|
||||
## v2.3.0:新段位与 API 地址配置化(`c1c813e`)
|
||||
|
||||
依据用户提供的 OverFast API 4.13.0 `openapi.json`:
|
||||
|
||||
- 段位枚举新增 `emerald`(翡翠)及 `ultimate`(王者)。
|
||||
- `champion` 保留兼容旧数据并显示为王者;`top500` 保留。
|
||||
- 54 个 `HeroKey` 与现有英雄映射一致,无需改动。
|
||||
- `_conf_schema.json` 增加 `api_base_url`,默认 `https://overfast-api.tekrop.fr`,可填自建 OverFast 服务地址。
|
||||
- `normalize_api_base_url()` 去除首尾空白和尾斜杠;空值或非 HTTP(S) 地址回退官方地址。
|
||||
- 全部 API 客户端由插件的 `_api_client()` 按配置地址创建,启动日志显示当前 API 地址。
|
||||
- `metadata.yaml` 版本更新至 v2.3.0。
|
||||
|
||||
## 历史提交
|
||||
|
||||
| 提交 | 日期 | 内容 |
|
||||
| --- | --- | --- |
|
||||
| `9f3deca` | 2026-09-29 | v2.2.0 结构重构、缓存重试、下载复用与健壮性修正 |
|
||||
| `c1c813e` | 2026-09-29 | v2.3.0 新段位与 API 地址配置化 |
|
||||
| `fa5d65e` | 2026-09-29 | 开发辅助文件与渲染检查(本次已移除相关文件) |
|
||||
|
||||
## 后续关注
|
||||
|
||||
- 在真实 AstrBot 环境验证 `/owsummary`、`/owstats`、`/owcareer`、`/owherostats` 及绑定指令。
|
||||
- 使用真实翡翠/王者账号确认文字与卡片显示。
|
||||
- 配置自建 OverFast 服务地址后确认请求走向;上游尚未支持 `ultimate` 榜单筛选时不传该筛选值。
|
||||
- 如上游公布不同正式中文译名,可再调整 `champion` 对应显示。
|
||||
- 核对新增英雄中文名是否与官方最新译名完全一致。
|
||||
|
||||
## 关键文件
|
||||
|
||||
| 文件 | 说明 |
|
||||
| --- | --- |
|
||||
| `main.py` | `OverwatchStatsPlugin` 主类与指令入口 |
|
||||
| `api_client.py` | `OverFastAPIClient` / `OverFastAPIError`、缓存、重试与基础 URL |
|
||||
| `constants.py` | 段位、角色、模式、平台、地区与英雄映射 |
|
||||
| `utils.py` | 纯逻辑及 API 地址归一化 |
|
||||
| `bindings.py` | KV 绑定存储与旧数据迁移 |
|
||||
| `image_renderer.py` | 卡片渲染与临时图片清理 |
|
||||
| `_conf_schema.json` | 插件配置 schema |
|
||||
| `CHANGELOG.md` | 版本变更记录 |
|
||||
Reference in New Issue
Block a user