@zhin.js/adapter-onebot11 1.0.2 → 1.0.3
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 +9 -0
- package/lib/index.d.ts +5 -3
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +27 -8
- package/lib/index.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +133 -115
package/CHANGELOG.md
CHANGED
package/lib/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EventEmitter } from "events";
|
|
2
2
|
import { Bot, Plugin, Adapter, BotConfig, Message, SendOptions } from 'zhin.js';
|
|
3
3
|
import type { Router } from '@zhin.js/http';
|
|
4
|
-
declare module 'zhin.js' {
|
|
4
|
+
declare module '@zhin.js/types' {
|
|
5
5
|
interface RegisteredAdapters {
|
|
6
6
|
'onebot11': Adapter<OneBot11WsClient>;
|
|
7
7
|
'onebot11.wss': Adapter<OneBot11WsServer>;
|
|
@@ -56,7 +56,8 @@ export declare class OneBot11WsClient extends EventEmitter implements Bot<OneBot
|
|
|
56
56
|
$connect(): Promise<void>;
|
|
57
57
|
$disconnect(): Promise<void>;
|
|
58
58
|
$formatMessage(onebotMsg: OneBot11Message): Message<OneBot11Message>;
|
|
59
|
-
$sendMessage(options: SendOptions): Promise<
|
|
59
|
+
$sendMessage(options: SendOptions): Promise<string>;
|
|
60
|
+
$recallMessage(id: string): Promise<void>;
|
|
60
61
|
private callApi;
|
|
61
62
|
private handleWebSocketMessage;
|
|
62
63
|
private handleOneBot11Message;
|
|
@@ -76,7 +77,8 @@ export declare class OneBot11WsServer extends EventEmitter implements Bot<OneBot
|
|
|
76
77
|
$connect(): Promise<void>;
|
|
77
78
|
$disconnect(): Promise<void>;
|
|
78
79
|
$formatMessage(onebotMsg: OneBot11Message): Message<OneBot11Message>;
|
|
79
|
-
$sendMessage(options: SendOptions): Promise<
|
|
80
|
+
$sendMessage(options: SendOptions): Promise<string>;
|
|
81
|
+
$recallMessage(id: string): Promise<void>;
|
|
80
82
|
private callApi;
|
|
81
83
|
private handleWebSocketMessage;
|
|
82
84
|
private handleMetaEvent;
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/lib/index.js
CHANGED
|
@@ -93,7 +93,7 @@ export class OneBot11WsClient extends EventEmitter {
|
|
|
93
93
|
$reply: async (content, quote) => {
|
|
94
94
|
if (quote)
|
|
95
95
|
content.unshift({ type: 'reply', data: { message_id: message.$id } });
|
|
96
|
-
this
|
|
96
|
+
return await this.$sendMessage({
|
|
97
97
|
...message.$channel,
|
|
98
98
|
context: 'onebot11',
|
|
99
99
|
bot: `${this.$config.name}`,
|
|
@@ -109,22 +109,30 @@ export class OneBot11WsClient extends EventEmitter {
|
|
|
109
109
|
message: options.content
|
|
110
110
|
};
|
|
111
111
|
if (options.type === 'group') {
|
|
112
|
-
await this.callApi('send_group_msg', {
|
|
112
|
+
const result = await this.callApi('send_group_msg', {
|
|
113
113
|
group_id: parseInt(options.id),
|
|
114
114
|
...messageData
|
|
115
115
|
});
|
|
116
116
|
this.plugin.logger.info(`send ${options.type}(${options.id}):${segment.raw(options.content)}`);
|
|
117
|
+
return result.message_id.toString();
|
|
117
118
|
}
|
|
118
119
|
else if (options.type === 'private') {
|
|
119
|
-
await this.callApi('send_private_msg', {
|
|
120
|
+
const result = await this.callApi('send_private_msg', {
|
|
120
121
|
user_id: parseInt(options.id),
|
|
121
122
|
...messageData
|
|
122
123
|
});
|
|
123
124
|
this.plugin.logger.info(`send ${options.type}(${options.id}):${segment.raw(options.content)}`);
|
|
125
|
+
return result.message_id.toString();
|
|
124
126
|
}
|
|
125
127
|
else {
|
|
126
128
|
throw new Error('Either group_id or user_id must be provided');
|
|
127
129
|
}
|
|
130
|
+
return '';
|
|
131
|
+
}
|
|
132
|
+
async $recallMessage(id) {
|
|
133
|
+
await this.callApi('delete_msg', {
|
|
134
|
+
message_id: parseInt(id)
|
|
135
|
+
});
|
|
128
136
|
}
|
|
129
137
|
async callApi(action, params = {}) {
|
|
130
138
|
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
|
|
@@ -216,7 +224,8 @@ export class OneBot11WsServer extends EventEmitter {
|
|
|
216
224
|
async $connect() {
|
|
217
225
|
if (!this.$config.access_token)
|
|
218
226
|
this.plugin.logger.warn(`missing 'access_token', your OneBot protocol is not safely`);
|
|
219
|
-
this.#wss = this.router.ws(this.$config.path, {
|
|
227
|
+
this.#wss = this.router.ws(this.$config.path, {
|
|
228
|
+
verifyClient: (info) => {
|
|
220
229
|
const { req: { headers }, } = info;
|
|
221
230
|
const authorization = headers['authorization'] || '';
|
|
222
231
|
if (this.$config.access_token && authorization !== `Bearer ${this.$config.access_token}`) {
|
|
@@ -224,7 +233,8 @@ export class OneBot11WsServer extends EventEmitter {
|
|
|
224
233
|
return false;
|
|
225
234
|
}
|
|
226
235
|
return true;
|
|
227
|
-
}
|
|
236
|
+
}
|
|
237
|
+
});
|
|
228
238
|
this.$connected = true;
|
|
229
239
|
this.plugin.logger.info(`ws server start at path:${this.$config.path}`);
|
|
230
240
|
this.#wss.on('connection', (client, req) => {
|
|
@@ -279,7 +289,7 @@ export class OneBot11WsServer extends EventEmitter {
|
|
|
279
289
|
content = [content];
|
|
280
290
|
if (quote)
|
|
281
291
|
content.unshift({ type: 'reply', data: { message_id: message.$id } });
|
|
282
|
-
this
|
|
292
|
+
return await this.$sendMessage({
|
|
283
293
|
...message.$channel,
|
|
284
294
|
context: 'onebot11',
|
|
285
295
|
bot: `${this.$config.name}`,
|
|
@@ -296,23 +306,32 @@ export class OneBot11WsServer extends EventEmitter {
|
|
|
296
306
|
};
|
|
297
307
|
if (options.type === 'group') {
|
|
298
308
|
const [self_id, id] = options.id.split(':');
|
|
299
|
-
await this.callApi(self_id, 'send_group_msg', {
|
|
309
|
+
const result = await this.callApi(self_id, 'send_group_msg', {
|
|
300
310
|
group_id: parseInt(id),
|
|
301
311
|
...messageData
|
|
302
312
|
});
|
|
303
313
|
this.plugin.logger.info(`send ${options.type}(${id}):${segment.raw(options.content)}`);
|
|
314
|
+
return result.message_id.toString();
|
|
304
315
|
}
|
|
305
316
|
else if (options.type === 'private') {
|
|
306
317
|
const [self_id, id] = options.id.split(':');
|
|
307
|
-
await this.callApi(self_id, 'send_private_msg', {
|
|
318
|
+
const result = await this.callApi(self_id, 'send_private_msg', {
|
|
308
319
|
user_id: parseInt(id),
|
|
309
320
|
...messageData
|
|
310
321
|
});
|
|
311
322
|
this.plugin.logger.info(`send ${options.type}(${id}):${segment.raw(options.content)}`);
|
|
323
|
+
return result.message_id.toString();
|
|
312
324
|
}
|
|
313
325
|
else {
|
|
314
326
|
throw new Error('Either group_id or user_id must be provided');
|
|
315
327
|
}
|
|
328
|
+
return '';
|
|
329
|
+
}
|
|
330
|
+
async $recallMessage(id) {
|
|
331
|
+
const [self_id, message_id] = id.split(':');
|
|
332
|
+
await this.callApi(self_id, 'delete_msg', {
|
|
333
|
+
message_id: parseInt(message_id)
|
|
334
|
+
});
|
|
316
335
|
}
|
|
317
336
|
async callApi(self_id, action, params = {}) {
|
|
318
337
|
const client = this.#clientMap.get(self_id);
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhin.js/adapter-onebot11",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "zhin adapter for onebot11",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"typescript": "^5.3.0"
|
|
21
21
|
},
|
|
22
22
|
"peerDependencies": {
|
|
23
|
-
"zhin.js": "1.0.
|
|
24
|
-
"@zhin.js/types": "1.0.
|
|
23
|
+
"zhin.js": "1.0.3",
|
|
24
|
+
"@zhin.js/types": "1.0.2",
|
|
25
25
|
"@zhin.js/http": "1.0.1"
|
|
26
26
|
},
|
|
27
27
|
"peerDependenciesMeta": {
|
package/src/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import WebSocket, {WebSocketServer} from 'ws';
|
|
2
|
-
import {EventEmitter} from "events";
|
|
1
|
+
import WebSocket, { WebSocketServer } from 'ws';
|
|
2
|
+
import { EventEmitter } from "events";
|
|
3
3
|
import {
|
|
4
4
|
Bot,
|
|
5
5
|
Plugin,
|
|
@@ -7,20 +7,19 @@ import {
|
|
|
7
7
|
BotConfig,
|
|
8
8
|
Message,
|
|
9
9
|
registerAdapter,
|
|
10
|
-
User,
|
|
11
|
-
Group,
|
|
12
10
|
MessageSegment,
|
|
13
11
|
SendOptions,
|
|
14
|
-
|
|
12
|
+
segment, useContext, SendContent
|
|
15
13
|
} from 'zhin.js';
|
|
16
|
-
import type {Router} from '@zhin.js/http'
|
|
17
|
-
import {IncomingMessage} from "http";
|
|
18
|
-
import {clearInterval} from "node:timers";
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
'onebot11
|
|
14
|
+
import type { Router } from '@zhin.js/http'
|
|
15
|
+
import { IncomingMessage } from "http";
|
|
16
|
+
import { clearInterval } from "node:timers";
|
|
17
|
+
|
|
18
|
+
// 声明模块,注册 onebot11 适配器类型
|
|
19
|
+
declare module '@zhin.js/types' {
|
|
20
|
+
interface RegisteredAdapters {
|
|
21
|
+
'onebot11': Adapter<OneBot11WsClient>
|
|
22
|
+
'onebot11.wss': Adapter<OneBot11WsServer>
|
|
24
23
|
}
|
|
25
24
|
}
|
|
26
25
|
// ============================================================================
|
|
@@ -29,29 +28,29 @@ declare module 'zhin.js'{
|
|
|
29
28
|
|
|
30
29
|
export interface OneBot11Config extends BotConfig {
|
|
31
30
|
context: 'onebot11';
|
|
32
|
-
type:string
|
|
31
|
+
type: string
|
|
33
32
|
access_token?: string;
|
|
34
33
|
}
|
|
35
|
-
export interface OneBot11WsClientConfig extends OneBot11Config{
|
|
36
|
-
type:'ws'
|
|
34
|
+
export interface OneBot11WsClientConfig extends OneBot11Config {
|
|
35
|
+
type: 'ws'
|
|
37
36
|
url: string;
|
|
38
37
|
reconnect_interval?: number;
|
|
39
38
|
heartbeat_interval?: number;
|
|
40
39
|
}
|
|
41
|
-
export interface OneBot11WsServerConfig extends OneBot11Config{
|
|
42
|
-
type:'ws_reverse'
|
|
43
|
-
path:string
|
|
40
|
+
export interface OneBot11WsServerConfig extends OneBot11Config {
|
|
41
|
+
type: 'ws_reverse'
|
|
42
|
+
path: string
|
|
44
43
|
heartbeat_interval?: number;
|
|
45
44
|
}
|
|
46
|
-
export interface OneBot11HTTPConfig extends OneBot11Config{
|
|
47
|
-
type:'http_sse'
|
|
48
|
-
port:number
|
|
49
|
-
path:string
|
|
45
|
+
export interface OneBot11HTTPConfig extends OneBot11Config {
|
|
46
|
+
type: 'http_sse'
|
|
47
|
+
port: number
|
|
48
|
+
path: string
|
|
50
49
|
}
|
|
51
50
|
|
|
52
51
|
interface OneBot11Message {
|
|
53
52
|
post_type: string;
|
|
54
|
-
self_id:string
|
|
53
|
+
self_id: string
|
|
55
54
|
message_type?: string;
|
|
56
55
|
sub_type?: string;
|
|
57
56
|
message_id: number;
|
|
@@ -76,8 +75,8 @@ interface ApiResponse<T = any> {
|
|
|
76
75
|
// OneBot11 适配器实现
|
|
77
76
|
// ============================================================================
|
|
78
77
|
|
|
79
|
-
export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Message,OneBot11WsClientConfig> {
|
|
80
|
-
$connected?:boolean
|
|
78
|
+
export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Message, OneBot11WsClientConfig> {
|
|
79
|
+
$connected?: boolean
|
|
81
80
|
private ws?: WebSocket;
|
|
82
81
|
private reconnectTimer?: NodeJS.Timeout;
|
|
83
82
|
private heartbeatTimer?: NodeJS.Timeout;
|
|
@@ -88,9 +87,9 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
|
|
|
88
87
|
timeout: NodeJS.Timeout;
|
|
89
88
|
}>();
|
|
90
89
|
|
|
91
|
-
constructor(public plugin:Plugin,public $config: OneBot11WsClientConfig) {
|
|
90
|
+
constructor(public plugin: Plugin, public $config: OneBot11WsClientConfig) {
|
|
92
91
|
super();
|
|
93
|
-
this.$connected=false
|
|
92
|
+
this.$connected = false
|
|
94
93
|
}
|
|
95
94
|
|
|
96
95
|
|
|
@@ -102,11 +101,11 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
|
|
|
102
101
|
if (this.$config.access_token) {
|
|
103
102
|
headers['Authorization'] = `Bearer ${this.$config.access_token}`;
|
|
104
103
|
}
|
|
105
|
-
this.ws = new WebSocket(wsUrl,{headers});
|
|
104
|
+
this.ws = new WebSocket(wsUrl, { headers });
|
|
106
105
|
|
|
107
106
|
this.ws.on('open', () => {
|
|
108
|
-
this.$connected=true;
|
|
109
|
-
if(!this.$config.access_token) this.plugin.logger.warn(`missing 'access_token', your OneBot protocol is not safely`)
|
|
107
|
+
this.$connected = true;
|
|
108
|
+
if (!this.$config.access_token) this.plugin.logger.warn(`missing 'access_token', your OneBot protocol is not safely`)
|
|
110
109
|
this.startHeartbeat();
|
|
111
110
|
resolve();
|
|
112
111
|
});
|
|
@@ -116,13 +115,13 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
|
|
|
116
115
|
const message = JSON.parse(data.toString());
|
|
117
116
|
this.handleWebSocketMessage(message);
|
|
118
117
|
} catch (error) {
|
|
119
|
-
this.emit('error',error)
|
|
118
|
+
this.emit('error', error)
|
|
120
119
|
}
|
|
121
120
|
});
|
|
122
121
|
|
|
123
|
-
this.ws.on('close', (code,reason) => {
|
|
124
|
-
this.$connected=false
|
|
125
|
-
reject({code,reason})
|
|
122
|
+
this.ws.on('close', (code, reason) => {
|
|
123
|
+
this.$connected = false
|
|
124
|
+
reject({ code, reason })
|
|
126
125
|
this.scheduleReconnect();
|
|
127
126
|
});
|
|
128
127
|
|
|
@@ -155,28 +154,28 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
|
|
|
155
154
|
this.ws = undefined;
|
|
156
155
|
}
|
|
157
156
|
}
|
|
158
|
-
$formatMessage(onebotMsg: OneBot11Message){
|
|
159
|
-
const message=Message.from(onebotMsg,{
|
|
157
|
+
$formatMessage(onebotMsg: OneBot11Message) {
|
|
158
|
+
const message = Message.from(onebotMsg, {
|
|
160
159
|
$id: onebotMsg.message_id.toString(),
|
|
161
|
-
$adapter:'onebot11',
|
|
162
|
-
$bot
|
|
163
|
-
$sender:{
|
|
164
|
-
id:onebotMsg.user_id.toString(),
|
|
165
|
-
name:onebotMsg.user_id.toString()
|
|
160
|
+
$adapter: 'onebot11',
|
|
161
|
+
$bot: `${this.$config.name}`,
|
|
162
|
+
$sender: {
|
|
163
|
+
id: onebotMsg.user_id.toString(),
|
|
164
|
+
name: onebotMsg.user_id.toString()
|
|
166
165
|
},
|
|
167
|
-
$channel:{
|
|
166
|
+
$channel: {
|
|
168
167
|
id: (onebotMsg.group_id || onebotMsg.user_id).toString(),
|
|
169
|
-
type:onebotMsg.group_id?'group':'private'
|
|
168
|
+
type: onebotMsg.group_id ? 'group' : 'private'
|
|
170
169
|
},
|
|
171
170
|
$content: onebotMsg.message,
|
|
172
171
|
$raw: onebotMsg.raw_message,
|
|
173
172
|
$timestamp: onebotMsg.time,
|
|
174
|
-
$reply:async (content: MessageSegment[], quote?: boolean|string):Promise<
|
|
175
|
-
if(quote) content.unshift({type:'reply',data:{message_id:message.$id}})
|
|
176
|
-
this
|
|
173
|
+
$reply: async (content: MessageSegment[], quote?: boolean | string): Promise<string> => {
|
|
174
|
+
if (quote) content.unshift({ type: 'reply', data: { message_id: message.$id } })
|
|
175
|
+
return await this.$sendMessage({
|
|
177
176
|
...message.$channel,
|
|
178
|
-
context:'onebot11',
|
|
179
|
-
bot
|
|
177
|
+
context: 'onebot11',
|
|
178
|
+
bot: `${this.$config.name}`,
|
|
180
179
|
content
|
|
181
180
|
})
|
|
182
181
|
}
|
|
@@ -184,26 +183,34 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
|
|
|
184
183
|
return message
|
|
185
184
|
}
|
|
186
185
|
|
|
187
|
-
async $sendMessage(options: SendOptions): Promise<
|
|
188
|
-
options=await this.plugin.app.handleBeforeSend(options)
|
|
186
|
+
async $sendMessage(options: SendOptions): Promise<string> {
|
|
187
|
+
options = await this.plugin.app.handleBeforeSend(options)
|
|
189
188
|
const messageData: any = {
|
|
190
189
|
message: options.content
|
|
191
190
|
};
|
|
192
|
-
if (options.type==='group') {
|
|
193
|
-
await this.callApi('send_group_msg', {
|
|
191
|
+
if (options.type === 'group') {
|
|
192
|
+
const result = await this.callApi('send_group_msg', {
|
|
194
193
|
group_id: parseInt(options.id),
|
|
195
194
|
...messageData
|
|
196
195
|
});
|
|
197
196
|
this.plugin.logger.info(`send ${options.type}(${options.id}):${segment.raw(options.content)}`)
|
|
198
|
-
|
|
199
|
-
|
|
197
|
+
return result.message_id.toString();
|
|
198
|
+
} else if (options.type === 'private') {
|
|
199
|
+
const result = await this.callApi('send_private_msg', {
|
|
200
200
|
user_id: parseInt(options.id),
|
|
201
201
|
...messageData
|
|
202
202
|
});
|
|
203
203
|
this.plugin.logger.info(`send ${options.type}(${options.id}):${segment.raw(options.content)}`)
|
|
204
|
+
return result.message_id.toString();
|
|
204
205
|
} else {
|
|
205
206
|
throw new Error('Either group_id or user_id must be provided');
|
|
206
207
|
}
|
|
208
|
+
return '';
|
|
209
|
+
}
|
|
210
|
+
async $recallMessage(id: string): Promise<void> {
|
|
211
|
+
await this.callApi('delete_msg', {
|
|
212
|
+
message_id: parseInt(id)
|
|
213
|
+
});
|
|
207
214
|
}
|
|
208
215
|
private async callApi(action: string, params: any = {}): Promise<any> {
|
|
209
216
|
if (!this.ws || this.ws.readyState !== WebSocket.OPEN) {
|
|
@@ -252,9 +259,9 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
|
|
|
252
259
|
|
|
253
260
|
private handleOneBot11Message(onebotMsg: OneBot11Message): void {
|
|
254
261
|
const message = this.$formatMessage(onebotMsg);
|
|
255
|
-
this.plugin.dispatch('message.receive',message)
|
|
262
|
+
this.plugin.dispatch('message.receive', message)
|
|
256
263
|
this.plugin.logger.info(`recv ${message.$channel.type}(${message.$channel.id}):${segment.raw(message.$content)}`)
|
|
257
|
-
this.plugin.dispatch(`message.${message.$channel.type}.receive`,message)
|
|
264
|
+
this.plugin.dispatch(`message.${message.$channel.type}.receive`, message)
|
|
258
265
|
}
|
|
259
266
|
|
|
260
267
|
private startHeartbeat(): void {
|
|
@@ -277,16 +284,16 @@ export class OneBot11WsClient extends EventEmitter implements Bot<OneBot11Messag
|
|
|
277
284
|
try {
|
|
278
285
|
await this.$connect();
|
|
279
286
|
} catch (error) {
|
|
280
|
-
this.emit('error',new Error(`Reconnection failed: ${error}`));
|
|
287
|
+
this.emit('error', new Error(`Reconnection failed: ${error}`));
|
|
281
288
|
this.scheduleReconnect();
|
|
282
289
|
}
|
|
283
290
|
}, interval);
|
|
284
291
|
}
|
|
285
292
|
}
|
|
286
|
-
export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Message,OneBot11WsServerConfig> {
|
|
287
|
-
$connected?:boolean
|
|
288
|
-
#wss?:WebSocketServer
|
|
289
|
-
#clientMap:Map<string,WebSocket
|
|
293
|
+
export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Message, OneBot11WsServerConfig> {
|
|
294
|
+
$connected?: boolean
|
|
295
|
+
#wss?: WebSocketServer
|
|
296
|
+
#clientMap: Map<string, WebSocket> = new Map<string, WebSocket>()
|
|
290
297
|
private heartbeatTimer?: NodeJS.Timeout;
|
|
291
298
|
private requestId = 0;
|
|
292
299
|
private pendingRequests = new Map<string, {
|
|
@@ -295,13 +302,14 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
|
|
|
295
302
|
timeout: NodeJS.Timeout;
|
|
296
303
|
}>();
|
|
297
304
|
|
|
298
|
-
constructor(public plugin:Plugin,public router:Router,public $config: OneBot11WsServerConfig) {
|
|
305
|
+
constructor(public plugin: Plugin, public router: Router, public $config: OneBot11WsServerConfig) {
|
|
299
306
|
super();
|
|
300
|
-
this.$connected=false
|
|
307
|
+
this.$connected = false
|
|
301
308
|
}
|
|
302
309
|
async $connect(): Promise<void> {
|
|
303
|
-
if(!this.$config.access_token) this.plugin.logger.warn(`missing 'access_token', your OneBot protocol is not safely`)
|
|
304
|
-
this.#wss=this.router.ws(this.$config.path,
|
|
310
|
+
if (!this.$config.access_token) this.plugin.logger.warn(`missing 'access_token', your OneBot protocol is not safely`)
|
|
311
|
+
this.#wss = this.router.ws(this.$config.path, {
|
|
312
|
+
verifyClient: (info: { origin: string; secure: boolean; req: IncomingMessage }) => {
|
|
305
313
|
const {
|
|
306
314
|
req: { headers },
|
|
307
315
|
} = info;
|
|
@@ -311,10 +319,11 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
|
|
|
311
319
|
return false;
|
|
312
320
|
}
|
|
313
321
|
return true;
|
|
314
|
-
}
|
|
315
|
-
|
|
322
|
+
}
|
|
323
|
+
})
|
|
324
|
+
this.$connected = true;
|
|
316
325
|
this.plugin.logger.info(`ws server start at path:${this.$config.path}`)
|
|
317
|
-
this.#wss.on('connection', (client,req) => {
|
|
326
|
+
this.#wss.on('connection', (client, req) => {
|
|
318
327
|
this.startHeartbeat();
|
|
319
328
|
this.plugin.logger.info(`已连接到协议端:${req.socket.remoteAddress}`);
|
|
320
329
|
client.on('error', err => {
|
|
@@ -322,16 +331,16 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
|
|
|
322
331
|
});
|
|
323
332
|
client.on('close', code => {
|
|
324
333
|
this.plugin.logger.error(`与连接端(${req.socket.remoteAddress})断开,错误码:${code}`);
|
|
325
|
-
for(const [key,value] of this.#clientMap){
|
|
326
|
-
if(client===value) this.#clientMap.delete(key)
|
|
334
|
+
for (const [key, value] of this.#clientMap) {
|
|
335
|
+
if (client === value) this.#clientMap.delete(key)
|
|
327
336
|
}
|
|
328
337
|
});
|
|
329
|
-
client.on('message',(data) => {
|
|
338
|
+
client.on('message', (data) => {
|
|
330
339
|
try {
|
|
331
340
|
const message = JSON.parse(data.toString());
|
|
332
|
-
this.handleWebSocketMessage(client,message);
|
|
341
|
+
this.handleWebSocketMessage(client, message);
|
|
333
342
|
} catch (error) {
|
|
334
|
-
this.emit('error',error)
|
|
343
|
+
this.emit('error', error)
|
|
335
344
|
}
|
|
336
345
|
})
|
|
337
346
|
});
|
|
@@ -339,66 +348,75 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
|
|
|
339
348
|
|
|
340
349
|
async $disconnect(): Promise<void> {
|
|
341
350
|
this.#wss?.close();
|
|
342
|
-
if(this.heartbeatTimer){
|
|
351
|
+
if (this.heartbeatTimer) {
|
|
343
352
|
clearInterval(this.heartbeatTimer)
|
|
344
353
|
delete this.heartbeatTimer;
|
|
345
354
|
}
|
|
346
355
|
}
|
|
347
|
-
$formatMessage(onebotMsg: OneBot11Message){
|
|
348
|
-
const message=Message.from(onebotMsg,{
|
|
356
|
+
$formatMessage(onebotMsg: OneBot11Message) {
|
|
357
|
+
const message = Message.from(onebotMsg, {
|
|
349
358
|
$id: onebotMsg.message_id.toString(),
|
|
350
|
-
$adapter:'onebot11',
|
|
351
|
-
$bot
|
|
352
|
-
$sender:{
|
|
353
|
-
id:onebotMsg.user_id.toString(),
|
|
354
|
-
name:onebotMsg.user_id.toString()
|
|
359
|
+
$adapter: 'onebot11',
|
|
360
|
+
$bot: `${this.$config.name}`,
|
|
361
|
+
$sender: {
|
|
362
|
+
id: onebotMsg.user_id.toString(),
|
|
363
|
+
name: onebotMsg.user_id.toString()
|
|
355
364
|
},
|
|
356
|
-
$channel:{
|
|
357
|
-
id:[onebotMsg.self_id,(onebotMsg.group_id||onebotMsg.user_id)].join(':'),
|
|
358
|
-
type:onebotMsg.group_id?'group':'private'
|
|
365
|
+
$channel: {
|
|
366
|
+
id: [onebotMsg.self_id, (onebotMsg.group_id || onebotMsg.user_id)].join(':'),
|
|
367
|
+
type: onebotMsg.group_id ? 'group' : 'private'
|
|
359
368
|
},
|
|
360
369
|
$content: onebotMsg.message,
|
|
361
370
|
$raw: onebotMsg.raw_message,
|
|
362
371
|
$timestamp: onebotMsg.time,
|
|
363
|
-
$reply:async (content: SendContent, quote?: boolean|string):Promise<
|
|
364
|
-
if(!Array.isArray(content)) content=[content];
|
|
365
|
-
if(quote) content.unshift({type:'reply',data:{message_id:message.$id}})
|
|
366
|
-
this
|
|
372
|
+
$reply: async (content: SendContent, quote?: boolean | string): Promise<string> => {
|
|
373
|
+
if (!Array.isArray(content)) content = [content];
|
|
374
|
+
if (quote) content.unshift({ type: 'reply', data: { message_id: message.$id } })
|
|
375
|
+
return await this.$sendMessage({
|
|
367
376
|
...message.$channel,
|
|
368
|
-
context:'onebot11',
|
|
369
|
-
bot
|
|
370
|
-
content
|
|
377
|
+
context: 'onebot11',
|
|
378
|
+
bot: `${this.$config.name}`,
|
|
379
|
+
content
|
|
371
380
|
})
|
|
372
381
|
}
|
|
373
382
|
})
|
|
374
383
|
return message
|
|
375
384
|
}
|
|
376
385
|
|
|
377
|
-
async $sendMessage(options: SendOptions): Promise<
|
|
378
|
-
options=await this.plugin.app.handleBeforeSend(options)
|
|
386
|
+
async $sendMessage(options: SendOptions): Promise<string> {
|
|
387
|
+
options = await this.plugin.app.handleBeforeSend(options)
|
|
379
388
|
const messageData: any = {
|
|
380
389
|
message: options.content
|
|
381
390
|
};
|
|
382
|
-
if (options.type==='group') {
|
|
383
|
-
const [self_id,id]=options.id.split(':')
|
|
384
|
-
await this.callApi(self_id,'send_group_msg', {
|
|
391
|
+
if (options.type === 'group') {
|
|
392
|
+
const [self_id, id] = options.id.split(':')
|
|
393
|
+
const result = await this.callApi(self_id, 'send_group_msg', {
|
|
385
394
|
group_id: parseInt(id),
|
|
386
395
|
...messageData
|
|
387
396
|
});
|
|
388
397
|
this.plugin.logger.info(`send ${options.type}(${id}):${segment.raw(options.content)}`)
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
398
|
+
return result.message_id.toString();
|
|
399
|
+
} else if (options.type === 'private') {
|
|
400
|
+
const [self_id, id] = options.id.split(':')
|
|
401
|
+
const result = await this.callApi(self_id, 'send_private_msg', {
|
|
392
402
|
user_id: parseInt(id),
|
|
393
403
|
...messageData
|
|
394
404
|
});
|
|
395
405
|
this.plugin.logger.info(`send ${options.type}(${id}):${segment.raw(options.content)}`)
|
|
406
|
+
return result.message_id.toString();
|
|
396
407
|
} else {
|
|
397
408
|
throw new Error('Either group_id or user_id must be provided');
|
|
398
409
|
}
|
|
410
|
+
return '';
|
|
411
|
+
}
|
|
412
|
+
async $recallMessage(id: string): Promise<void> {
|
|
413
|
+
const [self_id, message_id] = id.split(':')
|
|
414
|
+
await this.callApi(self_id, 'delete_msg', {
|
|
415
|
+
message_id: parseInt(message_id)
|
|
416
|
+
});
|
|
399
417
|
}
|
|
400
|
-
private async callApi(self_id:string,action: string, params: any = {}): Promise<any> {
|
|
401
|
-
const client=this.#clientMap.get(self_id)
|
|
418
|
+
private async callApi(self_id: string, action: string, params: any = {}): Promise<any> {
|
|
419
|
+
const client = this.#clientMap.get(self_id)
|
|
402
420
|
if (!client || client.readyState !== WebSocket.OPEN) {
|
|
403
421
|
throw new Error('WebSocket is not connected');
|
|
404
422
|
}
|
|
@@ -421,7 +439,7 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
|
|
|
421
439
|
});
|
|
422
440
|
}
|
|
423
441
|
|
|
424
|
-
private handleWebSocketMessage(client:WebSocket,message: any): void {
|
|
442
|
+
private handleWebSocketMessage(client: WebSocket, message: any): void {
|
|
425
443
|
// 处理API响应
|
|
426
444
|
if (message.echo && this.pendingRequests.has(message.echo)) {
|
|
427
445
|
const request = this.pendingRequests.get(message.echo)!;
|
|
@@ -434,11 +452,11 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
|
|
|
434
452
|
}
|
|
435
453
|
return request.reject(new Error(`API error: ${response.retcode}`));
|
|
436
454
|
}
|
|
437
|
-
switch (message.post_type){
|
|
455
|
+
switch (message.post_type) {
|
|
438
456
|
case 'message':
|
|
439
457
|
return this.handleMessage(message);
|
|
440
458
|
case 'meta_event':
|
|
441
|
-
return this.handleMetaEvent(client,message)
|
|
459
|
+
return this.handleMetaEvent(client, message)
|
|
442
460
|
}
|
|
443
461
|
// 处理事件消息
|
|
444
462
|
if (message.post_type === 'message') {
|
|
@@ -446,27 +464,27 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
|
|
|
446
464
|
// 心跳消息,暂时忽略
|
|
447
465
|
}
|
|
448
466
|
}
|
|
449
|
-
private handleMetaEvent(client:WebSocket,message:any){
|
|
450
|
-
switch (message.sub_type){
|
|
467
|
+
private handleMetaEvent(client: WebSocket, message: any) {
|
|
468
|
+
switch (message.sub_type) {
|
|
451
469
|
case 'heartbeat':
|
|
452
470
|
break;
|
|
453
471
|
case 'connect':
|
|
454
|
-
this.#clientMap.set(message.self_id,client);
|
|
472
|
+
this.#clientMap.set(message.self_id, client);
|
|
455
473
|
this.plugin.logger.info(`client ${message.self_id} of ${this.$config.name} by ${this.$config.context} connected`)
|
|
456
474
|
break;
|
|
457
475
|
}
|
|
458
476
|
}
|
|
459
477
|
private handleMessage(onebotMsg: OneBot11Message): void {
|
|
460
478
|
const message = this.$formatMessage(onebotMsg);
|
|
461
|
-
this.plugin.dispatch('message.receive',message)
|
|
462
|
-
this.plugin.logger.info(`recv ${message.$channel.type}(${onebotMsg.group_id||onebotMsg.user_id}):${segment.raw(message.$content)}`)
|
|
463
|
-
this.plugin.dispatch(`message.${message.$channel.type}.receive`,message)
|
|
479
|
+
this.plugin.dispatch('message.receive', message)
|
|
480
|
+
this.plugin.logger.info(`recv ${message.$channel.type}(${onebotMsg.group_id || onebotMsg.user_id}):${segment.raw(message.$content)}`)
|
|
481
|
+
this.plugin.dispatch(`message.${message.$channel.type}.receive`, message)
|
|
464
482
|
}
|
|
465
483
|
|
|
466
484
|
private startHeartbeat(): void {
|
|
467
485
|
const interval = this.$config.heartbeat_interval || 30000;
|
|
468
486
|
this.heartbeatTimer = setInterval(() => {
|
|
469
|
-
for(const client of this.#wss?.clients||[]){
|
|
487
|
+
for (const client of this.#wss?.clients || []) {
|
|
470
488
|
if (client && client.readyState === WebSocket.OPEN) {
|
|
471
489
|
client.ping();
|
|
472
490
|
}
|
|
@@ -474,7 +492,7 @@ export class OneBot11WsServer extends EventEmitter implements Bot<OneBot11Messag
|
|
|
474
492
|
}, interval);
|
|
475
493
|
}
|
|
476
494
|
}
|
|
477
|
-
registerAdapter(new Adapter('onebot11',OneBot11WsClient))
|
|
478
|
-
useContext('router',(router)=>{
|
|
479
|
-
registerAdapter(new Adapter('onebot11.wss',(p,c:OneBot11WsServerConfig)=>new OneBot11WsServer(p,router,c)));
|
|
495
|
+
registerAdapter(new Adapter('onebot11', OneBot11WsClient))
|
|
496
|
+
useContext('router', (router) => {
|
|
497
|
+
registerAdapter(new Adapter('onebot11.wss', (p, c: OneBot11WsServerConfig) => new OneBot11WsServer(p, router, c)));
|
|
480
498
|
})
|