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.
@@ -0,0 +1,291 @@
1
+ "use strict";
2
+ /**
3
+ * KMarkdown 构建器
4
+ * 用于方便地构建 KMarkdown 格式的消息内容
5
+ * 参考文档: https://github.com/kaiheila/api-docs/blob/main/docs/zh-cn/kmarkdown-desc.md
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.KMarkdown = exports.KMarkdownBuilder = void 0;
9
+ exports.kmd = kmd;
10
+ class KMarkdownBuilder {
11
+ constructor() {
12
+ this.content = '';
13
+ }
14
+ /**
15
+ * 添加纯文本
16
+ */
17
+ text(text) {
18
+ this.content += this.escape(text);
19
+ return this;
20
+ }
21
+ /**
22
+ * 添加加粗文字
23
+ */
24
+ bold(text) {
25
+ this.content += `**${this.escape(text)}**`;
26
+ return this;
27
+ }
28
+ /**
29
+ * 添加斜体文字
30
+ */
31
+ italic(text) {
32
+ this.content += `*${this.escape(text)}*`;
33
+ return this;
34
+ }
35
+ /**
36
+ * 添加加粗斜体文字
37
+ */
38
+ boldItalic(text) {
39
+ this.content += `***${this.escape(text)}***`;
40
+ return this;
41
+ }
42
+ /**
43
+ * 添加删除线文字
44
+ */
45
+ strikethrough(text) {
46
+ this.content += `~~${this.escape(text)}~~`;
47
+ return this;
48
+ }
49
+ /**
50
+ * 添加下划线文字
51
+ */
52
+ underline(text) {
53
+ this.content += `(ins)${this.escape(text)}(ins)`;
54
+ return this;
55
+ }
56
+ /**
57
+ * 添加剧透文字
58
+ */
59
+ spoiler(text) {
60
+ this.content += `(spl)${this.escape(text)}(spl)`;
61
+ return this;
62
+ }
63
+ /**
64
+ * 添加链接
65
+ * @param text 链接文字
66
+ * @param url 链接地址 (仅支持 http, https)
67
+ * @param preview 是否显示链接预览 (需要 text 和 url 完全一致)
68
+ */
69
+ link(text, url, preview = false) {
70
+ if (preview) {
71
+ this.content += `[${url}](${url})`;
72
+ }
73
+ else {
74
+ this.content += `[${this.escape(text)}](${url})`;
75
+ }
76
+ return this;
77
+ }
78
+ /**
79
+ * 添加分隔线
80
+ */
81
+ divider() {
82
+ this.content += '\n---\n';
83
+ return this;
84
+ }
85
+ /**
86
+ * 添加引用
87
+ */
88
+ quote(text) {
89
+ const lines = text.split('\n');
90
+ const quotedLines = lines.map((line) => `> ${line}`);
91
+ this.content += quotedLines.join('\n') + '\n\n';
92
+ return this;
93
+ }
94
+ /**
95
+ * 添加行内代码
96
+ */
97
+ inlineCode(code) {
98
+ this.content += `\`${code}\``;
99
+ return this;
100
+ }
101
+ /**
102
+ * 添加代码块
103
+ */
104
+ codeBlock(code, language) {
105
+ this.content += '```' + (language || '') + '\n' + code + '\n```\n';
106
+ return this;
107
+ }
108
+ /**
109
+ * 提及用户
110
+ */
111
+ mention(userId) {
112
+ this.content += `(met)${userId}(met)`;
113
+ return this;
114
+ }
115
+ /**
116
+ * @所有人
117
+ */
118
+ mentionAll() {
119
+ this.content += '(met)all(met)';
120
+ return this;
121
+ }
122
+ /**
123
+ * @所有在线用户
124
+ */
125
+ mentionHere() {
126
+ this.content += '(met)here(met)';
127
+ return this;
128
+ }
129
+ /**
130
+ * 提及频道
131
+ */
132
+ channel(channelId) {
133
+ this.content += `(chn)${channelId}(chn)`;
134
+ return this;
135
+ }
136
+ /**
137
+ * 提及角色
138
+ */
139
+ role(roleId) {
140
+ this.content += `(rol)${roleId}(rol)`;
141
+ return this;
142
+ }
143
+ /**
144
+ * 添加 Emoji 表情
145
+ */
146
+ emoji(emojiCode) {
147
+ this.content += `:${emojiCode}:`;
148
+ return this;
149
+ }
150
+ /**
151
+ * 添加服务器表情
152
+ */
153
+ guildEmoji(emojiName, emojiId) {
154
+ this.content += `(emj)${emojiName}(emj)[${emojiId}]`;
155
+ return this;
156
+ }
157
+ /**
158
+ * 添加换行
159
+ */
160
+ newline(count = 1) {
161
+ this.content += '\n'.repeat(count);
162
+ return this;
163
+ }
164
+ /**
165
+ * 转义特殊字符
166
+ */
167
+ escape(text) {
168
+ return text
169
+ .replace(/\\/g, '\\\\')
170
+ .replace(/\*/g, '\\*')
171
+ .replace(/_/g, '\\_')
172
+ .replace(/\[/g, '\\[')
173
+ .replace(/\]/g, '\\]')
174
+ .replace(/\(/g, '\\(')
175
+ .replace(/\)/g, '\\)')
176
+ .replace(/`/g, '\\`')
177
+ .replace(/~/g, '\\~')
178
+ .replace(/>/g, '\\>');
179
+ }
180
+ /**
181
+ * 构建最终的 KMarkdown 字符串
182
+ */
183
+ build() {
184
+ return this.content.trim();
185
+ }
186
+ /**
187
+ * 清空内容
188
+ */
189
+ clear() {
190
+ this.content = '';
191
+ return this;
192
+ }
193
+ /**
194
+ * 获取当前内容
195
+ */
196
+ toString() {
197
+ return this.content;
198
+ }
199
+ }
200
+ exports.KMarkdownBuilder = KMarkdownBuilder;
201
+ /**
202
+ * 创建 KMarkdown 构建器的快捷函数
203
+ */
204
+ function kmd() {
205
+ return new KMarkdownBuilder();
206
+ }
207
+ /**
208
+ * 预设的 KMarkdown 快捷方法
209
+ */
210
+ exports.KMarkdown = {
211
+ /**
212
+ * 加粗
213
+ */
214
+ bold: (text) => `**${text}**`,
215
+ /**
216
+ * 斜体
217
+ */
218
+ italic: (text) => `*${text}*`,
219
+ /**
220
+ * 加粗斜体
221
+ */
222
+ boldItalic: (text) => `***${text}***`,
223
+ /**
224
+ * 删除线
225
+ */
226
+ strikethrough: (text) => `~~${text}~~`,
227
+ /**
228
+ * 下划线
229
+ */
230
+ underline: (text) => `(ins)${text}(ins)`,
231
+ /**
232
+ * 剧透
233
+ */
234
+ spoiler: (text) => `(spl)${text}(spl)`,
235
+ /**
236
+ * 链接
237
+ */
238
+ link: (text, url) => `[${text}](${url})`,
239
+ /**
240
+ * 带预览的链接
241
+ */
242
+ linkWithPreview: (url) => `[${url}](${url})`,
243
+ /**
244
+ * @用户
245
+ */
246
+ mention: (userId) => `(met)${userId}(met)`,
247
+ /**
248
+ * @所有人
249
+ */
250
+ mentionAll: () => '(met)all(met)',
251
+ /**
252
+ * @在线用户
253
+ */
254
+ mentionHere: () => '(met)here(met)',
255
+ /**
256
+ * #频道
257
+ */
258
+ channel: (channelId) => `(chn)${channelId}(chn)`,
259
+ /**
260
+ * @角色
261
+ */
262
+ role: (roleId) => `(rol)${roleId}(rol)`,
263
+ /**
264
+ * Emoji 表情
265
+ */
266
+ emoji: (code) => `:${code}:`,
267
+ /**
268
+ * 服务器表情
269
+ */
270
+ guildEmoji: (name, id) => `(emj)${name}(emj)[${id}]`,
271
+ /**
272
+ * 行内代码
273
+ */
274
+ inlineCode: (code) => `\`${code}\``,
275
+ /**
276
+ * 代码块
277
+ */
278
+ codeBlock: (code, language) => '```' + (language || '') + '\n' + code + '\n```',
279
+ /**
280
+ * 引用
281
+ */
282
+ quote: (text) => text
283
+ .split('\n')
284
+ .map((line) => `> ${line}`)
285
+ .join('\n'),
286
+ /**
287
+ * 分隔线
288
+ */
289
+ divider: () => '---',
290
+ };
291
+ //# sourceMappingURL=kmarkdown-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kmarkdown-builder.js","sourceRoot":"","sources":["../../src/utils/kmarkdown-builder.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "kook-sdk",
3
+ "version": "1.0.0",
4
+ "description": "KOOK Bot SDK for Node.js - 开黑啦机器人开发工具包",
5
+ "main": "dist/index.js",
6
+ "types": "dist/index.d.ts",
7
+ "files": [
8
+ "dist/",
9
+ "README.md",
10
+ "LICENSE"
11
+ ],
12
+ "scripts": {
13
+ "build": "tsc",
14
+ "dev": "ts-node examples/bot-example.ts",
15
+ "lint": "eslint src/**/*.ts",
16
+ "typecheck": "tsc --noEmit",
17
+ "prepublishOnly": "npm run build"
18
+ },
19
+ "keywords": [
20
+ "kook",
21
+ "开黑啦",
22
+ "bot",
23
+ "sdk",
24
+ "chatbot",
25
+ "websocket",
26
+ "kmarkdown",
27
+ "card-message"
28
+ ],
29
+ "author": "",
30
+ "license": "MIT",
31
+ "repository": {
32
+ "type": "git",
33
+ "url": "git+https://github.com/ponyidc/kook-sdk.git"
34
+ },
35
+ "bugs": {
36
+ "url": "https://github.com/ponyidc/kook-sdk/issues"
37
+ },
38
+ "homepage": "https://github.com/ponyidc/kook-sdk#readme",
39
+ "engines": {
40
+ "node": ">=16.0.0"
41
+ },
42
+ "dependencies": {
43
+ "axios": "^1.6.2",
44
+ "form-data": "^4.0.5",
45
+ "ws": "^8.14.2"
46
+ },
47
+ "devDependencies": {
48
+ "@types/node": "^20.10.4",
49
+ "@types/ws": "^8.5.10",
50
+ "@typescript-eslint/eslint-plugin": "^6.14.0",
51
+ "@typescript-eslint/parser": "^6.14.0",
52
+ "eslint": "^8.55.0",
53
+ "ts-node": "^10.9.2",
54
+ "typescript": "^5.3.3"
55
+ }
56
+ }