@zhin.js/adapter-qq 3.0.0 → 4.0.0
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/CHANGELOG.md +22 -0
- package/README.md +9 -9
- package/client/Dashboard.tsx +32 -32
- package/dist/index.js +1 -1
- package/lib/adapter.d.ts +10 -9
- package/lib/adapter.d.ts.map +1 -1
- package/lib/adapter.js +33 -32
- package/lib/adapter.js.map +1 -1
- package/lib/{bot.d.ts → endpoint.d.ts} +11 -8
- package/lib/endpoint.d.ts.map +1 -0
- package/lib/{bot.js → endpoint.js} +77 -31
- package/lib/endpoint.js.map +1 -0
- package/lib/gateway-config.d.ts +3 -3
- package/lib/gateway-config.d.ts.map +1 -1
- package/lib/gateway-config.js +2 -2
- package/lib/gateway-config.js.map +1 -1
- package/lib/group-at-normalize.d.ts +1 -1
- package/lib/group-at-normalize.d.ts.map +1 -1
- package/lib/group-at-normalize.js +8 -8
- package/lib/group-at-normalize.js.map +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +102 -92
- package/lib/index.js.map +1 -1
- package/lib/platform-permit.d.ts +17 -0
- package/lib/platform-permit.d.ts.map +1 -0
- package/lib/platform-permit.js +47 -0
- package/lib/platform-permit.js.map +1 -0
- package/lib/sdk-version.d.ts +1 -1
- package/lib/sdk-version.js +1 -1
- package/lib/types.d.ts +4 -4
- package/lib/types.d.ts.map +1 -1
- package/package.json +12 -9
- package/skills/qq/PERMITS.md +25 -0
- package/skills/qq/SKILL.md +1 -1
- package/src/adapter.ts +27 -25
- package/src/{bot.ts → endpoint.ts} +90 -38
- package/src/gateway-config.ts +5 -5
- package/src/group-at-normalize.ts +8 -8
- package/src/index.ts +96 -81
- package/src/platform-permit.ts +62 -0
- package/src/sdk-version.ts +1 -1
- package/src/types.ts +5 -5
- package/lib/bot.d.ts.map +0 -1
- package/lib/bot.js.map +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* QQ 官方
|
|
2
|
+
* QQ 官方 Endpoint 实现
|
|
3
3
|
*/
|
|
4
|
-
import { Bot, } from "qq-official-bot";
|
|
4
|
+
import { Bot as QQOfficialClient, } from "qq-official-bot";
|
|
5
5
|
import path from "path";
|
|
6
6
|
import { formatCompact } from "@zhin.js/logger";
|
|
7
7
|
import { Message, segment, } from "zhin.js";
|
|
@@ -12,6 +12,7 @@ import { SDK_VERSION, SDK_VERSION_HEADER } from "./sdk-version.js";
|
|
|
12
12
|
import { applyCustomAuthEndpoints } from "./gateway-config.js";
|
|
13
13
|
import { normalizeOutboundMarkdown } from "./outbound-markdown.js";
|
|
14
14
|
import { normalizeOutboundMedia } from "./outbound-media.js";
|
|
15
|
+
import { normalizeQqGuildSenderForPermit } from "./platform-permit.js";
|
|
15
16
|
/** 从 qq-official-bot SendResult / 审核回包中解析出站消息 ID */
|
|
16
17
|
export function resolveOutboundMessageId(result) {
|
|
17
18
|
if (!result || typeof result !== "object") {
|
|
@@ -32,7 +33,7 @@ export function resolveOutboundMessageId(result) {
|
|
|
32
33
|
}
|
|
33
34
|
return String(id);
|
|
34
35
|
}
|
|
35
|
-
export class
|
|
36
|
+
export class QQEndpoint extends QQOfficialClient {
|
|
36
37
|
adapter;
|
|
37
38
|
$connected = false;
|
|
38
39
|
/** 平台侧机器人 user_id,用于 @ 触发匹配 */
|
|
@@ -78,9 +79,54 @@ export class QQBot extends Bot {
|
|
|
78
79
|
normalizeQqInboundWsPayload(event, wsRes);
|
|
79
80
|
super.dispatchEvent(event, wsRes);
|
|
80
81
|
}
|
|
81
|
-
|
|
82
|
+
guildMemberCache = new Map();
|
|
83
|
+
guildOwnerCache = new Map();
|
|
84
|
+
async enrichGuildSender(message, guildId, userId) {
|
|
85
|
+
const key = `${guildId}:${userId}`;
|
|
86
|
+
const now = Date.now();
|
|
87
|
+
const cached = this.guildMemberCache.get(key);
|
|
88
|
+
if (cached && now - cached.at < 60_000) {
|
|
89
|
+
message.$sender.role = cached.role;
|
|
90
|
+
message.$sender.permissions = cached.permissions;
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
try {
|
|
94
|
+
let ownerId;
|
|
95
|
+
const ownerCached = this.guildOwnerCache.get(guildId);
|
|
96
|
+
if (ownerCached && now - ownerCached.at < 300_000) {
|
|
97
|
+
ownerId = ownerCached.ownerId;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
const guild = await this.getGuildInfo(guildId);
|
|
101
|
+
ownerId = guild?.owner_id?.toString?.() ?? guild?.owner?.id?.toString?.();
|
|
102
|
+
this.guildOwnerCache.set(guildId, { at: now, ownerId });
|
|
103
|
+
}
|
|
104
|
+
const member = await this.getGuildMember(guildId, userId);
|
|
105
|
+
const roleIds = Array.isArray(member?.roles)
|
|
106
|
+
? member.roles.map((r) => typeof r === "string" ? r : r?.id ?? String(r))
|
|
107
|
+
: [];
|
|
108
|
+
const isOwner = ownerId === userId;
|
|
109
|
+
const isAdmin = !isOwner && roleIds.length > 0;
|
|
110
|
+
const normalized = normalizeQqGuildSenderForPermit({ roles: roleIds, isOwner, isAdmin });
|
|
111
|
+
const entry = {
|
|
112
|
+
at: now,
|
|
113
|
+
role: normalized.role,
|
|
114
|
+
permissions: normalized.permissions ?? [],
|
|
115
|
+
};
|
|
116
|
+
this.guildMemberCache.set(key, entry);
|
|
117
|
+
message.$sender.role = entry.role;
|
|
118
|
+
message.$sender.permissions = entry.permissions;
|
|
119
|
+
}
|
|
120
|
+
catch {
|
|
121
|
+
// 保守拒绝
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
async handleQQMessage(msg) {
|
|
82
125
|
try {
|
|
83
126
|
const message = this.$formatMessage(msg);
|
|
127
|
+
if (msg.message_type === "guild" && msg.guild_id && message.$sender.id) {
|
|
128
|
+
await this.enrichGuildSender(message, String(msg.guild_id), message.$sender.id);
|
|
129
|
+
}
|
|
84
130
|
this.adapter.emit("message.receive", message);
|
|
85
131
|
this.pluginLogger.debug(`${this.$config.name} recv ${message.$channel.type}(${message.$channel.id}):${segment.raw(message.$content)}`);
|
|
86
132
|
}
|
|
@@ -114,7 +160,7 @@ export class QQBot extends Bot {
|
|
|
114
160
|
}
|
|
115
161
|
}
|
|
116
162
|
async $disconnect() {
|
|
117
|
-
//
|
|
163
|
+
// Endpoint 继承自 EventEmitter,清除 $connect() 注册的所有监听器
|
|
118
164
|
this.removeAllListeners();
|
|
119
165
|
await this.stop();
|
|
120
166
|
this.$connected = false;
|
|
@@ -180,15 +226,15 @@ export class QQBot extends Bot {
|
|
|
180
226
|
target_id = `direct:${msg.guild_id}`;
|
|
181
227
|
let content = msg.message;
|
|
182
228
|
if (msg.message_type === "group" && Array.isArray(content)) {
|
|
183
|
-
const
|
|
229
|
+
const endpointAtIds = [this.$platformUserId, this.$config.appid]
|
|
184
230
|
.filter((id) => Boolean(id))
|
|
185
231
|
.map(String);
|
|
186
|
-
content = normalizeGroupAtPrefix(content,
|
|
232
|
+
content = normalizeGroupAtPrefix(content, endpointAtIds, raw.__zhin_group_at === true);
|
|
187
233
|
}
|
|
188
234
|
const result = Message.from(msg, {
|
|
189
235
|
$id: msg.message_id?.toString(),
|
|
190
236
|
$adapter: "qq",
|
|
191
|
-
$
|
|
237
|
+
$endpoint: this.$config.name,
|
|
192
238
|
$sender: {
|
|
193
239
|
id: msg.sender.user_id?.toString(),
|
|
194
240
|
name: msg.sender.user_name?.toString(),
|
|
@@ -211,7 +257,7 @@ export class QQBot extends Bot {
|
|
|
211
257
|
return await this.adapter.sendMessage({
|
|
212
258
|
...result.$channel,
|
|
213
259
|
context: "qq",
|
|
214
|
-
|
|
260
|
+
endpoint: this.$config.name,
|
|
215
261
|
content,
|
|
216
262
|
});
|
|
217
263
|
},
|
|
@@ -273,7 +319,7 @@ export class QQBot extends Bot {
|
|
|
273
319
|
return await this.guildService.getList();
|
|
274
320
|
}
|
|
275
321
|
catch (error) {
|
|
276
|
-
this.pluginLogger.error(`QQ
|
|
322
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 获取频道列表失败:`, error);
|
|
277
323
|
throw error;
|
|
278
324
|
}
|
|
279
325
|
}
|
|
@@ -286,7 +332,7 @@ export class QQBot extends Bot {
|
|
|
286
332
|
return await this.guildService.getInfo(guildId);
|
|
287
333
|
}
|
|
288
334
|
catch (error) {
|
|
289
|
-
this.pluginLogger.error(`QQ
|
|
335
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 获取频道详情失败:`, error);
|
|
290
336
|
throw error;
|
|
291
337
|
}
|
|
292
338
|
}
|
|
@@ -299,7 +345,7 @@ export class QQBot extends Bot {
|
|
|
299
345
|
return await this.channelService.getList(guildId);
|
|
300
346
|
}
|
|
301
347
|
catch (error) {
|
|
302
|
-
this.pluginLogger.error(`QQ
|
|
348
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 获取子频道列表失败:`, error);
|
|
303
349
|
throw error;
|
|
304
350
|
}
|
|
305
351
|
}
|
|
@@ -312,7 +358,7 @@ export class QQBot extends Bot {
|
|
|
312
358
|
return await this.channelService.getInfo(channelId);
|
|
313
359
|
}
|
|
314
360
|
catch (error) {
|
|
315
|
-
this.pluginLogger.error(`QQ
|
|
361
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 获取子频道详情失败:`, error);
|
|
316
362
|
throw error;
|
|
317
363
|
}
|
|
318
364
|
}
|
|
@@ -325,7 +371,7 @@ export class QQBot extends Bot {
|
|
|
325
371
|
return await this.memberService.getGuildMemberList(guildId);
|
|
326
372
|
}
|
|
327
373
|
catch (error) {
|
|
328
|
-
this.pluginLogger.error(`QQ
|
|
374
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 获取频道成员列表失败:`, error);
|
|
329
375
|
throw error;
|
|
330
376
|
}
|
|
331
377
|
}
|
|
@@ -339,7 +385,7 @@ export class QQBot extends Bot {
|
|
|
339
385
|
return await this.memberService.getGuildMemberInfo(guildId, userId);
|
|
340
386
|
}
|
|
341
387
|
catch (error) {
|
|
342
|
-
this.pluginLogger.error(`QQ
|
|
388
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 获取成员详情失败:`, error);
|
|
343
389
|
throw error;
|
|
344
390
|
}
|
|
345
391
|
}
|
|
@@ -353,11 +399,11 @@ export class QQBot extends Bot {
|
|
|
353
399
|
async removeGuildMember(guildId, userId, addBlacklist, deleteHistoryMsg) {
|
|
354
400
|
try {
|
|
355
401
|
await this.memberService.kickMember(guildId, userId, deleteHistoryMsg, addBlacklist);
|
|
356
|
-
this.pluginLogger.info(`QQ
|
|
402
|
+
this.pluginLogger.info(`QQ Endpoint ${this.$id} 踢出成员 ${userId}(频道 ${guildId})`);
|
|
357
403
|
return true;
|
|
358
404
|
}
|
|
359
405
|
catch (error) {
|
|
360
|
-
this.pluginLogger.error(`QQ
|
|
406
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 踢出成员失败:`, error);
|
|
361
407
|
throw error;
|
|
362
408
|
}
|
|
363
409
|
}
|
|
@@ -370,7 +416,7 @@ export class QQBot extends Bot {
|
|
|
370
416
|
return await this.guildService.getRoles(guildId);
|
|
371
417
|
}
|
|
372
418
|
catch (error) {
|
|
373
|
-
this.pluginLogger.error(`QQ
|
|
419
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 获取角色列表失败:`, error);
|
|
374
420
|
throw error;
|
|
375
421
|
}
|
|
376
422
|
}
|
|
@@ -384,11 +430,11 @@ export class QQBot extends Bot {
|
|
|
384
430
|
async createGuildRole(guildId, name, color, hoist) {
|
|
385
431
|
try {
|
|
386
432
|
const result = await this.guildService.createRole(guildId, { name, color: color || 0, hoist: hoist ?? 0 });
|
|
387
|
-
this.pluginLogger.info(`QQ
|
|
433
|
+
this.pluginLogger.info(`QQ Endpoint ${this.$id} 创建角色 "${name}"(频道 ${guildId})`);
|
|
388
434
|
return result;
|
|
389
435
|
}
|
|
390
436
|
catch (error) {
|
|
391
|
-
this.pluginLogger.error(`QQ
|
|
437
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 创建角色失败:`, error);
|
|
392
438
|
throw error;
|
|
393
439
|
}
|
|
394
440
|
}
|
|
@@ -402,11 +448,11 @@ export class QQBot extends Bot {
|
|
|
402
448
|
async addMemberRole(guildId, channelId, userId, roleId) {
|
|
403
449
|
try {
|
|
404
450
|
await this.memberService.addMemberRole(guildId, channelId, userId, roleId);
|
|
405
|
-
this.pluginLogger.info(`QQ
|
|
451
|
+
this.pluginLogger.info(`QQ Endpoint ${this.$id} 给成员 ${userId} 添加角色 ${roleId}(频道 ${guildId})`);
|
|
406
452
|
return true;
|
|
407
453
|
}
|
|
408
454
|
catch (error) {
|
|
409
|
-
this.pluginLogger.error(`QQ
|
|
455
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 添加角色失败:`, error);
|
|
410
456
|
throw error;
|
|
411
457
|
}
|
|
412
458
|
}
|
|
@@ -420,11 +466,11 @@ export class QQBot extends Bot {
|
|
|
420
466
|
async removeMemberRole(guildId, channelId, userId, roleId) {
|
|
421
467
|
try {
|
|
422
468
|
await this.memberService.removeMemberRole(guildId, channelId, userId, roleId);
|
|
423
|
-
this.pluginLogger.info(`QQ
|
|
469
|
+
this.pluginLogger.info(`QQ Endpoint ${this.$id} 移除成员 ${userId} 的角色 ${roleId}(频道 ${guildId})`);
|
|
424
470
|
return true;
|
|
425
471
|
}
|
|
426
472
|
catch (error) {
|
|
427
|
-
this.pluginLogger.error(`QQ
|
|
473
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 移除角色失败:`, error);
|
|
428
474
|
throw error;
|
|
429
475
|
}
|
|
430
476
|
}
|
|
@@ -438,16 +484,16 @@ export class QQBot extends Bot {
|
|
|
438
484
|
try {
|
|
439
485
|
if (muteSeconds > 0) {
|
|
440
486
|
await this.memberService.muteMembers(guildId, userIds, muteSeconds);
|
|
441
|
-
this.pluginLogger.info(`QQ
|
|
487
|
+
this.pluginLogger.info(`QQ Endpoint ${this.$id} 禁言成员 ${userIds.join(',')} ${muteSeconds}秒(频道 ${guildId})`);
|
|
442
488
|
}
|
|
443
489
|
else {
|
|
444
490
|
await this.memberService.unmuteMembers(guildId, userIds);
|
|
445
|
-
this.pluginLogger.info(`QQ
|
|
491
|
+
this.pluginLogger.info(`QQ Endpoint ${this.$id} 解除成员 ${userIds.join(',')} 禁言(频道 ${guildId})`);
|
|
446
492
|
}
|
|
447
493
|
return true;
|
|
448
494
|
}
|
|
449
495
|
catch (error) {
|
|
450
|
-
this.pluginLogger.error(`QQ
|
|
496
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 禁言操作失败:`, error);
|
|
451
497
|
throw error;
|
|
452
498
|
}
|
|
453
499
|
}
|
|
@@ -460,18 +506,18 @@ export class QQBot extends Bot {
|
|
|
460
506
|
try {
|
|
461
507
|
if (muteSeconds > 0) {
|
|
462
508
|
await this.guildService.mute(guildId, muteSeconds);
|
|
463
|
-
this.pluginLogger.info(`QQ
|
|
509
|
+
this.pluginLogger.info(`QQ Endpoint ${this.$id} 开启全员禁言(频道 ${guildId})`);
|
|
464
510
|
}
|
|
465
511
|
else {
|
|
466
512
|
await this.guildService.unmute(guildId);
|
|
467
|
-
this.pluginLogger.info(`QQ
|
|
513
|
+
this.pluginLogger.info(`QQ Endpoint ${this.$id} 关闭全员禁言(频道 ${guildId})`);
|
|
468
514
|
}
|
|
469
515
|
return true;
|
|
470
516
|
}
|
|
471
517
|
catch (error) {
|
|
472
|
-
this.pluginLogger.error(`QQ
|
|
518
|
+
this.pluginLogger.error(`QQ Endpoint ${this.$id} 全员禁言操作失败:`, error);
|
|
473
519
|
throw error;
|
|
474
520
|
}
|
|
475
521
|
}
|
|
476
522
|
}
|
|
477
|
-
//# sourceMappingURL=
|
|
523
|
+
//# sourceMappingURL=endpoint.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"endpoint.js","sourceRoot":"","sources":["../src/endpoint.ts"],"names":[],"mappings":"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"}
|
package/lib/gateway-config.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Logger } from "@zhin.js/logger";
|
|
2
|
-
import type { Bot } from "qq-official-bot";
|
|
2
|
+
import type { Bot as QQOfficialBot } from "qq-official-bot";
|
|
3
3
|
import { ReceiverMode } from "qq-official-bot";
|
|
4
|
-
import type {
|
|
4
|
+
import type { QQEndpointConfig } from "./types.js";
|
|
5
5
|
/** qq-official-bot 默认 token 接口 */
|
|
6
6
|
export declare const DEFAULT_ACCESS_TOKEN_URL = "https://bots.qq.com/app/getAppAccessToken";
|
|
7
7
|
/** qq-official-bot 默认 gateway 路径(相对 API baseURL) */
|
|
@@ -10,5 +10,5 @@ export declare const DEFAULT_GATEWAY_URL = "/gateway/bot";
|
|
|
10
10
|
* 将自定义 gateway / token 地址注入 SDK Auth。
|
|
11
11
|
* SDK 仅在 websocket 模式自动读取配置;middleware / webhook 需在此补丁。
|
|
12
12
|
*/
|
|
13
|
-
export declare function applyCustomAuthEndpoints(
|
|
13
|
+
export declare function applyCustomAuthEndpoints(endpoint: QQOfficialBot, config: Pick<QQEndpointConfig<ReceiverMode>, "mode" | "accessTokenUrl" | "gatewayUrl">, logger: Logger): void;
|
|
14
14
|
//# sourceMappingURL=gateway-config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-config.d.ts","sourceRoot":"","sources":["../src/gateway-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"gateway-config.d.ts","sourceRoot":"","sources":["../src/gateway-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C,OAAO,KAAK,EAAE,GAAG,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEnD,kCAAkC;AAClC,eAAO,MAAM,wBAAwB,8CAA8C,CAAC;AACpF,oDAAoD;AACpD,eAAO,MAAM,mBAAmB,iBAAiB,CAAC;AAWlD;;;GAGG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,YAAY,CAAC,EACtF,MAAM,EAAE,MAAM,GACb,IAAI,CAmBN"}
|
package/lib/gateway-config.js
CHANGED
|
@@ -8,12 +8,12 @@ export const DEFAULT_GATEWAY_URL = "/gateway/bot";
|
|
|
8
8
|
* 将自定义 gateway / token 地址注入 SDK Auth。
|
|
9
9
|
* SDK 仅在 websocket 模式自动读取配置;middleware / webhook 需在此补丁。
|
|
10
10
|
*/
|
|
11
|
-
export function applyCustomAuthEndpoints(
|
|
11
|
+
export function applyCustomAuthEndpoints(endpoint, config, logger) {
|
|
12
12
|
const { accessTokenUrl, gatewayUrl, mode } = config;
|
|
13
13
|
if (!accessTokenUrl && !gatewayUrl)
|
|
14
14
|
return;
|
|
15
15
|
if (mode !== ReceiverMode.WEBSOCKET) {
|
|
16
|
-
const session =
|
|
16
|
+
const session = endpoint.sessionManager;
|
|
17
17
|
if (accessTokenUrl)
|
|
18
18
|
session.authManager.config.accessTokenUrl = accessTokenUrl;
|
|
19
19
|
if (gatewayUrl)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gateway-config.js","sourceRoot":"","sources":["../src/gateway-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,kCAAkC;AAClC,MAAM,CAAC,MAAM,wBAAwB,GAAG,2CAA2C,CAAC;AACpF,oDAAoD;AACpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAWlD;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,
|
|
1
|
+
{"version":3,"file":"gateway-config.js","sourceRoot":"","sources":["../src/gateway-config.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,kCAAkC;AAClC,MAAM,CAAC,MAAM,wBAAwB,GAAG,2CAA2C,CAAC;AACpF,oDAAoD;AACpD,MAAM,CAAC,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAWlD;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CACtC,QAAuB,EACvB,MAAsF,EACtF,MAAc;IAEd,MAAM,EAAE,cAAc,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IACpD,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU;QAAE,OAAO;IAE3C,IAAI,IAAI,KAAK,YAAY,CAAC,SAAS,EAAE,CAAC;QACpC,MAAM,OAAO,GAAG,QAAQ,CAAC,cAA+C,CAAC;QACzE,IAAI,cAAc;YAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,cAAc,GAAG,cAAc,CAAC;QAC/E,IAAI,UAAU;YAAE,OAAO,CAAC,WAAW,CAAC,MAAM,CAAC,UAAU,GAAG,UAAU,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC;QACxB,EAAE,EAAE,YAAY;QAChB,IAAI;QACJ,cAAc,EAAE,cAAc,IAAI,wBAAwB;QAC1D,UAAU,EAAE,UAAU,IAAI,mBAAmB;QAC7C,IAAI,EAAE,IAAI,KAAK,YAAY,CAAC,SAAS;YACnC,CAAC,CAAC,2BAA2B;YAC7B,CAAC,CAAC,wCAAwC;KAC7C,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -4,5 +4,5 @@ import type { MessageElement } from "zhin.js";
|
|
|
4
4
|
* - 去掉正文前的 at 段与内联 @,使命令/文本从首段开始匹配
|
|
5
5
|
* - 若曾 @ 机器人,在末尾追加规范 at 段,供 AI @ 触发器识别
|
|
6
6
|
*/
|
|
7
|
-
export declare function normalizeGroupAtPrefix(content: MessageElement[],
|
|
7
|
+
export declare function normalizeGroupAtPrefix(content: MessageElement[], endpointAtIds: string[], forceAt: boolean): MessageElement[];
|
|
8
8
|
//# sourceMappingURL=group-at-normalize.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-at-normalize.d.ts","sourceRoot":"","sources":["../src/group-at-normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA2B9C;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,cAAc,EAAE,EACzB,
|
|
1
|
+
{"version":3,"file":"group-at-normalize.d.ts","sourceRoot":"","sources":["../src/group-at-normalize.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA2B9C;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,cAAc,EAAE,EACzB,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,EAAE,OAAO,GACf,cAAc,EAAE,CAyClB"}
|
|
@@ -5,17 +5,17 @@ function segmentAtId(seg) {
|
|
|
5
5
|
const raw = data?.user_id ?? data?.qq ?? data?.id;
|
|
6
6
|
return raw == null ? "" : String(raw);
|
|
7
7
|
}
|
|
8
|
-
function
|
|
9
|
-
for (const id of
|
|
8
|
+
function textMentionsEndpoint(text, endpointIds) {
|
|
9
|
+
for (const id of endpointIds) {
|
|
10
10
|
const re = new RegExp(`@${id.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}`);
|
|
11
11
|
if (re.test(text))
|
|
12
12
|
return true;
|
|
13
13
|
}
|
|
14
14
|
return false;
|
|
15
15
|
}
|
|
16
|
-
function
|
|
16
|
+
function stripInlineAtEndpoint(text, endpointIds) {
|
|
17
17
|
let result = text;
|
|
18
|
-
for (const id of
|
|
18
|
+
for (const id of endpointIds) {
|
|
19
19
|
if (!id)
|
|
20
20
|
continue;
|
|
21
21
|
const re = new RegExp(`^@${id.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")}`);
|
|
@@ -28,8 +28,8 @@ function stripInlineAtBot(text, botIds) {
|
|
|
28
28
|
* - 去掉正文前的 at 段与内联 @,使命令/文本从首段开始匹配
|
|
29
29
|
* - 若曾 @ 机器人,在末尾追加规范 at 段,供 AI @ 触发器识别
|
|
30
30
|
*/
|
|
31
|
-
export function normalizeGroupAtPrefix(content,
|
|
32
|
-
const ids = [...new Set(
|
|
31
|
+
export function normalizeGroupAtPrefix(content, endpointAtIds, forceAt) {
|
|
32
|
+
const ids = [...new Set(endpointAtIds.map(String).filter(Boolean))];
|
|
33
33
|
if (!ids.length || !Array.isArray(content))
|
|
34
34
|
return content;
|
|
35
35
|
let mentioned = forceAt;
|
|
@@ -46,9 +46,9 @@ export function normalizeGroupAtPrefix(content, botAtIds, forceAt) {
|
|
|
46
46
|
}
|
|
47
47
|
if (seg.type === "text" && seg.data && typeof seg.data === "object") {
|
|
48
48
|
const raw = String(seg.data.text ?? "");
|
|
49
|
-
if (
|
|
49
|
+
if (textMentionsEndpoint(raw, ids))
|
|
50
50
|
mentioned = true;
|
|
51
|
-
const stripped =
|
|
51
|
+
const stripped = stripInlineAtEndpoint(raw, ids);
|
|
52
52
|
if (stripped) {
|
|
53
53
|
body.push({ ...seg, data: { ...seg.data, text: stripped } });
|
|
54
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"group-at-normalize.js","sourceRoot":"","sources":["../src/group-at-normalize.ts"],"names":[],"mappings":"AAEA,SAAS,WAAW,CAAC,GAAmB;IACtC,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAC3D,MAAM,IAAI,GAAG,GAAG,CAAC,IAA2C,CAAC;IAC7D,MAAM,GAAG,GAAG,IAAI,EAAE,OAAO,IAAI,IAAI,EAAE,EAAE,IAAI,IAAI,EAAE,EAAE,CAAC;IAClD,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,
|
|
1
|
+
{"version":3,"file":"group-at-normalize.js","sourceRoot":"","sources":["../src/group-at-normalize.ts"],"names":[],"mappings":"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"}
|
package/lib/index.d.ts
CHANGED
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAOhD,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,MAAM,CAAC;QACf,UAAU,QAAQ;YAChB,GAAG,EAAE,WAAW,CAAC;YACjB,MAAM,EAAE,MAAM,CAAC;SAChB;KACF;CACF;AAED,OAAO,QAAQ,SAAS,CAAC;IACvB,UAAU,QAAQ;QAChB,EAAE,EAAE,SAAS,CAAC;KACf;CACF;AAED,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC"}
|