node-karin 0.6.18 → 0.6.19
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/lib/adapter/index.d.ts +1 -1
- package/lib/adapter/index.js +1 -1
- package/lib/adapter/input/index.d.ts +16 -3
- package/lib/adapter/input/index.js +52 -38
- package/lib/adapter/kritor/grpc.d.ts +3 -2
- package/lib/adapter/kritor/grpc.js +80 -64
- package/lib/adapter/kritor/index.d.ts +35 -18
- package/lib/adapter/kritor/index.js +26 -10
- package/lib/adapter/onebot/11/convert.d.ts +11 -0
- package/lib/adapter/onebot/11/convert.js +168 -0
- package/lib/adapter/onebot/11/event.d.ts +25 -0
- package/lib/adapter/onebot/11/event.js +425 -0
- package/lib/adapter/onebot/11/index.d.ts +506 -0
- package/lib/adapter/onebot/11/index.js +1047 -0
- package/lib/cli/init.js +5 -0
- package/lib/core/karin.d.ts +3 -4
- package/lib/core/karin.js +3 -2
- package/lib/core/listener.d.ts +2 -2
- package/lib/core/listener.js +2 -2
- package/lib/core/plugin.app.js +2 -1
- package/lib/core/plugin.d.ts +4 -4
- package/lib/core/plugin.js +2 -1
- package/lib/core/plugin.loader.d.ts +3 -3
- package/lib/core/plugin.loader.js +2 -1
- package/lib/core/server.js +3 -3
- package/lib/event/event.handler.d.ts +5 -5
- package/lib/event/event.handler.js +6 -5
- package/lib/event/index.d.ts +0 -4
- package/lib/event/index.js +0 -4
- package/lib/event/message.handler.d.ts +3 -3
- package/lib/event/notice.handler.d.ts +3 -3
- package/lib/event/notice.handler.js +17 -16
- package/lib/event/request.handler.d.ts +3 -3
- package/lib/event/request.handler.js +4 -3
- package/lib/event/review.handler.d.ts +7 -8
- package/lib/index.js +1 -1
- package/lib/types/adapter/adapter.d.ts +564 -0
- package/lib/types/adapter/adapter.js +1 -0
- package/lib/types/{api.d.ts → adapter/api.d.ts} +103 -3
- package/lib/types/adapter/api.js +1 -0
- package/lib/types/element.d.ts +5 -4
- package/lib/types/event/contact.d.ts +28 -0
- package/lib/types/event/contact.js +13 -0
- package/lib/types/event/event.d.ts +390 -0
- package/lib/types/event/event.js +234 -0
- package/lib/types/event/index.d.ts +12 -0
- package/lib/types/event/index.js +7 -0
- package/lib/types/event/message.d.ts +104 -0
- package/lib/types/event/message.js +72 -0
- package/lib/types/event/notice.d.ts +513 -0
- package/lib/types/event/notice.js +52 -0
- package/lib/types/{reply.d.ts → event/reply.d.ts} +2 -2
- package/lib/types/event/reply.js +1 -0
- package/lib/types/event/request.d.ts +126 -0
- package/lib/types/event/request.js +52 -0
- package/lib/types/event/sender.d.ts +44 -0
- package/lib/types/event/sender.js +22 -0
- package/lib/types/index.d.ts +6 -5
- package/lib/types/index.js +6 -5
- package/lib/types/onebot11/api.d.ts +53 -0
- package/lib/types/onebot11/api.js +54 -0
- package/lib/types/onebot11/event.d.ts +619 -0
- package/lib/types/onebot11/event.js +56 -0
- package/lib/types/onebot11/index.d.ts +6 -0
- package/lib/types/onebot11/index.js +6 -0
- package/lib/types/onebot11/params.d.ts +609 -0
- package/lib/types/onebot11/params.js +7 -0
- package/lib/types/onebot11/response.d.ts +516 -0
- package/lib/types/onebot11/response.js +1 -0
- package/lib/types/onebot11/segment.d.ts +268 -0
- package/lib/types/onebot11/segment.js +30 -0
- package/lib/types/onebot11/sender.d.ts +59 -0
- package/lib/types/onebot11/sender.js +1 -0
- package/lib/types/plugin.d.ts +10 -11
- package/lib/utils/button.d.ts +2 -2
- package/lib/utils/common.d.ts +2 -2
- package/lib/utils/config.js +3 -3
- package/lib/utils/handler.d.ts +2 -2
- package/lib/utils/handler.js +1 -1
- package/lib/utils/init.d.ts +1 -1
- package/lib/utils/init.js +2 -1
- package/lib/utils/segment.d.ts +2 -2
- package/package.json +1 -1
- package/lib/adapter/onebot/onebot11.d.ts +0 -309
- package/lib/adapter/onebot/onebot11.js +0 -1285
- package/lib/event/event.d.ts +0 -140
- package/lib/event/event.js +0 -125
- package/lib/event/message.d.ts +0 -105
- package/lib/event/message.js +0 -70
- package/lib/event/notice.d.ts +0 -49
- package/lib/event/notice.js +0 -15
- package/lib/event/request.d.ts +0 -49
- package/lib/event/request.js +0 -15
- package/lib/types/adapter.d.ts +0 -581
- package/lib/types/adapter.js +0 -1
- package/lib/types/api.js +0 -1
- package/lib/types/event.d.ts +0 -789
- package/lib/types/event.js +0 -1
- package/lib/types/onebots11.d.ts +0 -1426
- package/lib/types/onebots11.js +0 -1
- package/lib/types/reply.js +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { kritor } from 'kritor-proto';
|
|
2
|
-
import { logger, config, segment } from '../../utils/index.js';
|
|
3
2
|
import { listener } from '../../core/index.js';
|
|
3
|
+
import { logger, config, segment } from '../../utils/index.js';
|
|
4
4
|
/**
|
|
5
5
|
* @extends KarinAdapter
|
|
6
6
|
*/
|
|
@@ -391,7 +391,15 @@ export default class AdapterKritor {
|
|
|
391
391
|
const command = `${service}.${cmd}`;
|
|
392
392
|
const res = await this.SendApi(command, data);
|
|
393
393
|
const response = kritor[type][`${cmd}Response`].decode(res.buf);
|
|
394
|
-
|
|
394
|
+
const message = response.message;
|
|
395
|
+
return {
|
|
396
|
+
time: Number(message.time),
|
|
397
|
+
message_id: String(message.message_id),
|
|
398
|
+
message_seq: Number(message.message_seq),
|
|
399
|
+
contact: message.contact,
|
|
400
|
+
sender: message.sender,
|
|
401
|
+
elements: this.AdapterConvertKarin(message.elements),
|
|
402
|
+
};
|
|
395
403
|
}
|
|
396
404
|
/**
|
|
397
405
|
* 通过seq获取消息
|
|
@@ -455,8 +463,8 @@ export default class AdapterKritor {
|
|
|
455
463
|
const data = kritor[type][`${cmd}Request`].encode(buf).finish();
|
|
456
464
|
const command = `${service}.${cmd}`;
|
|
457
465
|
const res = await this.SendApi(command, data);
|
|
458
|
-
|
|
459
|
-
return
|
|
466
|
+
kritor[type][`${cmd}Response`].decode(res.buf);
|
|
467
|
+
return true;
|
|
460
468
|
}
|
|
461
469
|
/**
|
|
462
470
|
* 上传合并转发消息
|
|
@@ -585,7 +593,8 @@ export default class AdapterKritor {
|
|
|
585
593
|
* @param headers - 请求头
|
|
586
594
|
* @returns - 下载文件的响应
|
|
587
595
|
*/
|
|
588
|
-
async DownloadFile(
|
|
596
|
+
async DownloadFile(options) {
|
|
597
|
+
const { file, file_type, root_path = '', file_name = '', thread_cnt = 1, headers = '' } = options;
|
|
589
598
|
const service = 'CoreService';
|
|
590
599
|
const cmd = 'DownloadFile';
|
|
591
600
|
const type = 'core';
|
|
@@ -767,16 +776,16 @@ export default class AdapterKritor {
|
|
|
767
776
|
* 戳一戳用户头像
|
|
768
777
|
* @param options - 戳一戳选项
|
|
769
778
|
*/
|
|
770
|
-
async PokeMember(
|
|
779
|
+
async PokeMember(group_id, target_uid_or_uin) {
|
|
771
780
|
const service = 'GroupService';
|
|
772
781
|
const cmd = 'PokeMember';
|
|
773
782
|
const type = 'group';
|
|
774
783
|
let buf = {};
|
|
775
|
-
if (Number(
|
|
776
|
-
buf = { group_id
|
|
784
|
+
if (Number(target_uid_or_uin)) {
|
|
785
|
+
buf = { group_id, target_uin: Number(target_uid_or_uin) };
|
|
777
786
|
}
|
|
778
787
|
else {
|
|
779
|
-
buf = { group_id
|
|
788
|
+
buf = { group_id, target_uid: target_uid_or_uin };
|
|
780
789
|
}
|
|
781
790
|
const command = `${service}.${cmd}`;
|
|
782
791
|
const data = kritor[type][`${cmd}Request`].encode(buf).finish();
|
|
@@ -1123,6 +1132,13 @@ export default class AdapterKritor {
|
|
|
1123
1132
|
const response = kritor[type][`${cmd}Response`].decode(res.buf);
|
|
1124
1133
|
return response;
|
|
1125
1134
|
}
|
|
1135
|
+
CreateFolder() { throw new Error('Method not implemented.'); }
|
|
1136
|
+
RenameFolder() { throw new Error('Method not implemented.'); }
|
|
1137
|
+
DeleteFolder() { throw new Error('Method not implemented.'); }
|
|
1138
|
+
UploadFile() { throw new Error('Method not implemented.'); }
|
|
1139
|
+
DeleteFile() { throw new Error('Method not implemented.'); }
|
|
1140
|
+
GetFileSystemInfo() { throw new Error('Method not implemented.'); }
|
|
1141
|
+
GetFileList() { throw new Error('Method not implemented.'); }
|
|
1126
1142
|
async SendMessageByResId(contact, id) {
|
|
1127
1143
|
if (contact)
|
|
1128
1144
|
throw new Error('不支持的操作');
|
|
@@ -1163,7 +1179,7 @@ export default class AdapterKritor {
|
|
|
1163
1179
|
}, time * 1000);
|
|
1164
1180
|
this.grpc.write(params);
|
|
1165
1181
|
this.grpc.once(seq + '', data => {
|
|
1166
|
-
/**
|
|
1182
|
+
/** 停止计时器 */
|
|
1167
1183
|
clearTimeout(timeoutId);
|
|
1168
1184
|
data.code === 'SUCCESS' ? resolve(data) : resolve(data);
|
|
1169
1185
|
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { KarinElement, OB11Segment } from '../../../types/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* onebot11转karin
|
|
4
|
+
* @return karin格式消息
|
|
5
|
+
*/
|
|
6
|
+
export declare function AdapterConvertKarin(data: Array<OB11Segment>): Array<KarinElement>;
|
|
7
|
+
/**
|
|
8
|
+
* karin转onebot11
|
|
9
|
+
* @param data karin格式消息
|
|
10
|
+
*/
|
|
11
|
+
export declare function KarinConvertAdapter(data: Array<KarinElement>): Array<OB11Segment>;
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
import { segment } from '../../../utils/index.js';
|
|
2
|
+
import { OB11SegmentType } from '../../../types/index.js';
|
|
3
|
+
/**
|
|
4
|
+
* onebot11转karin
|
|
5
|
+
* @return karin格式消息
|
|
6
|
+
*/
|
|
7
|
+
export function AdapterConvertKarin(data) {
|
|
8
|
+
const elements = [];
|
|
9
|
+
for (const i of data) {
|
|
10
|
+
switch (i.type) {
|
|
11
|
+
case 'text':
|
|
12
|
+
elements.push(segment.text(i.data.text));
|
|
13
|
+
break;
|
|
14
|
+
case 'face':
|
|
15
|
+
elements.push(segment.face(Number(i.data.id)));
|
|
16
|
+
break;
|
|
17
|
+
case 'image':
|
|
18
|
+
elements.push(segment.image(i.data.url || i.data.file, { file_type: i.data.type }));
|
|
19
|
+
break;
|
|
20
|
+
case 'record':
|
|
21
|
+
elements.push(segment.voice(i.data.url || i.data.file, i.data.magic === 1));
|
|
22
|
+
break;
|
|
23
|
+
case 'video':
|
|
24
|
+
elements.push(segment.video(i.data.url || i.data.file));
|
|
25
|
+
break;
|
|
26
|
+
case 'at':
|
|
27
|
+
elements.push(segment.at(i.data.qq, i.data.qq));
|
|
28
|
+
break;
|
|
29
|
+
case 'poke':
|
|
30
|
+
elements.push(segment.poke(Number(i.data.id), Number(i.data.type)));
|
|
31
|
+
break;
|
|
32
|
+
case 'contact':
|
|
33
|
+
elements.push(segment.contact(i.data.type === 'qq' ? 'friend' : 'group', i.data.id));
|
|
34
|
+
break;
|
|
35
|
+
case 'location':
|
|
36
|
+
elements.push(segment.location(Number(i.data.lat), Number(i.data.lon), i.data.title || '', i.data.content || ''));
|
|
37
|
+
break;
|
|
38
|
+
case 'reply':
|
|
39
|
+
elements.push(segment.reply(i.data.id));
|
|
40
|
+
break;
|
|
41
|
+
case 'forward':
|
|
42
|
+
elements.push(segment.forward(i.data.id));
|
|
43
|
+
break;
|
|
44
|
+
case 'json':
|
|
45
|
+
elements.push(segment.json(i.data.data));
|
|
46
|
+
break;
|
|
47
|
+
case 'xml':
|
|
48
|
+
elements.push(segment.xml(i.data.data));
|
|
49
|
+
break;
|
|
50
|
+
default: {
|
|
51
|
+
elements.push(segment.text(JSON.stringify(i)));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return elements;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* karin转onebot11
|
|
59
|
+
* @param data karin格式消息
|
|
60
|
+
*/
|
|
61
|
+
export function KarinConvertAdapter(data) {
|
|
62
|
+
const elements = [];
|
|
63
|
+
for (const i of data) {
|
|
64
|
+
const type = i.type;
|
|
65
|
+
switch (i.type) {
|
|
66
|
+
case OB11SegmentType.Text:
|
|
67
|
+
elements.push({ type, data: { text: i.text } });
|
|
68
|
+
break;
|
|
69
|
+
case OB11SegmentType.Face:
|
|
70
|
+
elements.push({ type, data: { id: i.id } });
|
|
71
|
+
break;
|
|
72
|
+
case OB11SegmentType.At:
|
|
73
|
+
elements.push({ type, data: { qq: String(i.uid || i.uin) } });
|
|
74
|
+
break;
|
|
75
|
+
case OB11SegmentType.Reply:
|
|
76
|
+
elements.push({ type, data: { id: i.message_id } });
|
|
77
|
+
break;
|
|
78
|
+
case OB11SegmentType.Image:
|
|
79
|
+
case OB11SegmentType.Video:
|
|
80
|
+
case OB11SegmentType.File: {
|
|
81
|
+
elements.push({ type, data: { file: i.file } });
|
|
82
|
+
break;
|
|
83
|
+
}
|
|
84
|
+
case OB11SegmentType.Xml: {
|
|
85
|
+
elements.push({ type, data: { data: i.data } });
|
|
86
|
+
break;
|
|
87
|
+
}
|
|
88
|
+
case OB11SegmentType.Json: {
|
|
89
|
+
elements.push({ type, data: { data: i.data } });
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
case OB11SegmentType.Forward: {
|
|
93
|
+
elements.push({ type, data: { id: i.res_id } });
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
case OB11SegmentType.Record: {
|
|
97
|
+
elements.push({ type: OB11SegmentType.Record, data: { file: i.file, magic: i.magic || false } });
|
|
98
|
+
break;
|
|
99
|
+
}
|
|
100
|
+
case OB11SegmentType.Music: {
|
|
101
|
+
if (i.id) {
|
|
102
|
+
elements.push({ type: 'music', data: { type: i.platform, id: i.id } });
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
const { url, audio, title, author, pic } = i;
|
|
106
|
+
elements.push({ type: 'music', data: { type: 'custom', url, audio, title, content: author, image: pic } });
|
|
107
|
+
}
|
|
108
|
+
break;
|
|
109
|
+
}
|
|
110
|
+
case 'button': {
|
|
111
|
+
elements.push({ type: 'button', data: i.data });
|
|
112
|
+
break;
|
|
113
|
+
}
|
|
114
|
+
case 'markdown': {
|
|
115
|
+
const { type, ...data } = i;
|
|
116
|
+
elements.push({ type, data: { ...data } });
|
|
117
|
+
break;
|
|
118
|
+
}
|
|
119
|
+
case 'rows': {
|
|
120
|
+
for (const val of i.rows) {
|
|
121
|
+
elements.push({ type: 'button', data: val.data });
|
|
122
|
+
}
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
case OB11SegmentType.Poke: {
|
|
126
|
+
elements.push({ type, data: { type: i.poke_type, id: i.id } });
|
|
127
|
+
break;
|
|
128
|
+
}
|
|
129
|
+
case 'bubble_face': {
|
|
130
|
+
elements.push({ type: 'bubble_face', data: { id: i.id, count: i.count } });
|
|
131
|
+
break;
|
|
132
|
+
}
|
|
133
|
+
case OB11SegmentType.Contact: {
|
|
134
|
+
elements.push({ type, data: { type: i.scene, id: i.peer } });
|
|
135
|
+
break;
|
|
136
|
+
}
|
|
137
|
+
case OB11SegmentType.Location: {
|
|
138
|
+
elements.push({ type, data: { lat: i.lat, lon: i.lon, title: i.title, content: i.address } });
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
case 'long_msg':
|
|
142
|
+
case 'basketball':
|
|
143
|
+
case 'dice':
|
|
144
|
+
case 'market_face':
|
|
145
|
+
case 'rps': {
|
|
146
|
+
elements.push({ type: i.type, data: { id: i.id } });
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
case 'gift': {
|
|
150
|
+
elements.push({ type: 'gift', data: { qq: i.qq, id: i.id } });
|
|
151
|
+
break;
|
|
152
|
+
}
|
|
153
|
+
case 'share': {
|
|
154
|
+
elements.push({ type: 'share', data: { url: i.url, title: i.title, content: i.content, image: i.image } });
|
|
155
|
+
break;
|
|
156
|
+
}
|
|
157
|
+
case 'weather': {
|
|
158
|
+
elements.push({ type: 'weather', data: { city: i.city, type: i.type } });
|
|
159
|
+
break;
|
|
160
|
+
}
|
|
161
|
+
default: {
|
|
162
|
+
elements.push(i);
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
return elements;
|
|
168
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { AdapterOneBot11 } from './index.js';
|
|
2
|
+
import { OB11EventAll, OB11MessageEvent, OB11MetaEvent, OB11NoticeEvent, OB11RequestEvent } from '../../../types/index.js';
|
|
3
|
+
export declare class OB11Event {
|
|
4
|
+
adapter: AdapterOneBot11;
|
|
5
|
+
constructor(adapter: AdapterOneBot11);
|
|
6
|
+
/**
|
|
7
|
+
* 处理事件
|
|
8
|
+
* - @param data ob11相关标准数据
|
|
9
|
+
*/
|
|
10
|
+
event(data: OB11EventAll): void;
|
|
11
|
+
/**
|
|
12
|
+
* 元事件
|
|
13
|
+
*/
|
|
14
|
+
metaEvent(data: OB11MetaEvent): void;
|
|
15
|
+
/**
|
|
16
|
+
* 消息事件
|
|
17
|
+
*/
|
|
18
|
+
messageEvent(data: OB11MessageEvent): void;
|
|
19
|
+
/**
|
|
20
|
+
* 通知事件
|
|
21
|
+
*/
|
|
22
|
+
noticeEvent(data: OB11NoticeEvent): void;
|
|
23
|
+
/** 请求事件 */
|
|
24
|
+
requestEvent(data: OB11RequestEvent): void;
|
|
25
|
+
}
|