@zhin.js/adapter-kook 1.0.1 → 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 +16 -0
- package/lib/index.d.ts +3 -2
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +12 -1
- package/lib/index.js.map +1 -1
- package/package.json +3 -3
- package/src/index.ts +12 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,21 @@
|
|
|
1
1
|
# @zhin.js/adapter-kook
|
|
2
2
|
|
|
3
|
+
## 1.0.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 89bc676: fix: 类型反射优化
|
|
8
|
+
- Updated dependencies [89bc676]
|
|
9
|
+
- @zhin.js/types@1.0.2
|
|
10
|
+
- zhin.js@1.0.3
|
|
11
|
+
|
|
12
|
+
## 1.0.2
|
|
13
|
+
|
|
14
|
+
### Patch Changes
|
|
15
|
+
|
|
16
|
+
- Updated dependencies [15fc934]
|
|
17
|
+
- zhin.js@1.0.2
|
|
18
|
+
|
|
3
19
|
## 1.0.1
|
|
4
20
|
|
|
5
21
|
### Patch Changes
|
package/lib/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Client, PrivateMessageEvent, ChannelMessageEvent, Sendable } from "kook-client";
|
|
2
2
|
import { Bot, BotConfig, Adapter, Plugin, Message, SendOptions, MessageSegment, SendContent } from "zhin.js";
|
|
3
|
-
declare module 'zhin.js' {
|
|
3
|
+
declare module '@zhin.js/types' {
|
|
4
4
|
interface RegisteredAdapters {
|
|
5
5
|
kook: Adapter<KookBot>;
|
|
6
6
|
}
|
|
@@ -19,7 +19,8 @@ export declare class KookBot extends Client implements Bot<PrivateMessageEvent |
|
|
|
19
19
|
$formatMessage(msg: PrivateMessageEvent | ChannelMessageEvent): Message<PrivateMessageEvent | ChannelMessageEvent>;
|
|
20
20
|
$connect(): Promise<void>;
|
|
21
21
|
$disconnect(): Promise<void>;
|
|
22
|
-
$sendMessage(options: SendOptions): Promise<
|
|
22
|
+
$sendMessage(options: SendOptions): Promise<string>;
|
|
23
|
+
$recallMessage(id: string): Promise<void>;
|
|
23
24
|
private handleKookMessage;
|
|
24
25
|
}
|
|
25
26
|
export declare namespace KookBot {
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAA+B,mBAAmB,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAC;AAErH,OAAO,EACH,GAAG,EACH,SAAS,EACT,OAAO,EACP,MAAM,EAEN,OAAO,EACP,WAAW,EACX,cAAc,EACd,WAAW,EAEd,MAAM,SAAS,CAAC;AACjB,OAAO,QAAQ,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAA+B,mBAAmB,EAAE,QAAQ,EAAC,MAAM,aAAa,CAAC;AAErH,OAAO,EACH,GAAG,EACH,SAAS,EACT,OAAO,EACP,MAAM,EAEN,OAAO,EACP,WAAW,EACX,cAAc,EACd,WAAW,EAEd,MAAM,SAAS,CAAC;AACjB,OAAO,QAAQ,gBAAgB,CAAA;IAC3B,UAAU,kBAAkB;QACxB,IAAI,EAAC,OAAO,CAAC,OAAO,CAAC,CAAA;KACxB;CACJ;AACD,MAAM,WAAW,aAAc,SAAQ,SAAS,EAAC,MAAM,CAAC,MAAM;IAC1D,OAAO,EAAC,MAAM,CAAA;IACd,IAAI,EAAC,GAAG,MAAM,EAAE,CAAA;CACnB;AACD,MAAM,WAAW,OAAO;IACpB,OAAO,EAAC,aAAa,CAAA;CACxB;AACD,qBAAa,OAAQ,SAAQ,MAAO,YAAW,GAAG,CAAC,mBAAmB,GAAC,mBAAmB,EAAC,aAAa,CAAC;IAEzF,OAAO,CAAC,MAAM;IAD1B,UAAU,CAAC,EAAC,OAAO,CAAA;gBACC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,aAAa;IAMtD,cAAc,CAAC,GAAG,EAAE,mBAAmB,GAAG,mBAAmB;IA8BvD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAMzB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAK5B,YAAY,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC;IAmBnD,cAAc,CAAC,EAAE,EAAC,MAAM,GAAE,OAAO,CAAC,IAAI,CAAC;IAO7C,OAAO,CAAC,iBAAiB;CAO5B;AACD,yBAAiB,OAAO,CAAA;IACpB,SAAgB,UAAU,CAAC,OAAO,EAAC,QAAQ,GAAE,cAAc,EAAE,CAO5D;IACD,SAAgB,UAAU,CAAC,OAAO,EAAC,WAAW,GAAE,QAAQ,CAOvD;CACJ"}
|
package/lib/index.js
CHANGED
|
@@ -32,7 +32,7 @@ export class KookBot extends Client {
|
|
|
32
32
|
content = [content];
|
|
33
33
|
if (quote)
|
|
34
34
|
content.unshift({ type: 'reply', data: { id: typeof quote === "boolean" ? message.$id : quote } });
|
|
35
|
-
this
|
|
35
|
+
return await this.$sendMessage({
|
|
36
36
|
...message.$channel,
|
|
37
37
|
context: 'kook',
|
|
38
38
|
bot: `${this.$config.name}`,
|
|
@@ -57,17 +57,28 @@ export class KookBot extends Client {
|
|
|
57
57
|
case 'private': {
|
|
58
58
|
const result = await this.sendPrivateMsg(options.id, KookBot.toSendable(options.content));
|
|
59
59
|
this.plugin.logger.info(`send ${options.type}(${options.id}):${segment.raw(options.content)}`);
|
|
60
|
+
return `private-${options.id}:${result.message_id.toString()}`;
|
|
60
61
|
break;
|
|
61
62
|
}
|
|
62
63
|
case "channel": {
|
|
63
64
|
const result = await this.sendChannelMsg(options.id, KookBot.toSendable(options.content));
|
|
64
65
|
this.plugin.logger.info(`send ${options.type}(${options.id}):${segment.raw(options.content)}`);
|
|
66
|
+
return `channel-${options.id}:${result.message_id.toString()}`;
|
|
65
67
|
break;
|
|
66
68
|
}
|
|
67
69
|
default:
|
|
68
70
|
throw new Error(`unsupported channel type ${options.type}`);
|
|
69
71
|
}
|
|
70
72
|
}
|
|
73
|
+
async $recallMessage(id) {
|
|
74
|
+
if (!/^(private|channel)-([^\:]+):(.+)$/.test(id))
|
|
75
|
+
throw new Error(`invalid message id ${id}`);
|
|
76
|
+
const [target_type, target_id, message_id] = id.match(/^(private|channel)-([^\:]+):(.+)$/);
|
|
77
|
+
if (target_type === 'private')
|
|
78
|
+
await this.recallPrivateMsg(target_id, message_id);
|
|
79
|
+
if (target_type === 'channel')
|
|
80
|
+
await this.recallChannelMsg(target_id, message_id);
|
|
81
|
+
}
|
|
71
82
|
handleKookMessage(msg) {
|
|
72
83
|
const message = this.$formatMessage(msg);
|
|
73
84
|
this.plugin.dispatch('message.receive', message);
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAkF,MAAM,aAAa,CAAC;AACrH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAGH,OAAO,EAEP,eAAe,EACf,OAAO,EAIP,OAAO,EACV,MAAM,SAAS,CAAC;AAajB,MAAM,OAAO,OAAQ,SAAQ,MAAM;IAEX;IADpB,UAAU,CAAS;IACnB,YAAoB,MAAa,EAAC,MAAoB;QAClD,IAAG,CAAC,MAAM,CAAC,QAAQ;YAAE,MAAM,CAAC,QAAQ,GAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAC,MAAM,CAAC,CAAA;QACpE,KAAK,CAAC,MAAM,CAAC,CAAC;QAFE,WAAM,GAAN,MAAM,CAAO;QAG7B,IAAI,CAAC,OAAO,GAAC,MAAM,CAAC;IACxB,CAAC;IAED,cAAc,CAAC,GAA8C;QACzD,MAAM,OAAO,GAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAC;YAC3B,GAAG,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE;YAC9B,QAAQ,EAAC,MAAM;YACf,IAAI,EAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAC3B,OAAO,EAAC;gBACJ,EAAE,EAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE;gBAC3B,IAAI,EAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;aAC3C;YACD,QAAQ,EAAC;gBACL,EAAE,EAAC,GAAG,CAAC,YAAY,KAAG,SAAS,CAAA,CAAC,CAAA,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAA,CAAC,CAAA,GAAG,CAAC,SAAS,CAAC,QAAQ,EAAE;gBAClF,IAAI,EAAC,GAAG,CAAC,YAAY;aACxB;YACD,QAAQ,EAAE,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC;YACzC,IAAI,EAAE,GAAG,CAAC,WAAW;YACrB,UAAU,EAAE,GAAG,CAAC,SAAS;YACzB,MAAM,EAAC,KAAK,EAAE,OAAoB,EAAE,KAAsB,
|
|
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-kook",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "zhin adapter for kook",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./lib/index.js",
|
|
@@ -18,8 +18,8 @@
|
|
|
18
18
|
"typescript": "^5.3.0"
|
|
19
19
|
},
|
|
20
20
|
"peerDependencies": {
|
|
21
|
-
"zhin.js": "1.0.
|
|
22
|
-
"@zhin.js/types": "1.0.
|
|
21
|
+
"zhin.js": "1.0.3",
|
|
22
|
+
"@zhin.js/types": "1.0.2"
|
|
23
23
|
},
|
|
24
24
|
"peerDependenciesMeta": {
|
|
25
25
|
"@zhin.js/types": {
|
package/src/index.ts
CHANGED
|
@@ -12,7 +12,7 @@ import {
|
|
|
12
12
|
SendContent,
|
|
13
13
|
segment
|
|
14
14
|
} from "zhin.js";
|
|
15
|
-
declare module 'zhin.js'{
|
|
15
|
+
declare module '@zhin.js/types'{
|
|
16
16
|
interface RegisteredAdapters{
|
|
17
17
|
kook:Adapter<KookBot>
|
|
18
18
|
}
|
|
@@ -48,10 +48,10 @@ export class KookBot extends Client implements Bot<PrivateMessageEvent|ChannelMe
|
|
|
48
48
|
$content: KookBot.toSegments(msg.message),
|
|
49
49
|
$raw: msg.raw_message,
|
|
50
50
|
$timestamp: msg.timestamp,
|
|
51
|
-
$reply:async (content: SendContent, quote?: boolean|string):Promise<
|
|
51
|
+
$reply:async (content: SendContent, quote?: boolean|string):Promise<string>=> {
|
|
52
52
|
if(!Array.isArray(content)) content=[content];
|
|
53
53
|
if(quote) content.unshift({type:'reply',data:{id:typeof quote==="boolean"?message.$id:quote}})
|
|
54
|
-
this
|
|
54
|
+
return await this.$sendMessage({
|
|
55
55
|
...message.$channel,
|
|
56
56
|
context:'kook',
|
|
57
57
|
bot:`${this.$config.name}`,
|
|
@@ -73,23 +73,31 @@ export class KookBot extends Client implements Bot<PrivateMessageEvent|ChannelMe
|
|
|
73
73
|
this.$connected=false;
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
async $sendMessage(options: SendOptions): Promise<
|
|
76
|
+
async $sendMessage(options: SendOptions): Promise<string> {
|
|
77
77
|
options=await this.plugin.app.handleBeforeSend(options)
|
|
78
78
|
switch (options.type){
|
|
79
79
|
case 'private':{
|
|
80
80
|
const result= await this.sendPrivateMsg(options.id,KookBot.toSendable(options.content))
|
|
81
81
|
this.plugin.logger.info(`send ${options.type}(${options.id}):${segment.raw(options.content)}`)
|
|
82
|
+
return `private-${options.id}:${result.message_id.toString()}`
|
|
82
83
|
break;
|
|
83
84
|
}
|
|
84
85
|
case "channel":{
|
|
85
86
|
const result=await this.sendChannelMsg(options.id,KookBot.toSendable(options.content))
|
|
86
87
|
this.plugin.logger.info(`send ${options.type}(${options.id}):${segment.raw(options.content)}`)
|
|
88
|
+
return `channel-${options.id}:${result.message_id.toString()}`
|
|
87
89
|
break;
|
|
88
90
|
}
|
|
89
91
|
default:
|
|
90
92
|
throw new Error(`unsupported channel type ${options.type}`)
|
|
91
93
|
}
|
|
92
94
|
}
|
|
95
|
+
async $recallMessage(id:string):Promise<void> {
|
|
96
|
+
if(!/^(private|channel)-([^\:]+):(.+)$/.test(id)) throw new Error(`invalid message id ${id}`)
|
|
97
|
+
const [target_type,target_id,message_id]=id.match(/^(private|channel)-([^\:]+):(.+)$/)!
|
|
98
|
+
if(target_type==='private') await this.recallPrivateMsg(target_id,message_id)
|
|
99
|
+
if(target_type==='channel') await this.recallChannelMsg(target_id,message_id)
|
|
100
|
+
}
|
|
93
101
|
|
|
94
102
|
private handleKookMessage(msg: PrivateMessageEvent|ChannelMessageEvent): void {
|
|
95
103
|
const message=this.$formatMessage(msg)
|