3.4 KiB
3.4 KiB
对话归档: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 |
版本变更记录 |