@aalis/plugin-adapter-onebot 0.4.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/LICENSE +21 -0
- package/README.md +20 -0
- package/dist/attachment-cache.d.ts +24 -0
- package/dist/attachment-cache.d.ts.map +1 -0
- package/dist/attachment-cache.js +144 -0
- package/dist/attachment-cache.js.map +1 -0
- package/dist/attachments.d.ts +12 -0
- package/dist/attachments.d.ts.map +1 -0
- package/dist/attachments.js +163 -0
- package/dist/attachments.js.map +1 -0
- package/dist/forward-expand.d.ts +68 -0
- package/dist/forward-expand.d.ts.map +1 -0
- package/dist/forward-expand.js +275 -0
- package/dist/forward-expand.js.map +1 -0
- package/dist/forward.d.ts +79 -0
- package/dist/forward.d.ts.map +1 -0
- package/dist/forward.js +329 -0
- package/dist/forward.js.map +1 -0
- package/dist/i18n.d.ts +3 -0
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +23 -0
- package/dist/i18n.js.map +1 -0
- package/dist/index.d.ts +40 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +1948 -0
- package/dist/index.js.map +1 -0
- package/dist/sent-messages.d.ts +28 -0
- package/dist/sent-messages.d.ts.map +1 -0
- package/dist/sent-messages.js +74 -0
- package/dist/sent-messages.js.map +1 -0
- package/dist/types.d.ts +199 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +309 -0
- package/dist/types.js.map +1 -0
- package/dist/v11.d.ts +29 -0
- package/dist/v11.d.ts.map +1 -0
- package/dist/v11.js +263 -0
- package/dist/v11.js.map +1 -0
- package/dist/v12.d.ts +30 -0
- package/dist/v12.d.ts.map +1 -0
- package/dist/v12.js +189 -0
- package/dist/v12.js.map +1 -0
- package/package.json +61 -0
package/dist/types.js
ADDED
|
@@ -0,0 +1,309 @@
|
|
|
1
|
+
/** 从 OneBot 消息段数组中提取纯文本 */
|
|
2
|
+
export function extractText(segments) {
|
|
3
|
+
return segments
|
|
4
|
+
.filter(seg => seg.type === 'text')
|
|
5
|
+
.map(seg => String(seg.data.text ?? ''))
|
|
6
|
+
.join('');
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* 将 OneBot 消息段数组转换为富文本(含 XML 标记),供 LLM 消费。
|
|
10
|
+
* @param segments 消息段数组
|
|
11
|
+
* @param selfId 机器人自身 ID,用于标记 <at self>
|
|
12
|
+
* @param nicknameMap 可选的 userId→昵称 映射,用于丰富 <at> 标签
|
|
13
|
+
*/
|
|
14
|
+
export function segmentsToText(segments, selfId, nicknameMap) {
|
|
15
|
+
return segments
|
|
16
|
+
.map(seg => {
|
|
17
|
+
switch (seg.type) {
|
|
18
|
+
case 'text':
|
|
19
|
+
return String(seg.data.text ?? '');
|
|
20
|
+
case 'at': {
|
|
21
|
+
const qq = String(seg.data.qq ?? '');
|
|
22
|
+
if (qq === 'all')
|
|
23
|
+
return '<at>all</at>';
|
|
24
|
+
const nick = nicknameMap?.get(qq) ?? qq;
|
|
25
|
+
const selfAttr = selfId && qq === selfId ? ' self' : '';
|
|
26
|
+
return `<at${selfAttr} id="${qq}">${nick}</at>`;
|
|
27
|
+
}
|
|
28
|
+
case 'mention': {
|
|
29
|
+
const uid = String(seg.data.user_id ?? '');
|
|
30
|
+
const nick = nicknameMap?.get(uid) ?? uid;
|
|
31
|
+
const selfAttr = selfId && uid === selfId ? ' self' : '';
|
|
32
|
+
return `<at${selfAttr} id="${uid}">${nick}</at>`;
|
|
33
|
+
}
|
|
34
|
+
case 'mention_all':
|
|
35
|
+
return '<at>all</at>';
|
|
36
|
+
case 'face':
|
|
37
|
+
return `[表情:${seg.data.id ?? ''}]`;
|
|
38
|
+
case 'image':
|
|
39
|
+
return '[图片]';
|
|
40
|
+
case 'reply':
|
|
41
|
+
return ''; // 回复引用是元数据,不作为内联内容
|
|
42
|
+
case 'forward': {
|
|
43
|
+
const id = seg.data.id != null ? String(seg.data.id) : '';
|
|
44
|
+
return id ? `<forward id="${id}">[合并转发消息]</forward>` : '[合并转发消息]';
|
|
45
|
+
}
|
|
46
|
+
case 'record':
|
|
47
|
+
return '[语音]';
|
|
48
|
+
case 'video':
|
|
49
|
+
return '[视频]';
|
|
50
|
+
case 'share':
|
|
51
|
+
return `[分享: ${seg.data.title ?? ''}]`;
|
|
52
|
+
case 'json':
|
|
53
|
+
return '[JSON卡片]';
|
|
54
|
+
case 'xml':
|
|
55
|
+
return '[XML卡片]';
|
|
56
|
+
case 'poke':
|
|
57
|
+
return '[戳一戳]';
|
|
58
|
+
default:
|
|
59
|
+
// 未识别段类型:保留类型名避免整条消息文本为空被静默丢弃
|
|
60
|
+
return seg.type ? `[未知段:${seg.type}]` : '';
|
|
61
|
+
}
|
|
62
|
+
})
|
|
63
|
+
.join('');
|
|
64
|
+
}
|
|
65
|
+
// ===== 合并转发(forward)解析与格式化 =====
|
|
66
|
+
/**
|
|
67
|
+
* 从 get_forward_msg 返回的 data 或一个 forward 消息段的 data 中
|
|
68
|
+
* 提取出节点数组。各家实现字段不一:messages / message / content。
|
|
69
|
+
*/
|
|
70
|
+
export function getForwardNodes(data) {
|
|
71
|
+
if (Array.isArray(data))
|
|
72
|
+
return data;
|
|
73
|
+
if (!data || typeof data !== 'object')
|
|
74
|
+
return [];
|
|
75
|
+
const obj = data;
|
|
76
|
+
if (Array.isArray(obj.messages))
|
|
77
|
+
return obj.messages;
|
|
78
|
+
if (Array.isArray(obj.message))
|
|
79
|
+
return obj.message;
|
|
80
|
+
if (Array.isArray(obj.content))
|
|
81
|
+
return obj.content;
|
|
82
|
+
return [];
|
|
83
|
+
}
|
|
84
|
+
function getForwardNodeData(item) {
|
|
85
|
+
if (!item || typeof item !== 'object')
|
|
86
|
+
return {};
|
|
87
|
+
const node = item;
|
|
88
|
+
if (node.type === 'node' && node.data && typeof node.data === 'object') {
|
|
89
|
+
return node.data;
|
|
90
|
+
}
|
|
91
|
+
return node;
|
|
92
|
+
}
|
|
93
|
+
function getForwardNodeContent(item) {
|
|
94
|
+
const node = item && typeof item === 'object' ? item : {};
|
|
95
|
+
const nodeData = getForwardNodeData(item);
|
|
96
|
+
return nodeData.content ?? node.content ?? nodeData.message ?? node.message;
|
|
97
|
+
}
|
|
98
|
+
/** 把节点 content(消息段数组或 CQ 字符串)渲染成短文本(无图像识别) */
|
|
99
|
+
function renderForwardNodeContent(content) {
|
|
100
|
+
if (typeof content === 'string') {
|
|
101
|
+
// 简单去掉 CQ 富码占位
|
|
102
|
+
return content
|
|
103
|
+
.replace(/\[CQ:image[^\]]*\]/g, '[图片]')
|
|
104
|
+
.replace(/\[CQ:face,[^\]]*id=(\d+)[^\]]*\]/g, '[表情:$1]')
|
|
105
|
+
.replace(/\[CQ:at,[^\]]*qq=(\d+)[^\]]*\]/g, '<at id="$1">$1</at>')
|
|
106
|
+
.replace(/\[CQ:reply[^\]]*\]/g, '')
|
|
107
|
+
.replace(/\[CQ:forward,[^\]]*id=([^,\]]+)[^\]]*\]/g, '<forward id="$1">[合并转发消息]</forward>')
|
|
108
|
+
.replace(/\[CQ:[a-z]+[^\]]*\]/g, '');
|
|
109
|
+
}
|
|
110
|
+
if (!Array.isArray(content))
|
|
111
|
+
return '';
|
|
112
|
+
return content
|
|
113
|
+
.map(seg => {
|
|
114
|
+
if (!seg || typeof seg !== 'object')
|
|
115
|
+
return '';
|
|
116
|
+
const s = seg;
|
|
117
|
+
const data = s.data ?? {};
|
|
118
|
+
switch (s.type) {
|
|
119
|
+
case 'text':
|
|
120
|
+
return String(data.text ?? '');
|
|
121
|
+
case 'at':
|
|
122
|
+
return data.qq === 'all' ? '<at>all</at>' : `<at id="${String(data.qq ?? '')}">${String(data.qq ?? '')}</at>`;
|
|
123
|
+
case 'face':
|
|
124
|
+
return `[表情:${String(data.id ?? '')}]`;
|
|
125
|
+
case 'image':
|
|
126
|
+
return '[图片]';
|
|
127
|
+
case 'reply':
|
|
128
|
+
return '';
|
|
129
|
+
case 'forward':
|
|
130
|
+
return data.id ? `<forward id="${String(data.id)}">[合并转发消息]</forward>` : '[合并转发消息]';
|
|
131
|
+
case 'record':
|
|
132
|
+
return '[语音]';
|
|
133
|
+
case 'video':
|
|
134
|
+
return '[视频]';
|
|
135
|
+
case 'share':
|
|
136
|
+
return `[分享:${String(data.title ?? '')}]`;
|
|
137
|
+
case 'json':
|
|
138
|
+
return '[JSON卡片]';
|
|
139
|
+
case 'xml':
|
|
140
|
+
return '[XML卡片]';
|
|
141
|
+
default:
|
|
142
|
+
return s.type ? `[${s.type}]` : '';
|
|
143
|
+
}
|
|
144
|
+
})
|
|
145
|
+
.join('');
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* 把 get_forward_msg 返回的数据格式化为内联可读文本,
|
|
149
|
+
* 用 <forward id="..."> ... </forward> 包裹,便于和原始占位符替换。
|
|
150
|
+
*/
|
|
151
|
+
export function formatForwardInline(forwardId, data, limit = 30) {
|
|
152
|
+
const nodes = getForwardNodes(data);
|
|
153
|
+
if (nodes.length === 0) {
|
|
154
|
+
return `<forward id="${forwardId}">[合并转发消息:内容为空或当前 OneBot 实现未返回节点]</forward>`;
|
|
155
|
+
}
|
|
156
|
+
const shown = nodes.slice(0, limit);
|
|
157
|
+
const lines = shown.map((item, i) => {
|
|
158
|
+
const nodeData = getForwardNodeData(item);
|
|
159
|
+
const senderObj = (item && typeof item === 'object' ? item.sender : undefined);
|
|
160
|
+
const name = String(nodeData.nickname ??
|
|
161
|
+
senderObj?.nickname ??
|
|
162
|
+
nodeData.name ??
|
|
163
|
+
nodeData.user_id ??
|
|
164
|
+
senderObj?.user_id ??
|
|
165
|
+
`节点${i + 1}`);
|
|
166
|
+
const userId = nodeData.user_id ?? nodeData.uin ?? senderObj?.user_id;
|
|
167
|
+
const prefix = userId != null ? `${name}(${String(userId)})` : name;
|
|
168
|
+
const text = renderForwardNodeContent(getForwardNodeContent(item)).trim() || '[空消息]';
|
|
169
|
+
return `${i + 1}. ${prefix}: ${text}`;
|
|
170
|
+
});
|
|
171
|
+
const more = nodes.length > shown.length ? `(仅显示前 ${shown.length}/${nodes.length} 条)` : '';
|
|
172
|
+
return `<forward id="${forwardId}">\n合并转发共 ${nodes.length} 条${more}:\n${lines.join('\n')}\n</forward>`;
|
|
173
|
+
}
|
|
174
|
+
/** 扫描消息段中的所有 forward 段,返回 {id, inlineNodes?} 列表 */
|
|
175
|
+
export function collectForwardSegments(segments) {
|
|
176
|
+
const out = [];
|
|
177
|
+
for (const seg of segments) {
|
|
178
|
+
if (seg.type !== 'forward')
|
|
179
|
+
continue;
|
|
180
|
+
const data = seg.data ?? {};
|
|
181
|
+
const id = data.id != null ? String(data.id) : '';
|
|
182
|
+
if (!id)
|
|
183
|
+
continue;
|
|
184
|
+
const inline = getForwardNodes(data);
|
|
185
|
+
out.push({ id, inlineNodes: inline.length > 0 ? inline : undefined });
|
|
186
|
+
}
|
|
187
|
+
return out;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* 解析内容字符串中的 XML 标记,拆分为抽象消息段列表。
|
|
191
|
+
*
|
|
192
|
+
* 支持的标记:
|
|
193
|
+
* - `<at id="QQ">昵称</at>` / `<at self id="QQ">昵称</at>` → @提及(新格式)
|
|
194
|
+
* - `<at>QQ</at>` / `<at self>QQ</at>` → @提及(旧格式/无昵称兼容)
|
|
195
|
+
* - `<face id="N"/>` → QQ 表情
|
|
196
|
+
* - `<image url="..."/>` → 图片
|
|
197
|
+
* - `<record url="..."/>` → 语音
|
|
198
|
+
* - `<video url="..."/>` → 视频
|
|
199
|
+
* - `<reply id="..."/>` → 引用回复
|
|
200
|
+
*/
|
|
201
|
+
export function parseContentToSegments(content) {
|
|
202
|
+
const segments = [];
|
|
203
|
+
// 匹配新旧两种 at 格式 + face/image/record/video/reply
|
|
204
|
+
const regex = /<at(?:\s+self)?(?:\s+id=["']([^"']*)["'])?\s*>([^<]*)<\/at>|<face\s+id=["']([^"']*)["']\s*\/>|<image\s+url=["']([^"']*)["']\s*\/>|<reply\s+id=["']([^"']*)["']\s*\/>|<video\s+url=["']([^"']*)["']\s*\/>|<record\s+url=["']([^"']*)["']\s*\/>/g;
|
|
205
|
+
let lastIndex = 0;
|
|
206
|
+
let match = regex.exec(content);
|
|
207
|
+
while (match !== null) {
|
|
208
|
+
if (match.index > lastIndex) {
|
|
209
|
+
const text = content.slice(lastIndex, match.index);
|
|
210
|
+
if (text)
|
|
211
|
+
segments.push({ type: 'text', data: { text } });
|
|
212
|
+
}
|
|
213
|
+
if (match[1] !== undefined || match[2] !== undefined) {
|
|
214
|
+
// at 标签:优先用 id 属性(新格式),回退到标签内容(旧格式/纯ID)
|
|
215
|
+
const id = (match[1] ?? match[2]).trim();
|
|
216
|
+
segments.push({ type: 'at', data: { id } });
|
|
217
|
+
}
|
|
218
|
+
else if (match[3] !== undefined) {
|
|
219
|
+
// face 标签:忽略,不转为消息段(防止 LLM 误发 QQ 表情,也兼容v12版本)
|
|
220
|
+
}
|
|
221
|
+
else if (match[4] !== undefined) {
|
|
222
|
+
segments.push({ type: 'image', data: { url: match[4] } });
|
|
223
|
+
}
|
|
224
|
+
else if (match[5] !== undefined) {
|
|
225
|
+
segments.push({ type: 'reply', data: { id: match[5] } });
|
|
226
|
+
}
|
|
227
|
+
else if (match[6] !== undefined) {
|
|
228
|
+
segments.push({ type: 'video', data: { url: match[6] } });
|
|
229
|
+
}
|
|
230
|
+
else if (match[7] !== undefined) {
|
|
231
|
+
segments.push({ type: 'audio', data: { url: match[7] } });
|
|
232
|
+
}
|
|
233
|
+
lastIndex = match.index + match[0].length;
|
|
234
|
+
match = regex.exec(content);
|
|
235
|
+
}
|
|
236
|
+
if (lastIndex < content.length) {
|
|
237
|
+
const text = content.slice(lastIndex);
|
|
238
|
+
if (text)
|
|
239
|
+
segments.push({ type: 'text', data: { text } });
|
|
240
|
+
}
|
|
241
|
+
return segments.length > 0 ? segments : [{ type: 'text', data: { text: content } }];
|
|
242
|
+
}
|
|
243
|
+
/** 将抽象消息段转为 OneBot v11 格式 */
|
|
244
|
+
export function toV11Segments(segments) {
|
|
245
|
+
const result = [];
|
|
246
|
+
for (const seg of segments) {
|
|
247
|
+
switch (seg.type) {
|
|
248
|
+
case 'text':
|
|
249
|
+
result.push({ type: 'text', data: { text: seg.data.text } });
|
|
250
|
+
break;
|
|
251
|
+
case 'at':
|
|
252
|
+
result.push({ type: 'at', data: { qq: seg.data.id === 'all' ? 'all' : Number(seg.data.id) || seg.data.id } });
|
|
253
|
+
break;
|
|
254
|
+
case 'face':
|
|
255
|
+
result.push({ type: 'face', data: { id: Number(seg.data.id) || 0 } });
|
|
256
|
+
break;
|
|
257
|
+
case 'image':
|
|
258
|
+
result.push({ type: 'image', data: { file: seg.data.url } });
|
|
259
|
+
break;
|
|
260
|
+
case 'audio':
|
|
261
|
+
result.push({ type: 'record', data: { file: seg.data.url } });
|
|
262
|
+
break;
|
|
263
|
+
case 'video':
|
|
264
|
+
result.push({ type: 'video', data: { file: seg.data.url } });
|
|
265
|
+
break;
|
|
266
|
+
case 'reply':
|
|
267
|
+
result.push({ type: 'reply', data: { id: Number(seg.data.id) || seg.data.id } });
|
|
268
|
+
break;
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
return result;
|
|
272
|
+
}
|
|
273
|
+
/** 将抽象消息段转为 OneBot v12 格式 */
|
|
274
|
+
export function toV12Segments(segments) {
|
|
275
|
+
const result = [];
|
|
276
|
+
for (const seg of segments) {
|
|
277
|
+
switch (seg.type) {
|
|
278
|
+
case 'text':
|
|
279
|
+
result.push({ type: 'text', data: { text: seg.data.text } });
|
|
280
|
+
break;
|
|
281
|
+
case 'at':
|
|
282
|
+
if (seg.data.id === 'all') {
|
|
283
|
+
result.push({ type: 'mention_all', data: {} });
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
result.push({ type: 'mention', data: { user_id: String(seg.data.id) } });
|
|
287
|
+
}
|
|
288
|
+
break;
|
|
289
|
+
case 'face':
|
|
290
|
+
// v12 无标准 face 类型,降级为文本
|
|
291
|
+
result.push({ type: 'text', data: { text: `[表情:${seg.data.id}]` } });
|
|
292
|
+
break;
|
|
293
|
+
case 'image':
|
|
294
|
+
result.push({ type: 'image', data: { file_id: String(seg.data.url) } });
|
|
295
|
+
break;
|
|
296
|
+
case 'audio':
|
|
297
|
+
result.push({ type: 'voice', data: { file_id: String(seg.data.url) } });
|
|
298
|
+
break;
|
|
299
|
+
case 'video':
|
|
300
|
+
result.push({ type: 'video', data: { file_id: String(seg.data.url) } });
|
|
301
|
+
break;
|
|
302
|
+
case 'reply':
|
|
303
|
+
result.push({ type: 'reply', data: { message_id: String(seg.data.id) } });
|
|
304
|
+
break;
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
return result;
|
|
308
|
+
}
|
|
309
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/v11.d.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { NormalizedMessageEvent, NormalizedMetaEvent, NormalizedNoticeEvent, NormalizedRequestEvent, OneBotProtocol, OneBotRawEvent, SendMessageParams } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* OneBot v11 协议处理器
|
|
4
|
+
*
|
|
5
|
+
* v11 特点:
|
|
6
|
+
* - 事件使用 post_type / message_type / meta_event_type
|
|
7
|
+
* - ID 均为 number 类型
|
|
8
|
+
* - 发送消息: send_msg / send_private_msg / send_group_msg
|
|
9
|
+
* - 获取自身信息: get_login_info
|
|
10
|
+
* - 获取版本: get_version_info
|
|
11
|
+
*/
|
|
12
|
+
export declare class OneBotV11 implements OneBotProtocol {
|
|
13
|
+
readonly version: "v11";
|
|
14
|
+
buildSendMessage(params: SendMessageParams): {
|
|
15
|
+
action: string;
|
|
16
|
+
params: Record<string, unknown>;
|
|
17
|
+
};
|
|
18
|
+
getSelfInfoAction(): string;
|
|
19
|
+
parseSelfInfo(data: unknown): {
|
|
20
|
+
userId: string | undefined;
|
|
21
|
+
nickname: string | undefined;
|
|
22
|
+
};
|
|
23
|
+
parseEventType(raw: OneBotRawEvent): 'message' | 'meta' | 'notice' | 'request' | 'other';
|
|
24
|
+
parseMessageEvent(raw: OneBotRawEvent, fallbackSelfId: string, nicknameMap?: Map<string, string>): NormalizedMessageEvent | null;
|
|
25
|
+
parseMetaEvent(raw: OneBotRawEvent): NormalizedMetaEvent;
|
|
26
|
+
parseNoticeEvent(raw: OneBotRawEvent, fallbackSelfId: string): NormalizedNoticeEvent | null;
|
|
27
|
+
parseRequestEvent(raw: OneBotRawEvent, fallbackSelfId: string): NormalizedRequestEvent | null;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=v11.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v11.d.ts","sourceRoot":"","sources":["../src/v11.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACd,cAAc,EACd,iBAAiB,EAClB,MAAM,YAAY,CAAC;AAGpB;;;;;;;;;GASG;AACH,qBAAa,SAAU,YAAW,cAAc;IAC9C,QAAQ,CAAC,OAAO,EAAG,KAAK,CAAU;IAElC,gBAAgB,CAAC,MAAM,EAAE,iBAAiB,GAAG;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE;IA8BhG,iBAAiB,IAAI,MAAM;IAI3B,aAAa,CAAC,IAAI,EAAE,OAAO;;;;IAQ3B,cAAc,CAAC,GAAG,EAAE,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,GAAG,OAAO;IAexF,iBAAiB,CACf,GAAG,EAAE,cAAc,EACnB,cAAc,EAAE,MAAM,EACtB,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,sBAAsB,GAAG,IAAI;IA+EhC,cAAc,CAAC,GAAG,EAAE,cAAc,GAAG,mBAAmB;IAYxD,gBAAgB,CAAC,GAAG,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI;IAmG3F,iBAAiB,CAAC,GAAG,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,GAAG,sBAAsB,GAAG,IAAI;CAsB9F"}
|
package/dist/v11.js
ADDED
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import { parseContentToSegments, segmentsToText, toV11Segments } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* OneBot v11 协议处理器
|
|
4
|
+
*
|
|
5
|
+
* v11 特点:
|
|
6
|
+
* - 事件使用 post_type / message_type / meta_event_type
|
|
7
|
+
* - ID 均为 number 类型
|
|
8
|
+
* - 发送消息: send_msg / send_private_msg / send_group_msg
|
|
9
|
+
* - 获取自身信息: get_login_info
|
|
10
|
+
* - 获取版本: get_version_info
|
|
11
|
+
*/
|
|
12
|
+
export class OneBotV11 {
|
|
13
|
+
version = 'v11';
|
|
14
|
+
buildSendMessage(params) {
|
|
15
|
+
const segments = parseContentToSegments(params.content);
|
|
16
|
+
const actionParams = {
|
|
17
|
+
message: toV11Segments(segments),
|
|
18
|
+
};
|
|
19
|
+
if (params.detailType === 'private') {
|
|
20
|
+
return {
|
|
21
|
+
action: 'send_private_msg',
|
|
22
|
+
params: { ...actionParams, user_id: Number(params.targetId) || params.targetId },
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
else if (params.detailType === 'group') {
|
|
26
|
+
return {
|
|
27
|
+
action: 'send_group_msg',
|
|
28
|
+
params: { ...actionParams, group_id: Number(params.targetId) || params.targetId },
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
// fallback: 使用 send_msg
|
|
32
|
+
return {
|
|
33
|
+
action: 'send_msg',
|
|
34
|
+
params: {
|
|
35
|
+
...actionParams,
|
|
36
|
+
message_type: params.detailType,
|
|
37
|
+
user_id: params.detailType === 'private' ? Number(params.targetId) || params.targetId : undefined,
|
|
38
|
+
group_id: params.detailType === 'group' ? Number(params.targetId) || params.targetId : undefined,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
getSelfInfoAction() {
|
|
43
|
+
return 'get_login_info';
|
|
44
|
+
}
|
|
45
|
+
parseSelfInfo(data) {
|
|
46
|
+
const info = data;
|
|
47
|
+
return {
|
|
48
|
+
userId: info?.user_id != null ? String(info.user_id) : undefined,
|
|
49
|
+
nickname: info?.nickname ? String(info.nickname) : undefined,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
parseEventType(raw) {
|
|
53
|
+
switch (raw.post_type) {
|
|
54
|
+
case 'message':
|
|
55
|
+
return 'message';
|
|
56
|
+
case 'meta_event':
|
|
57
|
+
return 'meta';
|
|
58
|
+
case 'notice':
|
|
59
|
+
return 'notice';
|
|
60
|
+
case 'request':
|
|
61
|
+
return 'request';
|
|
62
|
+
default:
|
|
63
|
+
return 'other';
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
parseMessageEvent(raw, fallbackSelfId, nicknameMap) {
|
|
67
|
+
const selfId = raw.self_id != null ? String(raw.self_id) : fallbackSelfId;
|
|
68
|
+
const detailType = (raw.message_type ?? 'private');
|
|
69
|
+
const message = Array.isArray(raw.message) ? raw.message : [];
|
|
70
|
+
// 优先使用消息段生成富文本(含 <at> 等标记),回退到 raw_message
|
|
71
|
+
const text = message.length > 0 ? segmentsToText(message, selfId, nicknameMap) : (raw.raw_message ?? '');
|
|
72
|
+
if (!text.trim())
|
|
73
|
+
return null;
|
|
74
|
+
// 提取图片 URL(老字段保留兼容)
|
|
75
|
+
// 提取统一附件列表(image/record/video/file)
|
|
76
|
+
const attachments = [];
|
|
77
|
+
for (const seg of message) {
|
|
78
|
+
if (seg.type === 'image' && seg.data.url) {
|
|
79
|
+
const url = String(seg.data.url);
|
|
80
|
+
attachments.push({ kind: 'image', url, name: seg.data.file ? String(seg.data.file) : undefined });
|
|
81
|
+
}
|
|
82
|
+
else if (seg.type === 'record' && (seg.data.url || seg.data.file)) {
|
|
83
|
+
// OneBot v11: 'record' = 语音段
|
|
84
|
+
const url = String(seg.data.url ?? seg.data.file);
|
|
85
|
+
attachments.push({ kind: 'audio', url, name: seg.data.file ? String(seg.data.file) : undefined });
|
|
86
|
+
}
|
|
87
|
+
else if (seg.type === 'video') {
|
|
88
|
+
// 放宽 URL/file 约束:部分 OneBot 实现(如 NapCat 在 某些场景)不会同步返回 URL,
|
|
89
|
+
// 此时仍保留 attachment 让下游 media 能输出「无法获取」描述,避免静默丢失
|
|
90
|
+
const url = seg.data.url ?? seg.data.file;
|
|
91
|
+
attachments.push({
|
|
92
|
+
kind: 'video',
|
|
93
|
+
url: url != null ? String(url) : '',
|
|
94
|
+
name: seg.data.file ? String(seg.data.file) : undefined,
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
else if (seg.type === 'file' && (seg.data.url || seg.data.file)) {
|
|
98
|
+
const url = String(seg.data.url ?? seg.data.file);
|
|
99
|
+
attachments.push({ kind: 'file', url, name: seg.data.file ? String(seg.data.file) : undefined });
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
// 提取引用回复的消息 ID
|
|
103
|
+
let replyToMessageId;
|
|
104
|
+
for (const seg of message) {
|
|
105
|
+
if (seg.type === 'reply' && seg.data.id != null) {
|
|
106
|
+
replyToMessageId = String(seg.data.id);
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
// 提取发送者昵称(优先群名片,回退到昵称)
|
|
111
|
+
const sender = raw.sender;
|
|
112
|
+
const nickname = sender?.card || sender?.nickname || undefined;
|
|
113
|
+
// 群消息:提取发送者群角色 (owner/admin/member) 与专属头衔
|
|
114
|
+
let senderRole;
|
|
115
|
+
let senderTitle;
|
|
116
|
+
if (detailType === 'group' && sender) {
|
|
117
|
+
const role = sender.role;
|
|
118
|
+
if (role === 'owner' || role === 'admin' || role === 'member') {
|
|
119
|
+
senderRole = role;
|
|
120
|
+
}
|
|
121
|
+
const title = sender.title;
|
|
122
|
+
if (typeof title === 'string' && title.length > 0) {
|
|
123
|
+
senderTitle = title;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
return {
|
|
127
|
+
selfId,
|
|
128
|
+
detailType,
|
|
129
|
+
text,
|
|
130
|
+
messageId: raw.message_id != null ? String(raw.message_id) : undefined,
|
|
131
|
+
userId: raw.user_id != null ? String(raw.user_id) : undefined,
|
|
132
|
+
nickname,
|
|
133
|
+
groupId: raw.group_id != null ? String(raw.group_id) : undefined,
|
|
134
|
+
message,
|
|
135
|
+
attachments: attachments.length > 0 ? attachments : undefined,
|
|
136
|
+
replyToMessageId,
|
|
137
|
+
senderRole,
|
|
138
|
+
senderTitle,
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
parseMetaEvent(raw) {
|
|
142
|
+
const subType = (raw.meta_event_type ?? '');
|
|
143
|
+
const selfId = raw.self_id != null ? String(raw.self_id) : undefined;
|
|
144
|
+
const status = raw.status;
|
|
145
|
+
return {
|
|
146
|
+
subType,
|
|
147
|
+
selfId,
|
|
148
|
+
interval: raw.interval ?? status?.interval ?? undefined,
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
parseNoticeEvent(raw, fallbackSelfId) {
|
|
152
|
+
const selfId = raw.self_id != null ? String(raw.self_id) : fallbackSelfId;
|
|
153
|
+
const noticeType = (raw.notice_type ?? '');
|
|
154
|
+
const subType = (raw.sub_type ?? '');
|
|
155
|
+
// v11 poke: notice_type='notify', sub_type='poke'
|
|
156
|
+
if (noticeType === 'notify' && subType === 'poke') {
|
|
157
|
+
return {
|
|
158
|
+
selfId,
|
|
159
|
+
noticeType: 'poke',
|
|
160
|
+
userId: raw.user_id != null ? String(raw.user_id) : undefined,
|
|
161
|
+
targetId: raw.target_id != null ? String(raw.target_id) : undefined,
|
|
162
|
+
groupId: raw.group_id != null ? String(raw.group_id) : undefined,
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
// 群文件上传: notice_type='group_upload'
|
|
166
|
+
if (noticeType === 'group_upload') {
|
|
167
|
+
const file = raw.file;
|
|
168
|
+
return {
|
|
169
|
+
selfId,
|
|
170
|
+
noticeType: 'group_upload',
|
|
171
|
+
userId: raw.user_id != null ? String(raw.user_id) : undefined,
|
|
172
|
+
groupId: raw.group_id != null ? String(raw.group_id) : undefined,
|
|
173
|
+
data: file
|
|
174
|
+
? {
|
|
175
|
+
fileId: file.id,
|
|
176
|
+
fileName: file.name,
|
|
177
|
+
fileSize: file.size,
|
|
178
|
+
busid: file.busid,
|
|
179
|
+
}
|
|
180
|
+
: undefined,
|
|
181
|
+
};
|
|
182
|
+
}
|
|
183
|
+
// 群成员增减: notice_type='group_increase' / 'group_decrease'
|
|
184
|
+
if (noticeType === 'group_increase' || noticeType === 'group_decrease') {
|
|
185
|
+
return {
|
|
186
|
+
selfId,
|
|
187
|
+
noticeType,
|
|
188
|
+
subType,
|
|
189
|
+
userId: raw.user_id != null ? String(raw.user_id) : undefined,
|
|
190
|
+
groupId: raw.group_id != null ? String(raw.group_id) : undefined,
|
|
191
|
+
data: {
|
|
192
|
+
operatorId: raw.operator_id != null ? String(raw.operator_id) : undefined,
|
|
193
|
+
},
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
// 群管理员变动: notice_type='group_admin'
|
|
197
|
+
if (noticeType === 'group_admin') {
|
|
198
|
+
return {
|
|
199
|
+
selfId,
|
|
200
|
+
noticeType: 'group_admin',
|
|
201
|
+
subType,
|
|
202
|
+
userId: raw.user_id != null ? String(raw.user_id) : undefined,
|
|
203
|
+
groupId: raw.group_id != null ? String(raw.group_id) : undefined,
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
// 群禁言: notice_type='group_ban', sub_type='ban' | 'lift_ban'
|
|
207
|
+
if (noticeType === 'group_ban') {
|
|
208
|
+
return {
|
|
209
|
+
selfId,
|
|
210
|
+
noticeType: 'group_ban',
|
|
211
|
+
subType: subType || undefined,
|
|
212
|
+
userId: raw.user_id != null ? String(raw.user_id) : undefined,
|
|
213
|
+
groupId: raw.group_id != null ? String(raw.group_id) : undefined,
|
|
214
|
+
data: {
|
|
215
|
+
operatorId: raw.operator_id != null ? String(raw.operator_id) : undefined,
|
|
216
|
+
duration: raw.duration != null ? Number(raw.duration) : undefined,
|
|
217
|
+
},
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
// 消息撤回: notice_type='group_recall' / 'friend_recall'
|
|
221
|
+
if (noticeType === 'group_recall' || noticeType === 'friend_recall') {
|
|
222
|
+
return {
|
|
223
|
+
selfId,
|
|
224
|
+
noticeType,
|
|
225
|
+
userId: raw.user_id != null ? String(raw.user_id) : undefined,
|
|
226
|
+
groupId: raw.group_id != null ? String(raw.group_id) : undefined,
|
|
227
|
+
data: {
|
|
228
|
+
operatorId: raw.operator_id != null ? String(raw.operator_id) : undefined,
|
|
229
|
+
messageId: raw.message_id != null ? String(raw.message_id) : undefined,
|
|
230
|
+
},
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
// 其他未处理的通知类型
|
|
234
|
+
return {
|
|
235
|
+
selfId,
|
|
236
|
+
noticeType: noticeType || 'unknown',
|
|
237
|
+
subType: subType || undefined,
|
|
238
|
+
userId: raw.user_id != null ? String(raw.user_id) : undefined,
|
|
239
|
+
groupId: raw.group_id != null ? String(raw.group_id) : undefined,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
parseRequestEvent(raw, fallbackSelfId) {
|
|
243
|
+
const selfId = raw.self_id != null ? String(raw.self_id) : fallbackSelfId;
|
|
244
|
+
const requestType = (raw.request_type ?? '');
|
|
245
|
+
const userId = raw.user_id != null ? String(raw.user_id) : '';
|
|
246
|
+
const flag = raw.flag != null ? String(raw.flag) : '';
|
|
247
|
+
const comment = raw.comment != null ? String(raw.comment) : undefined;
|
|
248
|
+
if (!userId || !flag)
|
|
249
|
+
return null;
|
|
250
|
+
if (requestType === 'friend') {
|
|
251
|
+
return { selfId, requestType: 'friend', userId, flag, comment };
|
|
252
|
+
}
|
|
253
|
+
if (requestType === 'group') {
|
|
254
|
+
const subType = raw.sub_type === 'add' || raw.sub_type === 'invite' ? raw.sub_type : undefined;
|
|
255
|
+
const groupId = raw.group_id != null ? String(raw.group_id) : undefined;
|
|
256
|
+
if (!subType || !groupId)
|
|
257
|
+
return null;
|
|
258
|
+
return { selfId, requestType: 'group', subType, userId, groupId, flag, comment };
|
|
259
|
+
}
|
|
260
|
+
return null;
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
//# sourceMappingURL=v11.js.map
|
package/dist/v11.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"v11.js","sourceRoot":"","sources":["../src/v11.ts"],"names":[],"mappings":"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"}
|