kook-sdk 1.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/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 KOOK SDK Contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,197 @@
1
+ # KOOK SDK
2
+
3
+ 一个功能完善的 Node.js KOOK(开黑啦)机器人开发 SDK。
4
+
5
+ ## 特性
6
+
7
+ - 🔌 **WebSocket 实时连接** - 支持自动重连、心跳检测
8
+ - 📡 **完整的 HTTP API** - 覆盖 KOOK 所有 REST API
9
+ - 🎯 **事件驱动架构** - 基于 EventEmitter,易于使用
10
+ - 📝 **丰富的消息类型** - 支持文本、KMarkdown、卡片、图片、视频等
11
+ - 🎨 **卡片构建器** - 便捷的 CardBuilder 工具类
12
+ - 💪 **TypeScript 支持** - 完整的类型定义
13
+ - 🔄 **自动重连机制** - 网络异常自动恢复
14
+
15
+ ## 安装
16
+
17
+ ```bash
18
+ npm install kook-sdk
19
+ ```
20
+
21
+ ## 快速开始
22
+
23
+ ```typescript
24
+ import { KookBot } from 'kook-sdk';
25
+
26
+ const bot = new KookBot({
27
+ token: 'YOUR_BOT_TOKEN',
28
+ });
29
+
30
+ bot.on('ready', (user) => {
31
+ console.log(`Bot ${user.username} 已启动!`);
32
+ });
33
+
34
+ bot.on('message', async (event) => {
35
+ if (event.content === '!ping') {
36
+ await bot.sendTextMessage(event.target_id, 'Pong!');
37
+ }
38
+ });
39
+
40
+ bot.start();
41
+ ```
42
+
43
+ ## 配置选项
44
+
45
+ ```typescript
46
+ interface KookSDKOptions {
47
+ token: string; // 机器人 Token(必填)
48
+ mode?: 'websocket' | 'webhook'; // 连接模式,默认 websocket
49
+ autoReconnect?: boolean; // 自动重连,默认 true
50
+ reconnectInterval?: number; // 重连间隔(ms),默认 5000
51
+ maxReconnectAttempts?: number; // 最大重连次数,默认 10
52
+ compress?: boolean; // 启用压缩,默认 false
53
+ }
54
+ ```
55
+
56
+ ## 事件列表
57
+
58
+ ### 生命周期事件
59
+
60
+ - `ready` - 机器人就绪
61
+ - `error` - 发生错误
62
+ - `debug` - 调试信息
63
+ - `stopped` - 机器人停止
64
+
65
+ ### 消息事件
66
+
67
+ - `message` / `messageCreate` - 收到消息
68
+ - `messageUpdate` - 消息更新
69
+ - `messageDelete` - 消息删除
70
+
71
+ ### 服务器事件
72
+
73
+ - `joinedGuild` - 用户加入服务器
74
+ - `exitedGuild` - 用户离开服务器
75
+ - `guildUpdate` - 服务器更新
76
+
77
+ ### 成员事件
78
+
79
+ - `guildMemberOnline` - 成员上线
80
+ - `guildMemberOffline` - 成员下线
81
+ - `guildMemberUpdate` - 成员信息更新
82
+
83
+ ### 频道事件
84
+
85
+ - `channelCreate` - 频道创建
86
+ - `channelDelete` - 频道删除
87
+ - `channelUpdate` - 频道更新
88
+
89
+ ### 其他事件
90
+
91
+ - `reactionAdd` - 添加表情反应
92
+ - `reactionRemove` - 移除表情反应
93
+ - `guildRoleCreate` / `guildRoleDelete` / `guildRoleUpdate` - 角色变更
94
+ - `messageBtnClick` - 卡片按钮点击
95
+
96
+ ## 消息发送
97
+
98
+ ### 文本消息
99
+
100
+ ```typescript
101
+ await bot.sendTextMessage(channelId, 'Hello World!');
102
+ ```
103
+
104
+ ### KMarkdown 消息
105
+
106
+ ```typescript
107
+ await bot.sendKMarkdownMessage(channelId, '**粗体** *斜体* <@user_id>');
108
+ ```
109
+
110
+ ### 卡片消息
111
+
112
+ ```typescript
113
+ import { CardBuilder } from 'kook-sdk';
114
+
115
+ const card = new CardBuilder()
116
+ .addHeader('标题')
117
+ .addSection('内容')
118
+ .addActionGroup([
119
+ { text: '按钮1', value: 'btn1', theme: 'primary' },
120
+ { text: '按钮2', value: 'btn2', theme: 'danger' }
121
+ ])
122
+ .build();
123
+
124
+ await bot.sendCardMessage(channelId, card);
125
+ ```
126
+
127
+ ### 图片/视频/文件消息
128
+
129
+ ```typescript
130
+ await bot.sendImageMessage(channelId, 'https://example.com/image.png');
131
+ await bot.sendVideoMessage(channelId, 'https://example.com/video.mp4');
132
+ await bot.sendFileMessage(channelId, 'https://example.com/file.pdf');
133
+ ```
134
+
135
+ ### 私信
136
+
137
+ ```typescript
138
+ await bot.sendDirectTextMessage(userId, '私信内容');
139
+ await bot.sendDirectKMarkdownMessage(userId, '**Markdown** 私信');
140
+ await bot.sendDirectCardMessage(userId, card);
141
+ ```
142
+
143
+ ## API 方法
144
+
145
+ ### 用户相关
146
+
147
+ ```typescript
148
+ await bot.getCurrentUser(); // 获取当前用户信息
149
+ await bot.getUser(userId); // 获取用户详情
150
+ ```
151
+
152
+ ### 服务器相关
153
+
154
+ ```typescript
155
+ await bot.getGuilds(); // 获取服务器列表
156
+ await bot.getGuild(guildId); // 获取服务器详情
157
+ await bot.getGuildUsers(guildId); // 获取服务器成员列表
158
+ await bot.setNickname(guildId, userId, '新昵称');
159
+ await bot.kickUser(guildId, userId); // 踢出用户
160
+ ```
161
+
162
+ ### 频道相关
163
+
164
+ ```typescript
165
+ await bot.getChannels(guildId); // 获取频道列表
166
+ await bot.getChannel(channelId); // 获取频道详情
167
+ await bot.createChannel(guildId, '新频道');
168
+ await bot.updateChannel(channelId, { name: '新名称' });
169
+ await bot.deleteChannel(channelId);
170
+ ```
171
+
172
+ ### 消息相关
173
+
174
+ ```typescript
175
+ await bot.getMessages(channelId); // 获取消息列表
176
+ await bot.getMessage(msgId); // 获取消息详情
177
+ await bot.updateMessage(msgId, '新内容');
178
+ await bot.deleteMessage(msgId);
179
+ await bot.addReaction(msgId, '👍'); // 添加表情反应
180
+ await bot.removeReaction(msgId, '👍'); // 移除表情反应
181
+ ```
182
+
183
+ ### 角色相关
184
+
185
+ ```typescript
186
+ await bot.getRoles(guildId); // 获取角色列表
187
+ await bot.grantRole(guildId, userId, roleId); // 赋予角色
188
+ await bot.revokeRole(guildId, userId, roleId); // 撤销角色
189
+ ```
190
+
191
+ ## 完整示例
192
+
193
+ 查看 [examples](./examples) 目录获取更多示例代码。
194
+
195
+ ## 许可证
196
+
197
+ MIT
@@ -0,0 +1,341 @@
1
+ import { AxiosRequestConfig } from 'axios';
2
+ import { User, Guild, Channel, Message, DirectMessageSession, Role, MessageType, VoiceConnection, Invite, BlacklistUser, MuteUser, GuildBoost, BoostHistory, GuildEmoji, Announcement, IntimacyRank, IntimacyInfo, Game, Badge, Schedule, ChannelCategory, UserChat, ChannelRolePermission, ChannelUserPermission, PunchIn, GuildWelcome, GuildNotify, DirectMessageDetail } from '../types';
3
+ export declare class HttpClient {
4
+ private axios;
5
+ constructor(token: string);
6
+ request<T>(config: AxiosRequestConfig): Promise<T>;
7
+ get<T>(url: string, params?: Record<string, unknown>): Promise<T>;
8
+ post<T>(url: string, data?: unknown): Promise<T>;
9
+ getCurrentUser(): Promise<User>;
10
+ getUser(userId: string): Promise<User>;
11
+ offline(): Promise<void>;
12
+ getGuilds(): Promise<Guild[]>;
13
+ getGuild(guildId: string): Promise<Guild>;
14
+ getGuildUsers(guildId: string, options?: {
15
+ channel_id?: string;
16
+ search?: string;
17
+ role_id?: number;
18
+ mobile_verified?: boolean;
19
+ active_time?: number;
20
+ joined_at?: number;
21
+ page?: number;
22
+ page_size?: number;
23
+ filter_user_id?: string;
24
+ }): Promise<{
25
+ items: User[];
26
+ meta: {
27
+ page: number;
28
+ page_total: number;
29
+ total: number;
30
+ };
31
+ }>;
32
+ setGuildUserNickname(guildId: string, userId: string, nickname: string): Promise<void>;
33
+ leaveGuild(guildId: string): Promise<void>;
34
+ kickGuildUser(guildId: string, targetId: string): Promise<void>;
35
+ getChannels(guildId: string): Promise<Channel[]>;
36
+ getChannel(channelId: string): Promise<Channel>;
37
+ createChannel(guildId: string, name: string, options?: {
38
+ parent_id?: string;
39
+ type?: number;
40
+ limit_amount?: number;
41
+ voice_quality?: string;
42
+ }): Promise<Channel>;
43
+ updateChannel(channelId: string, options: {
44
+ name?: string;
45
+ topic?: string;
46
+ slow_mode?: number;
47
+ }): Promise<Channel>;
48
+ deleteChannel(channelId: string): Promise<void>;
49
+ getChannelUsers(channelId: string): Promise<User[]>;
50
+ moveChannel(channelId: string, parentId?: string, after?: string): Promise<void>;
51
+ getMessages(channelId: string, options?: {
52
+ msg_id?: string;
53
+ pin?: number;
54
+ flag?: string;
55
+ page_size?: number;
56
+ }): Promise<{
57
+ items: Message[];
58
+ meta: {
59
+ page: number;
60
+ page_total: number;
61
+ total: number;
62
+ };
63
+ }>;
64
+ getMessage(msgId: string): Promise<Message>;
65
+ sendChannelMessage(channelId: string, content: string, options?: {
66
+ type?: MessageType;
67
+ quote?: string;
68
+ nonce?: string;
69
+ temp_target_id?: string;
70
+ }): Promise<Message>;
71
+ updateMessage(msgId: string, content: string, options?: {
72
+ quote?: string;
73
+ temp_target_id?: string;
74
+ }): Promise<Message>;
75
+ deleteMessage(msgId: string): Promise<void>;
76
+ getMessageReactions(msgId: string, emoji: string): Promise<{
77
+ items: User[];
78
+ meta: {
79
+ total: number;
80
+ };
81
+ }>;
82
+ addMessageReaction(msgId: string, emoji: string): Promise<void>;
83
+ removeMessageReaction(msgId: string, emoji: string, userId?: string): Promise<void>;
84
+ getDirectMessageSessions(): Promise<DirectMessageSession[]>;
85
+ createDirectMessageSession(targetId: string): Promise<{
86
+ code: string;
87
+ }>;
88
+ sendDirectMessage(targetId: string, content: string, options?: {
89
+ type?: MessageType;
90
+ quote?: string;
91
+ nonce?: string;
92
+ }): Promise<Message>;
93
+ getGuildRoles(guildId: string): Promise<Role[]>;
94
+ createRole(guildId: string, name: string, options?: {
95
+ color?: number;
96
+ hoist?: number;
97
+ mentionable?: number;
98
+ permissions?: number;
99
+ }): Promise<Role>;
100
+ updateRole(guildId: string, roleId: number, options: {
101
+ name?: string;
102
+ color?: number;
103
+ hoist?: number;
104
+ mentionable?: number;
105
+ permissions?: number;
106
+ }): Promise<Role>;
107
+ deleteRole(guildId: string, roleId: number): Promise<void>;
108
+ grantRole(guildId: string, userId: string, roleId: number): Promise<void>;
109
+ revokeRole(guildId: string, userId: string, roleId: number): Promise<void>;
110
+ uploadAsset(file: Buffer | NodeJS.ReadableStream | string, options?: {
111
+ filename?: string;
112
+ contentType?: string;
113
+ }): Promise<{
114
+ url: string;
115
+ }>;
116
+ pinMessage(msgId: string): Promise<void>;
117
+ unpinMessage(msgId: string): Promise<void>;
118
+ joinVoiceChannel(channelId: string, options?: {
119
+ audio_ssrc?: string;
120
+ audio_pt?: string;
121
+ rtcp_mux?: boolean;
122
+ password?: string;
123
+ }): Promise<VoiceConnection>;
124
+ leaveVoiceChannel(channelId: string): Promise<void>;
125
+ getVoiceChannels(): Promise<{
126
+ items: Channel[];
127
+ meta: {
128
+ page: number;
129
+ page_total: number;
130
+ total: number;
131
+ };
132
+ }>;
133
+ keepVoiceAlive(channelId: string): Promise<void>;
134
+ getInvites(guildId: string): Promise<Invite[]>;
135
+ createInvite(channelId: string, options?: {
136
+ duration?: number;
137
+ setting_times?: number;
138
+ }): Promise<Invite>;
139
+ deleteInvite(urlCode: string, guildId: string): Promise<void>;
140
+ getBlacklist(guildId: string, options?: {
141
+ page?: number;
142
+ page_size?: number;
143
+ }): Promise<{
144
+ items: BlacklistUser[];
145
+ meta: {
146
+ page: number;
147
+ page_total: number;
148
+ total: number;
149
+ };
150
+ }>;
151
+ addBlacklist(guildId: string, targetId: string, options?: {
152
+ remark?: string;
153
+ del_msg_days?: number;
154
+ }): Promise<void>;
155
+ removeBlacklist(guildId: string, targetId: string): Promise<void>;
156
+ getMuteList(guildId: string): Promise<MuteUser[]>;
157
+ addMute(guildId: string, targetId: string, type: 1 | 2): Promise<void>;
158
+ removeMute(guildId: string, targetId: string, type: 1 | 2): Promise<void>;
159
+ getBoosts(guildId: string): Promise<GuildBoost[]>;
160
+ getBoostHistory(guildId: string, options?: {
161
+ start_time?: number;
162
+ end_time?: number;
163
+ page?: number;
164
+ page_size?: number;
165
+ }): Promise<{
166
+ items: BoostHistory[];
167
+ meta: {
168
+ page: number;
169
+ page_total: number;
170
+ total: number;
171
+ };
172
+ }>;
173
+ getGuildEmojis(guildId: string): Promise<GuildEmoji[]>;
174
+ createGuildEmoji(guildId: string, name: string, emoji: string): Promise<GuildEmoji>;
175
+ updateGuildEmoji(guildId: string, emojiId: string, name: string): Promise<GuildEmoji>;
176
+ deleteGuildEmoji(guildId: string, emojiId: string): Promise<void>;
177
+ getAnnouncements(guildId: string, options?: {
178
+ page?: number;
179
+ page_size?: number;
180
+ }): Promise<{
181
+ items: Announcement[];
182
+ meta: {
183
+ page: number;
184
+ page_total: number;
185
+ total: number;
186
+ };
187
+ }>;
188
+ createAnnouncement(guildId: string, channelId: string, content: string): Promise<Announcement>;
189
+ updateAnnouncement(announcementId: string, content: string): Promise<Announcement>;
190
+ deleteAnnouncement(announcementId: string): Promise<void>;
191
+ getIntimacyRank(guildId: string, options?: {
192
+ page?: number;
193
+ page_size?: number;
194
+ }): Promise<{
195
+ items: IntimacyRank[];
196
+ meta: {
197
+ page: number;
198
+ page_total: number;
199
+ total: number;
200
+ };
201
+ }>;
202
+ getIntimacyInfo(userId: string, guildId: string): Promise<IntimacyInfo>;
203
+ updateIntimacy(userId: string, guildId: string, score: number): Promise<void>;
204
+ getGames(): Promise<Game[]>;
205
+ createGame(name: string, icon: string, options?: {
206
+ process_name?: string[];
207
+ product_name?: string[];
208
+ }): Promise<Game>;
209
+ updateGame(gameId: number, options: {
210
+ name?: string;
211
+ icon?: string;
212
+ process_name?: string[];
213
+ product_name?: string[];
214
+ }): Promise<Game>;
215
+ deleteGame(gameId: number): Promise<void>;
216
+ startPlaying(gameId: number): Promise<void>;
217
+ stopPlaying(gameId: number): Promise<void>;
218
+ getBadges(guildId: string): Promise<Badge[]>;
219
+ createBadge(guildId: string, name: string, icon: string, options?: {
220
+ description?: string;
221
+ }): Promise<Badge>;
222
+ updateBadge(badgeId: string, options: {
223
+ name?: string;
224
+ icon?: string;
225
+ description?: string;
226
+ }): Promise<Badge>;
227
+ deleteBadge(badgeId: string): Promise<void>;
228
+ grantBadge(guildId: string, userId: string, badgeId: string): Promise<void>;
229
+ revokeBadge(guildId: string, userId: string, badgeId: string): Promise<void>;
230
+ getSchedules(channelId: string, options?: {
231
+ start_time?: number;
232
+ end_time?: number;
233
+ page?: number;
234
+ page_size?: number;
235
+ }): Promise<{
236
+ items: Schedule[];
237
+ meta: {
238
+ page: number;
239
+ page_total: number;
240
+ total: number;
241
+ };
242
+ }>;
243
+ getSchedule(scheduleId: string): Promise<Schedule>;
244
+ createSchedule(channelId: string, title: string, startTime: number, endTime: number, options?: {
245
+ content?: string;
246
+ description?: string;
247
+ reminder?: string;
248
+ }): Promise<Schedule>;
249
+ updateSchedule(scheduleId: string, options: {
250
+ title?: string;
251
+ start_time?: number;
252
+ end_time?: number;
253
+ content?: string;
254
+ description?: string;
255
+ reminder?: string;
256
+ }): Promise<Schedule>;
257
+ deleteSchedule(scheduleId: string): Promise<void>;
258
+ getChannelCategories(guildId: string): Promise<ChannelCategory[]>;
259
+ createChannelCategory(guildId: string, name: string): Promise<ChannelCategory>;
260
+ updateChannelCategory(categoryId: string, name: string): Promise<ChannelCategory>;
261
+ deleteChannelCategory(categoryId: string): Promise<void>;
262
+ moveChannelToCategory(channelId: string, parentId: string): Promise<void>;
263
+ getUserChats(): Promise<UserChat[]>;
264
+ getUserChat(chatId: string): Promise<UserChat>;
265
+ createUserChat(targetId: string): Promise<UserChat>;
266
+ deleteUserChat(chatId: string): Promise<void>;
267
+ getChannelRolePermissions(channelId: string): Promise<ChannelRolePermission[]>;
268
+ createChannelRolePermission(channelId: string, roleId: number, allow: number, deny: number): Promise<ChannelRolePermission>;
269
+ updateChannelRolePermission(channelId: string, roleId: number, allow: number, deny: number): Promise<ChannelRolePermission>;
270
+ deleteChannelRolePermission(channelId: string, roleId: number): Promise<void>;
271
+ getChannelUserPermissions(channelId: string): Promise<ChannelUserPermission[]>;
272
+ createChannelUserPermission(channelId: string, userId: string, allow: number, deny: number): Promise<ChannelUserPermission>;
273
+ updateChannelUserPermission(channelId: string, userId: string, allow: number, deny: number): Promise<ChannelUserPermission>;
274
+ deleteChannelUserPermission(channelId: string, userId: string): Promise<void>;
275
+ getPunchIn(guildId: string): Promise<PunchIn>;
276
+ punchIn(guildId: string): Promise<void>;
277
+ getUsersBatch(userIds: string[]): Promise<User[]>;
278
+ getGuildsBatch(guildIds: string[]): Promise<Guild[]>;
279
+ getGuildSettings(guildId: string): Promise<{
280
+ guild_id: string;
281
+ notify_type: number;
282
+ region: string;
283
+ enable_open: number;
284
+ open_id: number;
285
+ default_channel_id: string;
286
+ welcome_channel_id: string;
287
+ }>;
288
+ getGateway(compress?: boolean): Promise<{
289
+ url: string;
290
+ compress?: boolean;
291
+ }>;
292
+ getGuildWelcome(guildId: string): Promise<GuildWelcome>;
293
+ updateGuildWelcome(guildId: string, options: {
294
+ channel_id?: string;
295
+ is_send_msg?: boolean;
296
+ message?: string;
297
+ }): Promise<GuildWelcome>;
298
+ getGuildNotify(guildId: string): Promise<GuildNotify>;
299
+ updateGuildNotify(guildId: string, notifyType: number): Promise<GuildNotify>;
300
+ getDirectMessageDetail(msgId: string): Promise<DirectMessageDetail>;
301
+ updateDirectMessage(msgId: string, content: string, options?: {
302
+ quote?: string;
303
+ }): Promise<DirectMessageDetail>;
304
+ deleteDirectMessage(msgId: string): Promise<void>;
305
+ addMessageReadReceipt(msgId: string): Promise<void>;
306
+ getMessageReadReceipts(msgId: string): Promise<{
307
+ items: User[];
308
+ meta: {
309
+ total: number;
310
+ };
311
+ }>;
312
+ setVoiceQuality(channelId: string, quality: string): Promise<void>;
313
+ setSlowMode(channelId: string, slowMode: number): Promise<void>;
314
+ batchUpdateGuildRolePermissions(guildId: string, permissions: {
315
+ role_id: number;
316
+ permissions: number;
317
+ }[]): Promise<void>;
318
+ getFriends(): Promise<User[]>;
319
+ getFriendRequests(): Promise<{
320
+ items: {
321
+ user_id: string;
322
+ user_info: User;
323
+ content: string;
324
+ created_at: number;
325
+ }[];
326
+ }>;
327
+ sendFriendRequest(targetId: string, content?: string): Promise<void>;
328
+ acceptFriendRequest(targetId: string): Promise<void>;
329
+ declineFriendRequest(targetId: string): Promise<void>;
330
+ deleteFriend(targetId: string): Promise<void>;
331
+ getGuildMemberOnlineStatus(guildId: string, userId: string): Promise<{
332
+ online: boolean;
333
+ online_os: string[];
334
+ }>;
335
+ getGuildMemberPermissions(guildId: string, userId: string): Promise<{
336
+ permissions: number;
337
+ }>;
338
+ getChannelsBatch(channelIds: string[]): Promise<Channel[]>;
339
+ getMessagesBatch(msgIds: string[]): Promise<Message[]>;
340
+ }
341
+ //# sourceMappingURL=http-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-client.d.ts","sourceRoot":"","sources":["../../src/client/http-client.ts"],"names":[],"mappings":"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"}