node-karin 0.0.3 → 0.1.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.
Files changed (105) hide show
  1. package/LICENSE +674 -674
  2. package/README.md +57 -57
  3. package/config/defSet/App.yaml +37 -37
  4. package/config/defSet/config.yaml +43 -43
  5. package/config/defSet/group.yaml +18 -18
  6. package/config/defSet/pm2.yaml +21 -21
  7. package/config/defSet/server.yaml +42 -42
  8. package/config/view/App.yaml +74 -74
  9. package/config/view/config.yaml +100 -100
  10. package/config/view/group.yaml +62 -62
  11. package/config/view/pm2.yaml +41 -41
  12. package/config/view/redis.yaml +25 -25
  13. package/config/view/server.yaml +93 -93
  14. package/lib/adapter/onebot/onebot11.d.ts +430 -430
  15. package/lib/adapter/onebot/onebot11.js +1265 -1302
  16. package/lib/core/init.js +4 -4
  17. package/lib/core/karin.d.ts +72 -72
  18. package/lib/core/karin.js +51 -51
  19. package/lib/core/listener.d.ts +121 -121
  20. package/lib/core/listener.js +178 -178
  21. package/lib/core/plugin.app.d.ts +15 -15
  22. package/lib/core/plugin.app.js +18 -18
  23. package/lib/core/plugin.d.ts +182 -182
  24. package/lib/core/plugin.js +132 -132
  25. package/lib/core/plugin.loader.d.ts +149 -149
  26. package/lib/core/plugin.loader.js +451 -451
  27. package/lib/core/server.d.ts +26 -26
  28. package/lib/core/server.js +209 -209
  29. package/lib/db/level.d.ts +20 -20
  30. package/lib/db/level.js +36 -36
  31. package/lib/db/redis.d.ts +41 -41
  32. package/lib/db/redis.js +131 -131
  33. package/lib/db/redis_level.d.ts +113 -113
  34. package/lib/db/redis_level.js +274 -274
  35. package/lib/event/event.d.ts +138 -138
  36. package/lib/event/event.handler.d.ts +29 -29
  37. package/lib/event/event.handler.js +138 -138
  38. package/lib/event/event.js +120 -120
  39. package/lib/event/message.d.ts +102 -102
  40. package/lib/event/message.handler.d.ts +25 -25
  41. package/lib/event/message.handler.js +237 -237
  42. package/lib/event/message.js +69 -69
  43. package/lib/event/notice.d.ts +49 -49
  44. package/lib/event/notice.js +14 -14
  45. package/lib/event/request.d.ts +49 -49
  46. package/lib/event/request.js +14 -14
  47. package/lib/event/review.handler.d.ts +54 -54
  48. package/lib/event/review.handler.js +374 -374
  49. package/lib/index.d.ts +23 -23
  50. package/lib/index.js +39 -40
  51. package/lib/renderer/app.d.ts +53 -53
  52. package/lib/renderer/app.js +88 -88
  53. package/lib/renderer/base.d.ts +30 -30
  54. package/lib/renderer/base.js +68 -68
  55. package/lib/renderer/client.d.ts +30 -30
  56. package/lib/renderer/client.js +155 -155
  57. package/lib/renderer/http.d.ts +19 -19
  58. package/lib/renderer/http.js +50 -50
  59. package/lib/renderer/server.d.ts +42 -42
  60. package/lib/renderer/server.js +110 -110
  61. package/lib/renderer/wormhole.d.ts +1 -1
  62. package/lib/renderer/wormhole.js +154 -154
  63. package/lib/types/adapter.d.ts +575 -575
  64. package/lib/types/adapter.js +1 -1
  65. package/lib/types/config.d.ts +327 -327
  66. package/lib/types/config.js +1 -1
  67. package/lib/types/element.d.ts +576 -576
  68. package/lib/types/element.js +1 -1
  69. package/lib/types/index.d.ts +8 -8
  70. package/lib/types/index.js +8 -8
  71. package/lib/types/logger.d.ts +109 -109
  72. package/lib/types/logger.js +1 -1
  73. package/lib/types/onebots11.d.ts +1371 -1371
  74. package/lib/types/onebots11.js +1 -1
  75. package/lib/types/plugin.d.ts +282 -282
  76. package/lib/types/plugin.js +1 -1
  77. package/lib/types/render.d.ts +111 -111
  78. package/lib/types/render.js +1 -1
  79. package/lib/types/reply.d.ts +40 -40
  80. package/lib/types/reply.js +1 -1
  81. package/lib/types/types.d.ts +898 -898
  82. package/lib/types/types.js +1 -1
  83. package/lib/utils/YamlEditor.d.ts +62 -62
  84. package/lib/utils/YamlEditor.js +197 -197
  85. package/lib/utils/button.d.ts +49 -49
  86. package/lib/utils/button.js +75 -75
  87. package/lib/utils/common.d.ts +123 -123
  88. package/lib/utils/common.js +396 -396
  89. package/lib/utils/config.d.ts +72 -72
  90. package/lib/utils/config.js +254 -254
  91. package/lib/utils/exec.d.ts +22 -22
  92. package/lib/utils/exec.js +36 -36
  93. package/lib/utils/ffmpeg.d.ts +12 -12
  94. package/lib/utils/ffmpeg.js +25 -25
  95. package/lib/utils/handler.d.ts +76 -76
  96. package/lib/utils/handler.js +98 -98
  97. package/lib/utils/logger.d.ts +3 -3
  98. package/lib/utils/logger.js +104 -104
  99. package/lib/utils/segment.d.ts +276 -276
  100. package/lib/utils/segment.js +420 -420
  101. package/lib/utils/update.d.ts +69 -69
  102. package/lib/utils/update.js +145 -145
  103. package/lib/utils/updateVersion.d.ts +33 -33
  104. package/lib/utils/updateVersion.js +140 -140
  105. package/package.json +92 -91
@@ -1,448 +1,448 @@
1
- export default new (class Segment {
2
- /**
3
- * 纯文本
4
- * @param text - 文本内容
5
- * @returns {TextElement} 纯文本元素
6
- */
7
- text (text) {
8
- return {
9
- type: 'text',
10
- text: text + '',
11
- }
1
+ export default new (class Segment {
2
+ /**
3
+ * 纯文本
4
+ * @param text - 文本内容
5
+ * @returns {TextElement} 纯文本元素
6
+ */
7
+ text (text) {
8
+ return {
9
+ type: 'text',
10
+ text: text + '',
11
+ }
12
12
  }
13
-
14
- /**
15
- * 提及
16
- * 提供一个uid即可
17
- * @param uid - uid
18
- * @param uin - uin
19
- * @returns {AtElement} 提及元素
20
- */
21
- at (uid, uin) {
22
- return {
23
- type: 'at',
24
- uid: uid + '',
25
- uin: (uin || '') + '',
26
- }
13
+
14
+ /**
15
+ * 提及
16
+ * 提供一个uid即可
17
+ * @param uid - uid
18
+ * @param uin - uin
19
+ * @returns {AtElement} 提及元素
20
+ */
21
+ at (uid, uin) {
22
+ return {
23
+ type: 'at',
24
+ uid: uid + '',
25
+ uin: (uin || '') + '',
26
+ }
27
27
  }
28
-
29
- /**
30
- * 表情
31
- * @param id - 表情ID
32
- * @param is_big - 是否大表情,默认不是
33
- * @returns {FaceElement} 表情元素
34
- */
35
- face (id, is_big = false) {
36
- return {
37
- type: 'face',
38
- id: Number(id),
39
- is_big,
40
- }
28
+
29
+ /**
30
+ * 表情
31
+ * @param id - 表情ID
32
+ * @param is_big - 是否大表情,默认不是
33
+ * @returns {FaceElement} 表情元素
34
+ */
35
+ face (id, is_big = false) {
36
+ return {
37
+ type: 'face',
38
+ id: Number(id),
39
+ is_big,
40
+ }
41
41
  }
42
-
43
- /**
44
- * 弹射表情
45
- * @param id - 表情ID
46
- * @param count - 数量
47
- * @returns {BubbleFaceElement} 弹射表情元素
48
- */
49
- bubble_face (id, count = 1) {
50
- return {
51
- type: 'bubble_face',
52
- id: Number(id),
53
- count: Number(count),
54
- }
42
+
43
+ /**
44
+ * 弹射表情
45
+ * @param id - 表情ID
46
+ * @param count - 数量
47
+ * @returns {BubbleFaceElement} 弹射表情元素
48
+ */
49
+ bubble_face (id, count = 1) {
50
+ return {
51
+ type: 'bubble_face',
52
+ id: Number(id),
53
+ count: Number(count),
54
+ }
55
55
  }
56
-
57
- /**
58
- * 引用回复
59
- * @param message_id - 消息ID
60
- * @returns {ReplyElement} 引用回复元素
61
- */
62
- reply (message_id) {
63
- return {
64
- type: 'reply',
65
- message_id: message_id + '',
66
- }
56
+
57
+ /**
58
+ * 引用回复
59
+ * @param message_id - 消息ID
60
+ * @returns {ReplyElement} 引用回复元素
61
+ */
62
+ reply (message_id) {
63
+ return {
64
+ type: 'reply',
65
+ message_id: message_id + '',
66
+ }
67
67
  }
68
-
69
- /**
70
- * 图片
71
- * - 一般情况提供一个file参数即可,其他参数一般为收到的消息中的参数
72
- * @param file - 图片URL或路径、Base64
73
- * @param options - 图片类型、名称、MD5、子类型、宽度、高度
74
- * @returns {ImageElement} 图片元素
75
- */
76
- image (file, options = {}) {
77
- const file_type = options.file_type || 'original'
78
- const name = options.name || ''
79
- const md5 = options.md5 || ''
80
- const sub_type = options.sub_type || 0
81
- const width = options.width || 0
82
- const height = options.height || 0
83
- return {
84
- type: 'image',
85
- file,
86
- file_type,
87
- name,
88
- md5,
89
- sub_type,
90
- width,
91
- height,
92
- }
68
+
69
+ /**
70
+ * 图片
71
+ * - 一般情况提供一个file参数即可,其他参数一般为收到的消息中的参数
72
+ * @param file - 图片URL或路径、Base64
73
+ * @param options - 图片类型、名称、MD5、子类型、宽度、高度
74
+ * @returns {ImageElement} 图片元素
75
+ */
76
+ image (file, options = {}) {
77
+ const file_type = options.file_type || 'original'
78
+ const name = options.name || ''
79
+ const md5 = options.md5 || ''
80
+ const sub_type = options.sub_type || 0
81
+ const width = options.width || 0
82
+ const height = options.height || 0
83
+ return {
84
+ type: 'image',
85
+ file,
86
+ file_type,
87
+ name,
88
+ md5,
89
+ sub_type,
90
+ width,
91
+ height,
92
+ }
93
93
  }
94
-
95
- /**
96
- * 语音
97
- * @description 即将废弃,请使用voice
98
- * @param file - 语音URL或路径、Base64
99
- * @param magic - 是否魔法语音,默认为 false
100
- * @param md5 - 语音md5
101
- * @param name - 语音名称
102
- * @returns {VoiceElement} 语音元素
103
- */
104
- record (file, magic = false, md5 = '', name = '') {
105
- return {
106
- type: 'voice',
107
- file,
108
- magic,
109
- md5,
110
- name,
111
- }
94
+
95
+ /**
96
+ * 语音
97
+ * @description 即将废弃,请使用voice
98
+ * @param file - 语音URL或路径、Base64
99
+ * @param magic - 是否魔法语音,默认为 false
100
+ * @param md5 - 语音md5
101
+ * @param name - 语音名称
102
+ * @returns {VoiceElement} 语音元素
103
+ */
104
+ record (file, magic = false, md5 = '', name = '') {
105
+ return {
106
+ type: 'voice',
107
+ file,
108
+ magic,
109
+ md5,
110
+ name,
111
+ }
112
112
  }
113
-
114
- /**
115
- * 语音
116
- * @param file - 语音URL或路径、Base64
117
- * @param magic - 是否魔法语音,默认为 false
118
- * @param md5 - 语音md5
119
- * @param name - 语音名称
120
- * @returns {VoiceElement} 语音元素
121
- */
122
- voice (file, magic = false, md5 = '', name = '') {
123
- return {
124
- type: 'voice',
125
- file,
126
- magic,
127
- md5,
128
- name,
129
- }
113
+
114
+ /**
115
+ * 语音
116
+ * @param file - 语音URL或路径、Base64
117
+ * @param magic - 是否魔法语音,默认为 false
118
+ * @param md5 - 语音md5
119
+ * @param name - 语音名称
120
+ * @returns {VoiceElement} 语音元素
121
+ */
122
+ voice (file, magic = false, md5 = '', name = '') {
123
+ return {
124
+ type: 'voice',
125
+ file,
126
+ magic,
127
+ md5,
128
+ name,
129
+ }
130
130
  }
131
-
132
- /**
133
- * 视频
134
- * @param file - 视频URL或路径、Base64
135
- * @param md5 - 视频md5
136
- * @param name - 视频名称
137
- * @returns {VideoElement} 视频元素
138
- */
139
- video (file, md5 = '', name = '') {
140
- return {
141
- type: 'video',
142
- file,
143
- md5,
144
- name,
145
- }
131
+
132
+ /**
133
+ * 视频
134
+ * @param file - 视频URL或路径、Base64
135
+ * @param md5 - 视频md5
136
+ * @param name - 视频名称
137
+ * @returns {VideoElement} 视频元素
138
+ */
139
+ video (file, md5 = '', name = '') {
140
+ return {
141
+ type: 'video',
142
+ file,
143
+ md5,
144
+ name,
145
+ }
146
146
  }
147
-
148
- /**
149
- * 篮球
150
- * @param id - 篮球ID
151
- * @returns {BasketballElement} 篮球元素
152
- */
153
- basketball (id) {
154
- return {
155
- type: 'basketball',
156
- id,
157
- }
147
+
148
+ /**
149
+ * 篮球
150
+ * @param id - 篮球ID
151
+ * @returns {BasketballElement} 篮球元素
152
+ */
153
+ basketball (id) {
154
+ return {
155
+ type: 'basketball',
156
+ id,
157
+ }
158
158
  }
159
-
160
- /**
161
- * 骰子
162
- * @param id - 骰子ID
163
- * @returns {DiceElement} 骰子元素
164
- */
165
- dice (id) {
166
- return {
167
- type: 'dice',
168
- id,
169
- }
159
+
160
+ /**
161
+ * 骰子
162
+ * @param id - 骰子ID
163
+ * @returns {DiceElement} 骰子元素
164
+ */
165
+ dice (id) {
166
+ return {
167
+ type: 'dice',
168
+ id,
169
+ }
170
170
  }
171
-
172
- /**
173
- * 石头剪刀布
174
- * @param id - 石头剪刀布ID
175
- * @returns {RpsElement} 石头剪刀布元素
176
- */
177
- rps (id) {
178
- return {
179
- type: 'rps',
180
- id,
181
- }
171
+
172
+ /**
173
+ * 石头剪刀布
174
+ * @param id - 石头剪刀布ID
175
+ * @returns {RpsElement} 石头剪刀布元素
176
+ */
177
+ rps (id) {
178
+ return {
179
+ type: 'rps',
180
+ id,
181
+ }
182
182
  }
183
-
184
- /**
185
- * 戳一戳
186
- * @param id - 戳一戳ID
187
- * @param poke_type - 戳一戳类型
188
- * @param strength - 戳一戳强度(1-5 默认1)
189
- * @returns {PokeElement} 戳一戳元素
190
- */
191
- poke (id, poke_type, strength = 1) {
192
- return {
193
- type: 'poke',
194
- id,
195
- poke_type,
196
- strength,
197
- }
183
+
184
+ /**
185
+ * 戳一戳
186
+ * @param id - 戳一戳ID
187
+ * @param poke_type - 戳一戳类型
188
+ * @param strength - 戳一戳强度(1-5 默认1)
189
+ * @returns {PokeElement} 戳一戳元素
190
+ */
191
+ poke (id, poke_type, strength = 1) {
192
+ return {
193
+ type: 'poke',
194
+ id,
195
+ poke_type,
196
+ strength,
197
+ }
198
198
  }
199
-
200
- /**
201
- * 自定义音乐
202
- * @param url - 跳转链接
203
- * @param audio - 音乐音频链接
204
- * @param title - 标题
205
- * @param author - 歌手
206
- * @param pic - 封面
207
- * @returns {CustomMusicElemen} 自定义音乐元素
208
- */
209
- customMusic (url, audio, title, author, pic) {
210
- return {
211
- type: 'music',
212
- platform: 'custom',
213
- url,
214
- audio,
215
- title,
216
- author,
217
- pic,
218
- }
199
+
200
+ /**
201
+ * 自定义音乐
202
+ * @param url - 跳转链接
203
+ * @param audio - 音乐音频链接
204
+ * @param title - 标题
205
+ * @param author - 歌手
206
+ * @param pic - 封面
207
+ * @returns {CustomMusicElemen} 自定义音乐元素
208
+ */
209
+ customMusic (url, audio, title, author, pic) {
210
+ return {
211
+ type: 'music',
212
+ platform: 'custom',
213
+ url,
214
+ audio,
215
+ title,
216
+ author,
217
+ pic,
218
+ }
219
219
  }
220
-
221
- /**
222
- * 音乐
223
- * @param platform - 音乐平台
224
- * @param id - 音乐ID
225
- * @returns {MusicElement} 音乐元素
226
- */
227
- music (platform, id) {
228
- return {
229
- type: 'music',
230
- platform,
231
- id,
232
- }
220
+
221
+ /**
222
+ * 音乐
223
+ * @param platform - 音乐平台
224
+ * @param id - 音乐ID
225
+ * @returns {MusicElement} 音乐元素
226
+ */
227
+ music (platform, id) {
228
+ return {
229
+ type: 'music',
230
+ platform,
231
+ id,
232
+ }
233
233
  }
234
-
235
- /**
236
- * 天气
237
- * @param city - 城市名称
238
- * @param code - 城市代码
239
- * @returns {WeatherElement} 天气元素
240
- */
241
- weather (city, code) {
242
- return {
243
- type: 'weather',
244
- city,
245
- code,
246
- }
234
+
235
+ /**
236
+ * 天气
237
+ * @param city - 城市名称
238
+ * @param code - 城市代码
239
+ * @returns {WeatherElement} 天气元素
240
+ */
241
+ weather (city, code) {
242
+ return {
243
+ type: 'weather',
244
+ city,
245
+ code,
246
+ }
247
247
  }
248
-
249
- /**
250
- * 位置
251
- * @param lat - 纬度
252
- * @param lon - 经度
253
- * @param title - 标题
254
- * @param address - 地址
255
- * @returns {LocationElement} 位置元素
256
- */
257
- location (lat, lon, title, address) {
258
- return {
259
- type: 'location',
260
- lat,
261
- lon,
262
- title,
263
- address,
264
- }
248
+
249
+ /**
250
+ * 位置
251
+ * @param lat - 纬度
252
+ * @param lon - 经度
253
+ * @param title - 标题
254
+ * @param address - 地址
255
+ * @returns {LocationElement} 位置元素
256
+ */
257
+ location (lat, lon, title, address) {
258
+ return {
259
+ type: 'location',
260
+ lat,
261
+ lon,
262
+ title,
263
+ address,
264
+ }
265
265
  }
266
-
267
- /**
268
- * 分享
269
- * @param url - 分享链接
270
- * @param title - 分享标题
271
- * @param content - 分享内容
272
- * @param image - 分享图片
273
- * @returns {ShareElement} 分享元素
274
- */
275
- share (url, title, content, image) {
276
- return {
277
- type: 'share',
278
- url,
279
- title,
280
- content,
281
- image,
282
- }
266
+
267
+ /**
268
+ * 分享
269
+ * @param url - 分享链接
270
+ * @param title - 分享标题
271
+ * @param content - 分享内容
272
+ * @param image - 分享图片
273
+ * @returns {ShareElement} 分享元素
274
+ */
275
+ share (url, title, content, image) {
276
+ return {
277
+ type: 'share',
278
+ url,
279
+ title,
280
+ content,
281
+ image,
282
+ }
283
283
  }
284
-
285
- /**
286
- * 礼物
287
- * @param qq - QQ 号
288
- * @param id - 礼物ID
289
- * @returns {GiftElement} 礼物元素
290
- */
291
- gift (qq, id) {
292
- return {
293
- type: 'gift',
294
- qq,
295
- id,
296
- }
284
+
285
+ /**
286
+ * 礼物
287
+ * @param qq - QQ 号
288
+ * @param id - 礼物ID
289
+ * @returns {GiftElement} 礼物元素
290
+ */
291
+ gift (qq, id) {
292
+ return {
293
+ type: 'gift',
294
+ qq,
295
+ id,
296
+ }
297
297
  }
298
-
299
- /**
300
- * 商城表情
301
- * @param id - 表情ID
302
- * @returns {MarketFaceElement} 商城表情元素
303
- */
304
- marketFace (id) {
305
- return {
306
- type: 'market_face',
307
- id,
308
- }
298
+
299
+ /**
300
+ * 商城表情
301
+ * @param id - 表情ID
302
+ * @returns {MarketFaceElement} 商城表情元素
303
+ */
304
+ marketFace (id) {
305
+ return {
306
+ type: 'market_face',
307
+ id,
308
+ }
309
309
  }
310
-
311
- /**
312
- * 转发
313
- * @param res_id - 资源ID
314
- * @param uniseq - 序列号(可能不对?)
315
- * @param summary - 摘要
316
- * @param description - 描述
317
- * @returns {ForwardElement} 转发元素
318
- */
319
- forward (res_id, uniseq, summary, description) {
320
- return {
321
- type: 'forward',
322
- res_id,
323
- uniseq: uniseq || '',
324
- summary: summary || '',
325
- description: description || '',
326
- }
310
+
311
+ /**
312
+ * 转发
313
+ * @param res_id - 资源ID
314
+ * @param uniseq - 序列号(可能不对?)
315
+ * @param summary - 摘要
316
+ * @param description - 描述
317
+ * @returns {ForwardElement} 转发元素
318
+ */
319
+ forward (res_id, uniseq, summary, description) {
320
+ return {
321
+ type: 'forward',
322
+ res_id,
323
+ uniseq: uniseq || '',
324
+ summary: summary || '',
325
+ description: description || '',
326
+ }
327
327
  }
328
-
329
- /**
330
- * 分享名片
331
- * @param scene - 分享类型
332
- * @param peer - 被推荐人的QQ号或者被推荐群的群号
333
- * @returns {ContactElement} 分享名片元素
334
- */
335
- contact (scene, peer) {
336
- return {
337
- type: 'contact',
338
- scene,
339
- peer,
340
- }
328
+
329
+ /**
330
+ * 分享名片
331
+ * @param scene - 分享类型
332
+ * @param peer - 被推荐人的QQ号或者被推荐群的群号
333
+ * @returns {ContactElement} 分享名片元素
334
+ */
335
+ contact (scene, peer) {
336
+ return {
337
+ type: 'contact',
338
+ scene,
339
+ peer,
340
+ }
341
341
  }
342
-
343
- /**
344
- * JSON
345
- * @param data - JSON序列化过的字符串
346
- * @returns {JsonElement} JSON元素
347
- */
348
- json (data) {
349
- return {
350
- type: 'json',
351
- data,
352
- }
342
+
343
+ /**
344
+ * JSON
345
+ * @param data - JSON序列化过的字符串
346
+ * @returns {JsonElement} JSON元素
347
+ */
348
+ json (data) {
349
+ return {
350
+ type: 'json',
351
+ data,
352
+ }
353
353
  }
354
-
355
- /**
356
- * XML
357
- * @param data - XML字符串
358
- * @returns {XmlElement} XML元素
359
- */
360
- xml (data) {
361
- return {
362
- type: 'xml',
363
- data,
364
- }
354
+
355
+ /**
356
+ * XML
357
+ * @param data - XML字符串
358
+ * @returns {XmlElement} XML元素
359
+ */
360
+ xml (data) {
361
+ return {
362
+ type: 'xml',
363
+ data,
364
+ }
365
365
  }
366
-
367
- /**
368
- * 文件
369
- */
370
- file (options) {
371
- return {
372
- type: 'file',
373
- file: options.url,
374
- name: options.name || '',
375
- size: options.size || 0,
376
- expire_time: options.expire_time || 0,
377
- id: options.id || '',
378
- url: options.url,
379
- biz: options.biz || 0,
380
- sub_id: options.sub_id || '',
381
- md5: options.md5 || '',
382
- }
366
+
367
+ /**
368
+ * 文件
369
+ */
370
+ file (options) {
371
+ return {
372
+ type: 'file',
373
+ file: options.url,
374
+ name: options.name || '',
375
+ size: options.size || 0,
376
+ expire_time: options.expire_time || 0,
377
+ id: options.id || '',
378
+ url: options.url,
379
+ biz: options.biz || 0,
380
+ sub_id: options.sub_id || '',
381
+ md5: options.md5 || '',
382
+ }
383
383
  }
384
-
385
- /**
386
- * Markdown
387
- * @param content - 原生markdown内容
388
- * @returns {ContentElement} Markdown元素
389
- */
390
- markdown (
391
- /**
392
- * - 原生markdown内容 或 模板ID
393
- */
394
- content,
395
- /**
396
- * - 模板markdown参数 原生markdown内容时无效
397
- */
398
- params = []) {
399
- if (typeof content === 'string') {
400
- return {
401
- type: 'markdown',
402
- content,
403
- }
404
- }
405
- return {
406
- type: 'markdown',
407
- custom_template_id: content,
408
- params,
409
- }
384
+
385
+ /**
386
+ * Markdown
387
+ * @param content - 原生markdown内容
388
+ * @returns {ContentElement} Markdown元素
389
+ */
390
+ markdown (
391
+ /**
392
+ * - 原生markdown内容 或 模板ID
393
+ */
394
+ content,
395
+ /**
396
+ * - 模板markdown参数 原生markdown内容时无效
397
+ */
398
+ params = []) {
399
+ if (typeof content === 'string') {
400
+ return {
401
+ type: 'markdown',
402
+ content,
403
+ }
404
+ }
405
+ return {
406
+ type: 'markdown',
407
+ custom_template_id: content,
408
+ params,
409
+ }
410
410
  }
411
-
412
- /**
413
- * 按钮
414
- * @param data - 按钮数据
415
- * @returns {ButtonElement} 按钮元素
416
- */
417
- button (data) {
418
- return {
419
- type: 'button',
420
- data,
421
- }
411
+
412
+ /**
413
+ * 按钮
414
+ * @param data - 按钮数据
415
+ * @returns {ButtonElement} 按钮元素
416
+ */
417
+ button (data) {
418
+ return {
419
+ type: 'button',
420
+ data,
421
+ }
422
422
  }
423
-
424
- rows (data) {
425
- const rows = []
426
- if (!Array.isArray(data)) { data = [data] }
427
- for (const i of data) {
428
- rows.push(this.button(i))
429
- continue
430
- }
431
- return { type: 'rows', rows }
423
+
424
+ rows (data) {
425
+ const rows = []
426
+ if (!Array.isArray(data)) { data = [data] }
427
+ for (const i of data) {
428
+ rows.push(this.button(i))
429
+ continue
430
+ }
431
+ return { type: 'rows', rows }
432
432
  }
433
-
434
- /**
435
- * 转发自定义节点
436
- * @param user_id - 用户ID
437
- * @param nickname - 用户昵称
438
- * @param content - 节点内容
439
- */
440
- node (user_id, nickname, content) {
441
- return {
442
- type: 'node',
443
- user_id,
444
- nickname,
445
- content,
446
- }
447
- }
448
- })()
433
+
434
+ /**
435
+ * 转发自定义节点
436
+ * @param user_id - 用户ID
437
+ * @param nickname - 用户昵称
438
+ * @param content - 节点内容
439
+ */
440
+ node (user_id, nickname, content) {
441
+ return {
442
+ type: 'node',
443
+ user_id,
444
+ nickname,
445
+ content,
446
+ }
447
+ }
448
+ })()