feat: add simadmin multi-instance autman plugin
This commit is contained in:
@@ -0,0 +1,125 @@
|
||||
# SimAdmin 多实例 Autman 插件
|
||||
|
||||
管理员专用 Python 插件,支持多个 SimAdmin 实例:
|
||||
|
||||
- 查询全部或指定实例状态
|
||||
- 通过指定实例发送短信
|
||||
- 兼容 SimAdmin API:
|
||||
- `GET /api/health`
|
||||
- `GET /api/sim`
|
||||
- `GET /api/network`
|
||||
- `GET /api/stats`
|
||||
- `GET /api/sms/stats`
|
||||
- `POST /api/sms/send`
|
||||
|
||||
插件文件:`simadmin_multi.py`
|
||||
|
||||
## 安装位置
|
||||
|
||||
复制到 Autman 的 Python 脚本插件目录,例如:
|
||||
|
||||
```text
|
||||
plugin/scripts/simadmin_multi.py
|
||||
```
|
||||
|
||||
插件头注已设置:
|
||||
|
||||
```text
|
||||
# [admin: true]
|
||||
# [rule: ^sim帮助$]
|
||||
# [rule: ^sim配置$]
|
||||
# [rule: ^sim状态(?:\s+\S+)?$]
|
||||
# [rule: ^sim短信\s+\S+\s+\S+\s+[\s\S]+$]
|
||||
```
|
||||
|
||||
即:仅管理员可用。
|
||||
|
||||
## 配置
|
||||
|
||||
在 Autman 数据桶写入:
|
||||
|
||||
- bucket:`otto`
|
||||
- key:`simadmin_instances`
|
||||
|
||||
### 推荐:JSON 数组
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"name": "主卡",
|
||||
"base_url": "http://192.168.68.1:3000",
|
||||
"timeout": 10
|
||||
},
|
||||
{
|
||||
"name": "副卡",
|
||||
"base_url": "http://192.168.68.2:3000",
|
||||
"timeout": 10,
|
||||
"token": "可选,如果前面有反代/网关鉴权"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
字段:
|
||||
|
||||
| 字段 | 必填 | 说明 |
|
||||
|---|---:|---|
|
||||
| `name` | 是 | 实例别名,指令里使用 |
|
||||
| `base_url` | 是 | SimAdmin 地址,不要以 `/` 结尾 |
|
||||
| `timeout` | 否 | 请求超时秒数,默认 10,范围 3-60 |
|
||||
| `token` | 否 | 可选;会同时带 `Authorization: Bearer <token>` 和 `X-API-Token` |
|
||||
| `enabled` | 否 | 是否启用,默认 true |
|
||||
| `headers` | 否 | 自定义请求头对象 |
|
||||
|
||||
### 简写:多行 alias=url
|
||||
|
||||
```text
|
||||
主卡=http://192.168.68.1:3000
|
||||
副卡=http://192.168.68.2:3000,token=xxx,timeout=10
|
||||
```
|
||||
|
||||
## 指令
|
||||
|
||||
```text
|
||||
sim帮助
|
||||
sim配置
|
||||
sim状态
|
||||
sim状态 主卡
|
||||
sim短信 主卡 10086 CXLL
|
||||
sim短信 all 10086 测试短信
|
||||
```
|
||||
|
||||
说明:
|
||||
|
||||
- `sim状态`:查询全部启用实例。
|
||||
- `sim状态 <实例名>`:查询指定实例;支持名称包含匹配。
|
||||
- `sim短信 <实例名|all> <号码> <内容>`:发送短信。
|
||||
- `all` 会向所有实例发送同一条短信,谨慎使用。
|
||||
|
||||
## 返回示例
|
||||
|
||||
```text
|
||||
【主卡】
|
||||
健康: ok 版本: 1.0.0
|
||||
SIM: 13800138000
|
||||
ICCID: 8986...
|
||||
IMSI: 460...
|
||||
网络: China Mobile / registered / 信号:-70
|
||||
系统: CPU 12.1% / MEM 45.2% / 温度 52 / 运行 1d2h
|
||||
短信: 收 12 / 发 3
|
||||
```
|
||||
|
||||
短信发送:
|
||||
|
||||
```text
|
||||
短信发送结果:
|
||||
✅ 主卡 发送成功 path=/xxx
|
||||
❌ 副卡 发送失败: timed out
|
||||
```
|
||||
|
||||
## 安全约定
|
||||
|
||||
- 插件头注和代码内都做了管理员限制。
|
||||
- 不在源码中硬编码任何 SimAdmin 地址或密钥。
|
||||
- `token` 只用于兼容反代/网关鉴权;当前 SimAdmin 本身 API 如无鉴权也可留空。
|
||||
- 短信号码只允许数字、空格、`-`、国际区号 `+`。
|
||||
- 短信内容最大 1000 字,避免误发超长内容。
|
||||
Reference in New Issue
Block a user