feat(bot): use runtime api for bot data
This commit is contained in:
@@ -10,7 +10,6 @@
|
||||
danding_points/
|
||||
├── __init__.py # 插件元数据 & points_api 单例导出
|
||||
├── config.py # 配置类
|
||||
├── database.py # SQLite 数据库操作
|
||||
└── api.py # PointsAPI 核心
|
||||
```
|
||||
|
||||
@@ -20,10 +19,11 @@ danding_points/
|
||||
|
||||
| 配置项 | 类型 | 默认值 | 说明 |
|
||||
|--------|------|--------|------|
|
||||
| `DANDING_POINTS_DB_FILE` | str | `data/danding_points/points.db` | 数据库文件路径 |
|
||||
| `DANDING_POINTS_MAX_BALANCE` | int | `0` | 用户积分余额上限,`0` = 无限制 |
|
||||
| `DANDING_POINTS_MAX_PER_OPERATION` | int | `0` | 单次操作积分上限,`0` = 无限制 |
|
||||
| `DANDING_POINTS_LOG_RETENTION_DAYS` | int | `365` | 流水日志保留天数 |
|
||||
| `DANDING_POINTS_API_HOST` | str | `https://api.danding.vip/bot/points` | xapi 积分 API 地址 |
|
||||
| `DANDING_BOT_USER` | str | `1424473282` | xapi Bot 鉴权用户 |
|
||||
| `DANDING_BOT_TOKEN` | str | 空 | xapi Bot 鉴权 Token,未设置时读取 `DANDING_API_TOKEN` / `BOT_TOKEN` |
|
||||
|
||||
积分余额上限与单次操作上限由 xapi `BOT_POINTS_MAX_BALANCE` / `BOT_POINTS_MAX_PER_OPERATION` 控制,nonebot 本地不再持有阈值。
|
||||
|
||||
## API 接口
|
||||
|
||||
@@ -170,36 +170,10 @@ async def admin_set(user_id: str, amount: int):
|
||||
|
||||
| 插件 | source 值 |
|
||||
|------|-----------|
|
||||
| onmyoji_gacha | `"onmyoji_gacha"` |
|
||||
| danding_api | `"danding_api"` |
|
||||
| shop | `"shop"` |
|
||||
| sign_in | `"sign_in"` |
|
||||
| onmyoji_gacha 签到 | `"gacha_sign"` |
|
||||
| group_horse_racing | `"horse_race"` |
|
||||
| 管理调整 | `"admin"` |
|
||||
|
||||
## 数据库
|
||||
|
||||
使用 SQLite,数据文件位于 `data/danding_points/points.db`,无需额外配置。
|
||||
|
||||
### 表结构
|
||||
|
||||
**user_points** — 用户积分账户
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| user_id | TEXT PK | 用户 ID |
|
||||
| points | INTEGER | 当前余额,>= 0 |
|
||||
| total_earned | INTEGER | 累计获得 |
|
||||
| total_spent | INTEGER | 累计消费 |
|
||||
| created_at | TEXT | 创建时间 |
|
||||
| updated_at | TEXT | 最后更新时间 |
|
||||
|
||||
**point_transactions** — 积分变动流水
|
||||
|
||||
| 字段 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| id | INTEGER PK | 自增 ID |
|
||||
| user_id | TEXT | 用户 ID |
|
||||
| amount | INTEGER | 变动数额(消费为负) |
|
||||
| balance_after | INTEGER | 变动后余额 |
|
||||
| source | TEXT | 来源标识 |
|
||||
| reason | TEXT | 变动原因 |
|
||||
| created_at | TEXT | 创建时间 |
|
||||
本插件不再写入本地 SQLite。积分账户与流水由 xapi MySQL `bot_user_points` / `bot_point_transactions` 承载,nonebot 只通过 `/bot/points/*` HTTP API 读写。
|
||||
|
||||
Reference in New Issue
Block a user