koishi-plugin-maibot 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -2
- package/lib/database.d.ts +1 -0
- package/lib/database.d.ts.map +1 -1
- package/lib/database.js +2 -1
- package/lib/database.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +158 -5
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,7 +6,11 @@
|
|
|
6
6
|
|
|
7
7
|
- ✅ 用户绑定(通过 SGWCMAID 二维码)
|
|
8
8
|
- ✅ 用户解绑
|
|
9
|
-
- ✅
|
|
9
|
+
- ✅ 状态查询(实时获取账号信息,自动更新用户名和Rating)
|
|
10
|
+
- ✅ 水鱼Token绑定
|
|
11
|
+
- ✅ B50上传到水鱼
|
|
12
|
+
- ✅ B50任务状态查询
|
|
13
|
+
- ✅ 用户ID隐藏显示(防止盗号)
|
|
10
14
|
- ✅ 完整的 API 调用封装
|
|
11
15
|
- ✅ 数据库存储(SQLite/MySQL/PostgreSQL)
|
|
12
16
|
|
|
@@ -34,7 +38,7 @@ plugins:
|
|
|
34
38
|
/mai绑定 SGWCMAIDxxxxxxxxxxxxx
|
|
35
39
|
```
|
|
36
40
|
|
|
37
|
-
###
|
|
41
|
+
### 查询状态(自动更新用户名和Rating)
|
|
38
42
|
```
|
|
39
43
|
/mai状态
|
|
40
44
|
```
|
|
@@ -44,6 +48,21 @@ plugins:
|
|
|
44
48
|
/mai解绑
|
|
45
49
|
```
|
|
46
50
|
|
|
51
|
+
### 绑定水鱼Token
|
|
52
|
+
```
|
|
53
|
+
/mai绑定水鱼 <token>
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### 上传B50到水鱼
|
|
57
|
+
```
|
|
58
|
+
/mai上传B50
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### 查询B50任务状态
|
|
62
|
+
```
|
|
63
|
+
/mai查询B50
|
|
64
|
+
```
|
|
65
|
+
|
|
47
66
|
## API 要求
|
|
48
67
|
|
|
49
68
|
本插件需要配合 [anti15-api](https://github.com/your-repo/anti15-api) 使用。
|
package/lib/database.d.ts
CHANGED
package/lib/database.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"database.d.ts","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,IAAI,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,OAAO,QAAQ,QAAQ,CAAC;IACtB,UAAU,MAAM;QACd,eAAe,EAAE,WAAW,CAAA;KAC7B;CACF;AAED,wBAAgB,cAAc,CAAC,GAAG,EAAE,OAAO,QAgB1C"}
|
package/lib/database.js
CHANGED
|
@@ -10,10 +10,11 @@ function extendDatabase(ctx) {
|
|
|
10
10
|
bindTime: 'timestamp',
|
|
11
11
|
userName: 'string',
|
|
12
12
|
rating: 'string',
|
|
13
|
+
fishToken: 'string', // 水鱼Token
|
|
13
14
|
}, {
|
|
14
15
|
primary: 'id',
|
|
15
16
|
autoInc: true,
|
|
16
|
-
// userName 和
|
|
17
|
+
// userName、rating 和 fishToken 可以为空
|
|
17
18
|
unique: ['userId'], // 每个用户只能绑定一个账号
|
|
18
19
|
});
|
|
19
20
|
}
|
package/lib/database.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"database.js","sourceRoot":"","sources":["../src/database.ts"],"names":[],"mappings":";;AAmBA,wCAgBC;AAhBD,SAAgB,cAAc,CAAC,GAAY;IACzC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE;QAClC,EAAE,EAAE,UAAU;QACd,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,WAAW;QACrB,QAAQ,EAAE,QAAQ;QAClB,MAAM,EAAE,QAAQ;QAChB,SAAS,EAAE,QAAQ,EAAE,UAAU;KAChC,EAAE;QACD,OAAO,EAAE,IAAI;QACb,OAAO,EAAE,IAAI;QACb,mCAAmC;QACnC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,eAAe;KACpC,CAAC,CAAA;AACJ,CAAC"}
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAIxC,eAAO,MAAM,IAAI,WAAW,CAAA;AAE5B,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,CAGhC,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAIxC,eAAO,MAAM,IAAI,WAAW,CAAA;AAE5B,MAAM,WAAW,MAAM;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,CAGhC,CAAA;AAeF,wBAAgB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QA8UjD"}
|
package/lib/index.js
CHANGED
|
@@ -10,6 +10,18 @@ exports.Config = koishi_1.Schema.object({
|
|
|
10
10
|
apiBaseURL: koishi_1.Schema.string().default('http://localhost:5566').description('API服务地址'),
|
|
11
11
|
apiTimeout: koishi_1.Schema.number().default(30000).description('API请求超时时间(毫秒)'),
|
|
12
12
|
});
|
|
13
|
+
/**
|
|
14
|
+
* 隐藏用户ID,只显示部分信息(防止盗号)
|
|
15
|
+
*/
|
|
16
|
+
function maskUserId(uid) {
|
|
17
|
+
if (!uid || uid.length <= 8) {
|
|
18
|
+
return '***';
|
|
19
|
+
}
|
|
20
|
+
// 显示前4位和后4位,中间用***代替
|
|
21
|
+
const start = uid.substring(0, 4);
|
|
22
|
+
const end = uid.substring(uid.length - 4);
|
|
23
|
+
return `${start}***${end}`;
|
|
24
|
+
}
|
|
13
25
|
function apply(ctx, config) {
|
|
14
26
|
// 扩展数据库
|
|
15
27
|
(0, database_1.extendDatabase)(ctx);
|
|
@@ -42,7 +54,7 @@ function apply(ctx, config) {
|
|
|
42
54
|
// 检查是否已绑定
|
|
43
55
|
const existing = await ctx.database.get('maibot_bindings', { userId });
|
|
44
56
|
if (existing.length > 0) {
|
|
45
|
-
return `❌ 您已经绑定了账号\n用户ID: ${existing[0].maiUid}\n绑定时间: ${new Date(existing[0].bindTime).toLocaleString('zh-CN')}\n\n如需重新绑定,请先使用 /mai解绑`;
|
|
57
|
+
return `❌ 您已经绑定了账号\n用户ID: ${maskUserId(existing[0].maiUid)}\n绑定时间: ${new Date(existing[0].bindTime).toLocaleString('zh-CN')}\n\n如需重新绑定,请先使用 /mai解绑`;
|
|
46
58
|
}
|
|
47
59
|
// 调用API获取用户ID
|
|
48
60
|
const result = await api.qr2userid(qrCode);
|
|
@@ -72,7 +84,7 @@ function apply(ctx, config) {
|
|
|
72
84
|
rating,
|
|
73
85
|
});
|
|
74
86
|
return `✅ 绑定成功!\n` +
|
|
75
|
-
`用户ID: ${maiUid}\n` +
|
|
87
|
+
`用户ID: ${maskUserId(maiUid)}\n` +
|
|
76
88
|
(userName ? `用户名: ${userName}\n` : '') +
|
|
77
89
|
(rating ? `Rating: ${rating}\n` : '') +
|
|
78
90
|
`绑定时间: ${new Date().toLocaleString('zh-CN')}`;
|
|
@@ -103,7 +115,7 @@ function apply(ctx, config) {
|
|
|
103
115
|
}
|
|
104
116
|
// 删除绑定记录
|
|
105
117
|
await ctx.database.remove('maibot_bindings', { userId });
|
|
106
|
-
return `✅ 解绑成功!\n已解绑的用户ID: ${bindings[0].maiUid}`;
|
|
118
|
+
return `✅ 解绑成功!\n已解绑的用户ID: ${maskUserId(bindings[0].maiUid)}`;
|
|
107
119
|
}
|
|
108
120
|
catch (error) {
|
|
109
121
|
ctx.logger('maibot').error('解绑失败:', error);
|
|
@@ -127,11 +139,16 @@ function apply(ctx, config) {
|
|
|
127
139
|
}
|
|
128
140
|
const binding = bindings[0];
|
|
129
141
|
let statusInfo = `✅ 已绑定账号\n\n` +
|
|
130
|
-
`用户ID: ${binding.maiUid}\n` +
|
|
142
|
+
`用户ID: ${maskUserId(binding.maiUid)}\n` +
|
|
131
143
|
`绑定时间: ${new Date(binding.bindTime).toLocaleString('zh-CN')}\n`;
|
|
132
|
-
//
|
|
144
|
+
// 尝试获取最新状态并更新数据库
|
|
133
145
|
try {
|
|
134
146
|
const preview = await api.preview(binding.maiUid);
|
|
147
|
+
// 更新数据库中的用户名和Rating
|
|
148
|
+
await ctx.database.set('maibot_bindings', { userId }, {
|
|
149
|
+
userName: preview.UserName,
|
|
150
|
+
rating: preview.Rating,
|
|
151
|
+
});
|
|
135
152
|
statusInfo += `\n📊 账号信息:\n` +
|
|
136
153
|
`用户名: ${preview.UserName}\n` +
|
|
137
154
|
`Rating: ${preview.Rating}\n` +
|
|
@@ -149,6 +166,13 @@ function apply(ctx, config) {
|
|
|
149
166
|
}
|
|
150
167
|
statusInfo += `\n⚠️ 无法获取最新状态,请检查API服务`;
|
|
151
168
|
}
|
|
169
|
+
// 显示水鱼Token绑定状态
|
|
170
|
+
if (binding.fishToken) {
|
|
171
|
+
statusInfo += `\n\n🐟 水鱼Token: 已绑定`;
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
statusInfo += `\n\n🐟 水鱼Token: 未绑定\n使用 /mai绑定水鱼 <token> 进行绑定`;
|
|
175
|
+
}
|
|
152
176
|
return statusInfo;
|
|
153
177
|
}
|
|
154
178
|
catch (error) {
|
|
@@ -156,5 +180,134 @@ function apply(ctx, config) {
|
|
|
156
180
|
return `❌ 查询失败: ${error?.message || '未知错误'}`;
|
|
157
181
|
}
|
|
158
182
|
});
|
|
183
|
+
/**
|
|
184
|
+
* 绑定水鱼Token
|
|
185
|
+
* 用法: /mai绑定水鱼 <fishToken>
|
|
186
|
+
*/
|
|
187
|
+
ctx.command('mai绑定水鱼 <fishToken:text>', '绑定水鱼Token用于B50上传')
|
|
188
|
+
.action(async ({ session }, fishToken) => {
|
|
189
|
+
if (!session) {
|
|
190
|
+
return '❌ 无法获取会话信息';
|
|
191
|
+
}
|
|
192
|
+
if (!fishToken) {
|
|
193
|
+
return '请提供水鱼Token\n用法:/mai绑定水鱼 <token>\n\nToken长度应在127-132字符之间';
|
|
194
|
+
}
|
|
195
|
+
// 验证Token长度
|
|
196
|
+
if (fishToken.length < 127 || fishToken.length > 132) {
|
|
197
|
+
return '❌ Token长度错误,应在127-132字符之间';
|
|
198
|
+
}
|
|
199
|
+
const userId = session.userId;
|
|
200
|
+
try {
|
|
201
|
+
// 检查是否已绑定账号
|
|
202
|
+
const bindings = await ctx.database.get('maibot_bindings', { userId });
|
|
203
|
+
if (bindings.length === 0) {
|
|
204
|
+
return '❌ 请先绑定舞萌DX账号\n使用 /mai绑定 <SGWCMAID...> 进行绑定';
|
|
205
|
+
}
|
|
206
|
+
// 更新水鱼Token
|
|
207
|
+
await ctx.database.set('maibot_bindings', { userId }, {
|
|
208
|
+
fishToken,
|
|
209
|
+
});
|
|
210
|
+
return `✅ 水鱼Token绑定成功!\nToken: ${fishToken.substring(0, 8)}***${fishToken.substring(fishToken.length - 4)}`;
|
|
211
|
+
}
|
|
212
|
+
catch (error) {
|
|
213
|
+
ctx.logger('maibot').error('绑定水鱼Token失败:', error);
|
|
214
|
+
return `❌ 绑定失败: ${error?.message || '未知错误'}`;
|
|
215
|
+
}
|
|
216
|
+
});
|
|
217
|
+
/**
|
|
218
|
+
* 上传B50到水鱼
|
|
219
|
+
* 用法: /mai上传B50
|
|
220
|
+
*/
|
|
221
|
+
ctx.command('mai上传B50', '上传B50数据到水鱼')
|
|
222
|
+
.action(async ({ session }) => {
|
|
223
|
+
if (!session) {
|
|
224
|
+
return '❌ 无法获取会话信息';
|
|
225
|
+
}
|
|
226
|
+
const userId = session.userId;
|
|
227
|
+
try {
|
|
228
|
+
// 检查是否已绑定账号
|
|
229
|
+
const bindings = await ctx.database.get('maibot_bindings', { userId });
|
|
230
|
+
if (bindings.length === 0) {
|
|
231
|
+
return '❌ 请先绑定舞萌DX账号\n使用 /mai绑定 <SGWCMAID...> 进行绑定';
|
|
232
|
+
}
|
|
233
|
+
const binding = bindings[0];
|
|
234
|
+
// 检查是否已绑定水鱼Token
|
|
235
|
+
if (!binding.fishToken) {
|
|
236
|
+
return '❌ 请先绑定水鱼Token\n使用 /mai绑定水鱼 <token> 进行绑定';
|
|
237
|
+
}
|
|
238
|
+
// 检查是否有正在进行的任务
|
|
239
|
+
try {
|
|
240
|
+
const taskStatus = await api.getB50TaskStatus(binding.maiUid);
|
|
241
|
+
if (taskStatus.code === 0 && taskStatus.alive_task_id) {
|
|
242
|
+
return `⚠️ 已有任务正在进行中\n任务ID: ${taskStatus.alive_task_id}\n开始时间: ${new Date(parseInt(taskStatus.alive_task_time)).toLocaleString('zh-CN')}\n\n使用 /mai查询B50 查看任务状态`;
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
catch (error) {
|
|
246
|
+
// 如果没有任务或查询失败,继续上传
|
|
247
|
+
}
|
|
248
|
+
// 上传B50
|
|
249
|
+
const result = await api.uploadB50(binding.maiUid, binding.fishToken);
|
|
250
|
+
if (!result.UploadStatus) {
|
|
251
|
+
return `❌ 上传失败:${result.msg || '未知错误'}`;
|
|
252
|
+
}
|
|
253
|
+
return `✅ B50上传任务已提交!\n任务ID: ${result.task_id}\n\n使用 /mai查询B50 查看任务状态`;
|
|
254
|
+
}
|
|
255
|
+
catch (error) {
|
|
256
|
+
ctx.logger('maibot').error('上传B50失败:', error);
|
|
257
|
+
if (error?.response) {
|
|
258
|
+
return `❌ API请求失败: ${error.response.status} ${error.response.statusText}`;
|
|
259
|
+
}
|
|
260
|
+
return `❌ 上传失败: ${error?.message || '未知错误'}`;
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
/**
|
|
264
|
+
* 查询B50任务状态
|
|
265
|
+
* 用法: /mai查询B50
|
|
266
|
+
*/
|
|
267
|
+
ctx.command('mai查询B50', '查询B50上传任务状态')
|
|
268
|
+
.action(async ({ session }) => {
|
|
269
|
+
if (!session) {
|
|
270
|
+
return '❌ 无法获取会话信息';
|
|
271
|
+
}
|
|
272
|
+
const userId = session.userId;
|
|
273
|
+
try {
|
|
274
|
+
// 检查是否已绑定账号
|
|
275
|
+
const bindings = await ctx.database.get('maibot_bindings', { userId });
|
|
276
|
+
if (bindings.length === 0) {
|
|
277
|
+
return '❌ 请先绑定舞萌DX账号\n使用 /mai绑定 <SGWCMAID...> 进行绑定';
|
|
278
|
+
}
|
|
279
|
+
const binding = bindings[0];
|
|
280
|
+
// 查询任务状态
|
|
281
|
+
const taskStatus = await api.getB50TaskStatus(binding.maiUid);
|
|
282
|
+
if (taskStatus.code !== 0 || !taskStatus.alive_task_id) {
|
|
283
|
+
return 'ℹ️ 当前没有正在进行的B50上传任务';
|
|
284
|
+
}
|
|
285
|
+
// 查询任务详情
|
|
286
|
+
const taskDetail = await api.getB50TaskById(taskStatus.alive_task_id);
|
|
287
|
+
let statusInfo = `📊 B50上传任务状态\n\n` +
|
|
288
|
+
`任务ID: ${taskStatus.alive_task_id}\n` +
|
|
289
|
+
`开始时间: ${new Date(parseInt(taskStatus.alive_task_time)).toLocaleString('zh-CN')}\n`;
|
|
290
|
+
if (taskDetail.done) {
|
|
291
|
+
statusInfo += `状态: ✅ 已完成\n`;
|
|
292
|
+
if (taskDetail.alive_task_end_time) {
|
|
293
|
+
statusInfo += `完成时间: ${new Date(parseInt(taskDetail.alive_task_end_time)).toLocaleString('zh-CN')}\n`;
|
|
294
|
+
}
|
|
295
|
+
if (taskDetail.error) {
|
|
296
|
+
statusInfo += `错误信息: ${taskDetail.error}\n`;
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
else {
|
|
300
|
+
statusInfo += `状态: ⏳ 进行中\n`;
|
|
301
|
+
if (taskDetail.error) {
|
|
302
|
+
statusInfo += `错误信息: ${taskDetail.error}\n`;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
return statusInfo;
|
|
306
|
+
}
|
|
307
|
+
catch (error) {
|
|
308
|
+
ctx.logger('maibot').error('查询B50任务状态失败:', error);
|
|
309
|
+
return `❌ 查询失败: ${error?.message || '未知错误'}`;
|
|
310
|
+
}
|
|
311
|
+
});
|
|
159
312
|
}
|
|
160
313
|
//# sourceMappingURL=index.js.map
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|