node-karin 0.12.1 → 0.12.2-5.pr.206.24448f3

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 (244) hide show
  1. package/CHANGELOG.md +1029 -0
  2. package/LICENSE +21 -674
  3. package/README.md +15 -42
  4. package/default/comment/config.json +34 -0
  5. package/default/comment/friendDirect.json +10 -0
  6. package/default/comment/groupGuild.json +11 -0
  7. package/default/comment/server.json +17 -0
  8. package/default/config/config.yaml +78 -0
  9. package/default/config/friendDirect.yaml +31 -0
  10. package/default/config/groupGuild.yaml +70 -0
  11. package/default/config/pm2.yaml +21 -0
  12. package/default/config/redis.yaml +19 -0
  13. package/default/config/server.yaml +47 -0
  14. package/default/view/group.yaml +73 -0
  15. package/lib/index.js +38 -8
  16. package/package.json +128 -124
  17. package/packages/module/art-template.cjs +11 -0
  18. package/packages/module/art-template.d.ts +1 -0
  19. package/packages/module/axios.cjs +22 -0
  20. package/packages/module/axios.d.ts +2 -0
  21. package/packages/module/chalk.cjs +22 -0
  22. package/packages/module/chalk.d.ts +2 -0
  23. package/packages/module/chokidar.cjs +22 -0
  24. package/packages/module/chokidar.d.ts +2 -0
  25. package/packages/module/commander.cjs +35 -0
  26. package/packages/module/commander.d.ts +3 -0
  27. package/packages/module/commander.js +3 -0
  28. package/packages/module/express.cjs +112 -0
  29. package/packages/module/express.d.ts +1 -0
  30. package/packages/module/express.js +1 -0
  31. package/packages/module/level.cjs +22 -0
  32. package/packages/module/level.d.ts +2 -0
  33. package/packages/module/lodash.cjs +11 -0
  34. package/packages/module/lodash.d.ts +1 -0
  35. package/packages/module/log4js.cjs +22 -0
  36. package/packages/module/log4js.d.ts +2 -0
  37. package/packages/module/moment.cjs +11 -0
  38. package/packages/module/moment.d.ts +1 -0
  39. package/packages/module/node-schedule.cjs +22 -0
  40. package/packages/module/node-schedule.d.ts +2 -0
  41. package/packages/module/redis.cjs +22 -0
  42. package/packages/module/redis.d.ts +2 -0
  43. package/packages/module/ws.cjs +28 -0
  44. package/packages/module/ws.d.ts +1 -0
  45. package/packages/module/ws.js +1 -0
  46. package/packages/module/yaml.cjs +22 -0
  47. package/packages/module/yaml.d.ts +2 -0
  48. package/config/defSet/App.yaml +0 -42
  49. package/config/defSet/config.yaml +0 -65
  50. package/config/defSet/group.yaml +0 -56
  51. package/config/defSet/pm2.yaml +0 -21
  52. package/config/defSet/redis.yaml +0 -18
  53. package/config/defSet/server.yaml +0 -42
  54. package/config/view/group.yaml +0 -92
  55. package/lib/adapter/index.d.ts +0 -2
  56. package/lib/adapter/index.js +0 -2
  57. package/lib/adapter/input/index.d.ts +0 -78
  58. package/lib/adapter/input/index.js +0 -205
  59. package/lib/adapter/onebot/11/convert.d.ts +0 -12
  60. package/lib/adapter/onebot/11/convert.js +0 -167
  61. package/lib/adapter/onebot/11/event.d.ts +0 -25
  62. package/lib/adapter/onebot/11/event.js +0 -442
  63. package/lib/adapter/onebot/11/index.d.ts +0 -508
  64. package/lib/adapter/onebot/11/index.js +0 -1047
  65. package/lib/cli/index.d.ts +0 -92
  66. package/lib/cli/index.js +0 -307
  67. package/lib/cli/init.d.ts +0 -2
  68. package/lib/cli/init.js +0 -22
  69. package/lib/cli/karin.d.ts +0 -2
  70. package/lib/cli/karin.js +0 -16
  71. package/lib/cli/pkg.d.ts +0 -4
  72. package/lib/cli/pkg.js +0 -14
  73. package/lib/cli/start.d.ts +0 -1
  74. package/lib/cli/start.js +0 -8
  75. package/lib/core/index.d.ts +0 -10
  76. package/lib/core/index.js +0 -10
  77. package/lib/core/init/config.d.ts +0 -43
  78. package/lib/core/init/config.js +0 -201
  79. package/lib/core/init/dir.d.ts +0 -4
  80. package/lib/core/init/dir.js +0 -7
  81. package/lib/core/init/init.d.ts +0 -1
  82. package/lib/core/init/init.js +0 -47
  83. package/lib/core/karin/karin.d.ts +0 -198
  84. package/lib/core/karin/karin.js +0 -226
  85. package/lib/core/listener/listener.d.ts +0 -145
  86. package/lib/core/listener/listener.js +0 -235
  87. package/lib/core/plugin/base.d.ts +0 -156
  88. package/lib/core/plugin/base.js +0 -131
  89. package/lib/core/plugin/loader.d.ts +0 -141
  90. package/lib/core/plugin/loader.js +0 -618
  91. package/lib/core/process/process.d.ts +0 -18
  92. package/lib/core/process/process.js +0 -96
  93. package/lib/core/server/server.d.ts +0 -25
  94. package/lib/core/server/server.js +0 -295
  95. package/lib/db/index.d.ts +0 -2
  96. package/lib/db/index.js +0 -2
  97. package/lib/db/level/level.d.ts +0 -19
  98. package/lib/db/level/level.js +0 -36
  99. package/lib/db/redis/redis.d.ts +0 -2
  100. package/lib/db/redis/redis.js +0 -135
  101. package/lib/db/redis/redis_level.d.ts +0 -112
  102. package/lib/db/redis/redis_level.js +0 -281
  103. package/lib/event/handler/base.d.ts +0 -42
  104. package/lib/event/handler/base.js +0 -200
  105. package/lib/event/handler/message.d.ts +0 -25
  106. package/lib/event/handler/message.js +0 -302
  107. package/lib/event/handler/notice.d.ts +0 -18
  108. package/lib/event/handler/notice.js +0 -214
  109. package/lib/event/handler/request.d.ts +0 -18
  110. package/lib/event/handler/request.js +0 -115
  111. package/lib/event/handler/review.d.ts +0 -55
  112. package/lib/event/handler/review.js +0 -386
  113. package/lib/event/index.d.ts +0 -5
  114. package/lib/event/index.js +0 -5
  115. package/lib/index.d.ts +0 -8
  116. package/lib/modules/art-template.d.ts +0 -1
  117. package/lib/modules/axios.d.ts +0 -2
  118. package/lib/modules/chalk.d.ts +0 -2
  119. package/lib/modules/chokidar.d.ts +0 -2
  120. package/lib/modules/commander.d.ts +0 -2
  121. package/lib/modules/commander.js +0 -2
  122. package/lib/modules/express.d.ts +0 -3
  123. package/lib/modules/express.js +0 -3
  124. package/lib/modules/level.d.ts +0 -2
  125. package/lib/modules/lodash.d.ts +0 -1
  126. package/lib/modules/log4js.d.ts +0 -2
  127. package/lib/modules/moment.d.ts +0 -1
  128. package/lib/modules/node-schedule.d.ts +0 -2
  129. package/lib/modules/redis.d.ts +0 -2
  130. package/lib/modules/ws.d.ts +0 -3
  131. package/lib/modules/ws.js +0 -3
  132. package/lib/modules/yaml.d.ts +0 -2
  133. package/lib/modules.d.ts +0 -15
  134. package/lib/modules.js +0 -15
  135. package/lib/render/app.d.ts +0 -56
  136. package/lib/render/app.js +0 -120
  137. package/lib/render/base.d.ts +0 -30
  138. package/lib/render/base.js +0 -69
  139. package/lib/render/client.d.ts +0 -41
  140. package/lib/render/client.js +0 -238
  141. package/lib/render/http.d.ts +0 -19
  142. package/lib/render/http.js +0 -50
  143. package/lib/render/index.d.ts +0 -6
  144. package/lib/render/index.js +0 -6
  145. package/lib/render/server.d.ts +0 -25
  146. package/lib/render/server.js +0 -101
  147. package/lib/render/wormhole.d.ts +0 -1
  148. package/lib/render/wormhole.js +0 -156
  149. package/lib/types/adapter/api.d.ts +0 -399
  150. package/lib/types/adapter/api.js +0 -1
  151. package/lib/types/adapter/base.d.ts +0 -560
  152. package/lib/types/adapter/base.js +0 -1
  153. package/lib/types/config/config.d.ts +0 -379
  154. package/lib/types/config/config.js +0 -1
  155. package/lib/types/element/element.d.ts +0 -565
  156. package/lib/types/element/element.js +0 -1
  157. package/lib/types/element/qqbot.d.ts +0 -123
  158. package/lib/types/element/qqbot.js +0 -1
  159. package/lib/types/event/contact.d.ts +0 -28
  160. package/lib/types/event/contact.js +0 -1
  161. package/lib/types/event/event.d.ts +0 -305
  162. package/lib/types/event/event.js +0 -1
  163. package/lib/types/event/index.d.ts +0 -12
  164. package/lib/types/event/index.js +0 -7
  165. package/lib/types/event/message.d.ts +0 -109
  166. package/lib/types/event/message.js +0 -74
  167. package/lib/types/event/notice.d.ts +0 -513
  168. package/lib/types/event/notice.js +0 -52
  169. package/lib/types/event/reply.d.ts +0 -50
  170. package/lib/types/event/reply.js +0 -1
  171. package/lib/types/event/request.d.ts +0 -126
  172. package/lib/types/event/request.js +0 -52
  173. package/lib/types/event/sender.d.ts +0 -44
  174. package/lib/types/event/sender.js +0 -1
  175. package/lib/types/index.d.ts +0 -13
  176. package/lib/types/index.js +0 -13
  177. package/lib/types/logger/logger.d.ts +0 -110
  178. package/lib/types/logger/logger.js +0 -1
  179. package/lib/types/onebot11/api.d.ts +0 -53
  180. package/lib/types/onebot11/api.js +0 -1
  181. package/lib/types/onebot11/event.d.ts +0 -619
  182. package/lib/types/onebot11/event.js +0 -2
  183. package/lib/types/onebot11/index.d.ts +0 -6
  184. package/lib/types/onebot11/index.js +0 -6
  185. package/lib/types/onebot11/params.d.ts +0 -609
  186. package/lib/types/onebot11/params.js +0 -1
  187. package/lib/types/onebot11/response.d.ts +0 -516
  188. package/lib/types/onebot11/response.js +0 -1
  189. package/lib/types/onebot11/segment.d.ts +0 -269
  190. package/lib/types/onebot11/segment.js +0 -1
  191. package/lib/types/onebot11/sender.d.ts +0 -59
  192. package/lib/types/onebot11/sender.js +0 -1
  193. package/lib/types/plugin/app.d.ts +0 -71
  194. package/lib/types/plugin/app.js +0 -1
  195. package/lib/types/plugin/plugin.d.ts +0 -473
  196. package/lib/types/plugin/plugin.js +0 -1
  197. package/lib/types/render/render.d.ts +0 -118
  198. package/lib/types/render/render.js +0 -1
  199. package/lib/types/type/global.d.ts +0 -25
  200. package/lib/types/type/global.js +0 -1
  201. package/lib/utils/common/common.d.ts +0 -236
  202. package/lib/utils/common/common.js +0 -708
  203. package/lib/utils/config/config.d.ts +0 -193
  204. package/lib/utils/config/config.js +0 -328
  205. package/lib/utils/config/updateVersion.d.ts +0 -33
  206. package/lib/utils/config/updateVersion.js +0 -145
  207. package/lib/utils/config/yamlEditor.d.ts +0 -101
  208. package/lib/utils/config/yamlEditor.js +0 -330
  209. package/lib/utils/core/handler.d.ts +0 -18
  210. package/lib/utils/core/handler.js +0 -46
  211. package/lib/utils/core/logger.d.ts +0 -3
  212. package/lib/utils/core/logger.js +0 -105
  213. package/lib/utils/core/segment.d.ts +0 -279
  214. package/lib/utils/core/segment.js +0 -451
  215. package/lib/utils/index.d.ts +0 -13
  216. package/lib/utils/index.js +0 -13
  217. package/lib/utils/tools/button.d.ts +0 -2
  218. package/lib/utils/tools/button.js +0 -27
  219. package/lib/utils/tools/exec.d.ts +0 -20
  220. package/lib/utils/tools/exec.js +0 -54
  221. package/lib/utils/tools/ffmpeg.d.ts +0 -12
  222. package/lib/utils/tools/ffmpeg.js +0 -25
  223. package/lib/utils/tools/restart.d.ts +0 -15
  224. package/lib/utils/tools/restart.js +0 -39
  225. package/lib/utils/tools/stop.d.ts +0 -7
  226. package/lib/utils/tools/stop.js +0 -13
  227. package/lib/utils/tools/update.d.ts +0 -67
  228. package/lib/utils/tools/update.js +0 -151
  229. /package/{config → default}/view/App.yaml +0 -0
  230. /package/{config → default}/view/config.yaml +0 -0
  231. /package/{config → default}/view/pm2.yaml +0 -0
  232. /package/{config → default}/view/redis.yaml +0 -0
  233. /package/{config → default}/view/server.yaml +0 -0
  234. /package/{lib/modules → packages/module}/art-template.js +0 -0
  235. /package/{lib/modules → packages/module}/axios.js +0 -0
  236. /package/{lib/modules → packages/module}/chalk.js +0 -0
  237. /package/{lib/modules → packages/module}/chokidar.js +0 -0
  238. /package/{lib/modules → packages/module}/level.js +0 -0
  239. /package/{lib/modules → packages/module}/lodash.js +0 -0
  240. /package/{lib/modules → packages/module}/log4js.js +0 -0
  241. /package/{lib/modules → packages/module}/moment.js +0 -0
  242. /package/{lib/modules → packages/module}/node-schedule.js +0 -0
  243. /package/{lib/modules → packages/module}/redis.js +0 -0
  244. /package/{lib/modules → packages/module}/yaml.js +0 -0
@@ -1,205 +0,0 @@
1
- import fs from 'fs';
2
- import { randomUUID } from 'crypto';
3
- import { listener } from '../../core/index.js';
4
- import { config, common, YamlEditor, logger } from '../../utils/index.js';
5
- import { KarinMessage } from '../../types/index.js';
6
- const { enable, msgToFile, token: oldToken, ip } = config.Config.AdapterInput;
7
- /**
8
- * - 标准输入输出适配器
9
- */
10
- export class AdapterInput {
11
- token;
12
- socket;
13
- account;
14
- adapter;
15
- version;
16
- constructor() {
17
- this.token = oldToken;
18
- this.account = { uid: 'input', uin: 'input', name: 'input' };
19
- this.adapter = { id: 'shell', name: 'input', type: 'internal', sub_type: 'internal', start_time: Date.now(), connect: '', index: 0 };
20
- this.version = { name: 'input', app_name: 'input', version: '1.0.0' };
21
- }
22
- get self_id() {
23
- return this.account.uid;
24
- }
25
- stdin() {
26
- if (oldToken === 'AdapterInput') {
27
- try {
28
- this.token = randomUUID();
29
- const yaml = new YamlEditor('./config/config/config.yaml');
30
- const data = yaml.get('AdapterInput');
31
- if (!data) {
32
- const yaml1 = new YamlEditor('./config/defSet/config.yaml');
33
- const data1 = yaml1.get('AdapterInput');
34
- data1.token = this.token;
35
- yaml.set('AdapterInput', data1);
36
- }
37
- else {
38
- data.token = this.token;
39
- yaml.set('AdapterInput', data);
40
- }
41
- yaml.save();
42
- }
43
- catch (e) {
44
- logger.error('AdapterInput token更换失败,请手动更换token');
45
- }
46
- }
47
- // 清空文件夹
48
- fs.readdirSync('./temp/input').forEach((file) => {
49
- fs.unlinkSync(`./temp/input/${file}`);
50
- });
51
- // 等1秒
52
- common.sleep(1000)
53
- .then(() => {
54
- /** 注册bot */
55
- const index = listener.addBot({ bot: this, type: this.adapter.type });
56
- if (index)
57
- this.adapter.index = index;
58
- });
59
- return this;
60
- }
61
- init() {
62
- process.stdin.on('data', data => this.#input(data.toString()));
63
- process.once('stdin.close', () => {
64
- process.stdin.removeAllListeners('data');
65
- process.stdin.once('stdin.open', () => this.init());
66
- });
67
- }
68
- logger(level, ...args) {
69
- logger.bot(level, this.account.uid || this.account.uin, ...args);
70
- }
71
- async #input(elements) {
72
- const message = {
73
- event: "message" /* EventType.Message */,
74
- sub_event: "private_message" /* MessageSubType.PrivateMessage */,
75
- event_id: `input.${Date.now()}`,
76
- self_id: 'input',
77
- user_id: 'input',
78
- time: Date.now(),
79
- message_id: `input.${Date.now()}`,
80
- message_seq: 0,
81
- sender: {
82
- uid: 'input',
83
- uin: 'input',
84
- nick: 'input',
85
- role: "unknown" /* Role.Unknown */,
86
- },
87
- elements: [{ type: 'text', text: elements }],
88
- contact: {
89
- scene: "friend" /* Scene.Private */,
90
- peer: 'input',
91
- sub_peer: '',
92
- },
93
- raw_event: { data: elements },
94
- };
95
- const e = new KarinMessage(message);
96
- e.bot = this;
97
- e.replyCallback = async (elements) => {
98
- this.SendMessage(e.contact, elements);
99
- return { message_id: e.message_id, message_time: Date.now(), raw_data: elements };
100
- };
101
- listener.emit('adapter.message', e);
102
- }
103
- async #MsgToFile(type, file) {
104
- if (!msgToFile)
105
- return '';
106
- // 判断是否为string 如果是则继续判断是否为url、path
107
- if (typeof file === 'string') {
108
- if (file.startsWith('http'))
109
- return file;
110
- if (common.exists(file))
111
- return file;
112
- }
113
- const buffer = await common.buffer(file);
114
- // 生成文件名 根据type生成不同的文件后缀
115
- const name = `${Date.now()}.${type === 'image' ? 'jpg' : type === 'record' ? 'mp3' : 'file'}`;
116
- fs.writeFileSync(`./temp/input/${name}`, buffer);
117
- return `[${type === 'image' ? '图片' : '语音'}: http://${ip}:${config.Server.http.port}/api/input?name=${name}&token=${this.token} ]`;
118
- }
119
- async GetVersion() {
120
- const data = this.version;
121
- delete data.name;
122
- return data;
123
- }
124
- async SendMessage(_contact, elements) {
125
- const text = [];
126
- for (const v of elements) {
127
- switch (v.type) {
128
- case 'at':
129
- text.push(`@${v.uid}`);
130
- break;
131
- case 'face':
132
- text.push(`[表情:${v.id}]`);
133
- break;
134
- case 'text':
135
- text.push(v.text);
136
- break;
137
- case 'image':
138
- case 'record':
139
- text.push(await this.#MsgToFile(v.type, v.file));
140
- break;
141
- default:
142
- text.push(`[未知消息类型:${JSON.stringify(v)}]`);
143
- }
144
- }
145
- this.logger('info', `${logger.green('Send private input: ')}${text.join('').replace(/\n/g, '\\n')}`);
146
- return { message_id: 'input' };
147
- }
148
- getAvatarUrl() {
149
- return 'https://p.qlogo.cn/gh/967068507/967068507/0';
150
- }
151
- getGroupAvatarUrl() {
152
- return 'https://p.qlogo.cn/gh/967068507/967068507/0';
153
- }
154
- async GetCurrentAccount() {
155
- return { account_uid: 'input', account_uin: 'input', account_name: 'input' };
156
- }
157
- GetEssenceMessageList() { throw new Error('Method not implemented.'); }
158
- DownloadForwardMessage() { throw new Error('Method not implemented.'); }
159
- SetEssenceMessage() { throw new Error('Method not implemented.'); }
160
- DeleteEssenceMessage() { throw new Error('Method not implemented.'); }
161
- SetFriendApplyResult() { throw new Error('Method not implemented.'); }
162
- SetGroupApplyResult() { throw new Error('Method not implemented.'); }
163
- SetInvitedJoinGroupResult() { throw new Error('Method not implemented.'); }
164
- ReactMessageWithEmoji() { throw new Error('Method not implemented.'); }
165
- UploadPrivateFile() { throw new Error('Method not implemented.'); }
166
- UploadGroupFile() { throw new Error('Method not implemented.'); }
167
- UploadForwardMessage() { throw new Error('Method not implemented.'); }
168
- sendForwardMessage() { throw new Error('Method not implemented.'); }
169
- SendMessageByResId() { throw new Error('Method not implemented.'); }
170
- RecallMessage() { throw new Error('Method not implemented.'); }
171
- GetMessage() { throw new Error('Method not implemented.'); }
172
- GetHistoryMessage() { throw new Error('Method not implemented.'); }
173
- VoteUser() { throw new Error('Method not implemented.'); }
174
- KickMember() { throw new Error('Method not implemented.'); }
175
- BanMember() { throw new Error('Method not implemented.'); }
176
- SetGroupWholeBan() { throw new Error('Method not implemented.'); }
177
- SetGroupAdmin() { throw new Error('Method not implemented.'); }
178
- ModifyMemberCard() { throw new Error('Method not implemented.'); }
179
- ModifyGroupName() { throw new Error('Method not implemented.'); }
180
- LeaveGroup() { throw new Error('Method not implemented.'); }
181
- SetGroupUniqueTitle() { throw new Error('Method not implemented.'); }
182
- GetStrangerProfileCard() { throw new Error('Method not implemented.'); }
183
- GetFriendList() { throw new Error('Method not implemented.'); }
184
- GetGroupInfo() { throw new Error('Method not implemented.'); }
185
- GetGroupList() { throw new Error('Method not implemented.'); }
186
- GetGroupMemberInfo() { throw new Error('Method not implemented.'); }
187
- GetGroupMemberList() { throw new Error('Method not implemented.'); }
188
- GetGroupHonor() { throw new Error('Method not implemented.'); }
189
- DownloadFile() { throw new Error('Method not implemented.'); }
190
- CreateFolder() { throw new Error('Method not implemented.'); }
191
- RenameFolder() { throw new Error('Method not implemented.'); }
192
- DeleteFolde() { throw new Error('Method not implemented.'); }
193
- DeleteFolder() { throw new Error('Method not implemented.'); }
194
- UploadFile() { throw new Error('Method not implemented.'); }
195
- DeleteFile() { throw new Error('Method not implemented.'); }
196
- GetFileSystemInfo() { throw new Error('Method not implemented.'); }
197
- GetFileList() { throw new Error('Method not implemented.'); }
198
- ModifyGroupRemark() { throw new Error('Method not implemented.'); }
199
- GetRemainCountAtAll() { throw new Error('Method not implemented.'); }
200
- GetProhibitedUserList() { throw new Error('Method not implemented.'); }
201
- PokeMember() { throw new Error('Method not implemented.'); }
202
- SetMessageReaded() { throw new Error('Method not implemented.'); }
203
- }
204
- if (enable)
205
- new AdapterInput().stdin().init();
@@ -1,12 +0,0 @@
1
- import { AdapterOneBot11 } from './index.js';
2
- import { KarinElement, OB11Segment } from '../../../types/index.js';
3
- /**
4
- * onebot11转karin
5
- * @return karin格式消息
6
- */
7
- export declare function AdapterConvertKarin(data: Array<OB11Segment>): Array<KarinElement>;
8
- /**
9
- * karin转onebot11
10
- * @param data karin格式消息
11
- */
12
- export declare function KarinConvertAdapter(data: Array<KarinElement>, bot: AdapterOneBot11): Array<OB11Segment>;
@@ -1,167 +0,0 @@
1
- import fs from 'fs';
2
- import { segment } from '../../../utils/index.js';
3
- /**
4
- * onebot11转karin
5
- * @return karin格式消息
6
- */
7
- export function AdapterConvertKarin(data) {
8
- const elements = [];
9
- for (const i of data) {
10
- switch (i.type) {
11
- case 'text':
12
- elements.push(segment.text(i.data.text));
13
- break;
14
- case 'face':
15
- elements.push(segment.face(Number(i.data.id)));
16
- break;
17
- case 'image':
18
- elements.push(segment.image(i.data.url || i.data.file, { file_type: i.data.type }));
19
- break;
20
- case 'record':
21
- elements.push(segment.record(i.data.url || i.data.file, i.data.magic === 1));
22
- break;
23
- case 'video':
24
- elements.push(segment.video(i.data.url || i.data.file));
25
- break;
26
- case 'at':
27
- elements.push(segment.at(i.data.qq, i.data.qq, i.data.name));
28
- break;
29
- case 'poke':
30
- elements.push(segment.poke(Number(i.data.id), Number(i.data.type)));
31
- break;
32
- case 'contact':
33
- elements.push(segment.contact(i.data.type === 'qq' ? 'friend' : 'group', i.data.id));
34
- break;
35
- case 'location':
36
- elements.push(segment.location(Number(i.data.lat), Number(i.data.lon), i.data.title || '', i.data.content || ''));
37
- break;
38
- case 'reply':
39
- elements.push(segment.reply(i.data.id));
40
- break;
41
- case 'forward':
42
- elements.push(segment.forward(i.data.id));
43
- break;
44
- case 'json':
45
- elements.push(segment.json(i.data.data));
46
- break;
47
- case 'xml':
48
- elements.push(segment.xml(i.data.data));
49
- break;
50
- default: {
51
- elements.push(segment.text(JSON.stringify(i)));
52
- }
53
- }
54
- }
55
- return elements;
56
- }
57
- /**
58
- * 处理非本地ws的文件
59
- * @param file 文件路径
60
- */
61
- function fileToBase64(file, bot) {
62
- if (!bot || !file.startsWith('file://') || !bot.adapter.connect)
63
- return file;
64
- const list = ['127.0.0.1', 'localhost'];
65
- const url = new URL(bot.adapter.connect);
66
- return list.includes(url.hostname) ? file : `base64://${fs.readFileSync(file.replace('file://', '')).toString('base64')}`;
67
- }
68
- /**
69
- * karin转onebot11
70
- * @param data karin格式消息
71
- */
72
- export function KarinConvertAdapter(data, bot) {
73
- const elements = [];
74
- for (const i of data) {
75
- const type = i.type;
76
- switch (i.type) {
77
- case "text" /* OB11SegmentType.Text */:
78
- elements.push({ type, data: { text: i.text } });
79
- break;
80
- case "face" /* OB11SegmentType.Face */:
81
- elements.push({ type, data: { id: i.id } });
82
- break;
83
- case "at" /* OB11SegmentType.At */:
84
- elements.push({ type, data: { qq: String(i.uid || i.uin), name: i.name } });
85
- break;
86
- case "reply" /* OB11SegmentType.Reply */:
87
- elements.push({ type, data: { id: i.message_id } });
88
- break;
89
- case "image" /* OB11SegmentType.Image */:
90
- case "video" /* OB11SegmentType.Video */:
91
- case "file" /* OB11SegmentType.File */: {
92
- elements.push({ type, data: { file: fileToBase64(i.file, bot) } });
93
- break;
94
- }
95
- case "xml" /* OB11SegmentType.Xml */: {
96
- elements.push({ type, data: { data: i.data } });
97
- break;
98
- }
99
- case "json" /* OB11SegmentType.Json */: {
100
- elements.push({ type, data: { data: i.data } });
101
- break;
102
- }
103
- case "forward" /* OB11SegmentType.Forward */: {
104
- elements.push({ type, data: { id: i.res_id } });
105
- break;
106
- }
107
- case "record" /* OB11SegmentType.Record */: {
108
- elements.push({ type, data: { file: fileToBase64(i.file, bot), magic: i.magic || false } });
109
- break;
110
- }
111
- case "music" /* OB11SegmentType.Music */: {
112
- if (i.id) {
113
- elements.push({ type: 'music', data: { type: i.platform, id: i.id } });
114
- }
115
- else {
116
- const { url, audio, title, author, pic } = i;
117
- elements.push({ type: 'music', data: { type: 'custom', url, audio, title, content: author, image: pic } });
118
- }
119
- break;
120
- }
121
- case "poke" /* OB11SegmentType.Poke */: {
122
- elements.push({ type, data: { type: i.poke_type, id: i.id } });
123
- break;
124
- }
125
- case 'bubble_face': {
126
- elements.push({ type: 'bubble_face', data: { id: i.id, count: i.count } });
127
- break;
128
- }
129
- case "contact" /* OB11SegmentType.Contact */: {
130
- elements.push({ type, data: { type: i.scene, id: i.peer } });
131
- break;
132
- }
133
- case "location" /* OB11SegmentType.Location */: {
134
- elements.push({ type, data: { lat: i.lat, lon: i.lon, title: i.title, content: i.address } });
135
- break;
136
- }
137
- case 'long_msg':
138
- case 'basketball':
139
- case 'dice':
140
- case 'market_face':
141
- case 'rps': {
142
- elements.push({ type: i.type, data: { id: i.id } });
143
- break;
144
- }
145
- case 'gift': {
146
- elements.push({ type: 'gift', data: { qq: i.qq, id: i.id } });
147
- break;
148
- }
149
- case 'share': {
150
- elements.push({ type: 'share', data: { url: i.url, title: i.title, content: i.content, image: i.image } });
151
- break;
152
- }
153
- case 'weather': {
154
- elements.push({ type: 'weather', data: { city: i.city, type: i.type } });
155
- break;
156
- }
157
- case 'button':
158
- case 'markdown':
159
- case 'keyboard':
160
- default: {
161
- elements.push(i);
162
- break;
163
- }
164
- }
165
- }
166
- return elements;
167
- }
@@ -1,25 +0,0 @@
1
- import { AdapterOneBot11 } from './index.js';
2
- import { OB11EventAll, OB11MessageEvent, OB11MetaEvent, OB11NoticeEvent, OB11RequestEvent } from '../../../types/index.js';
3
- export declare class OB11Event {
4
- adapter: AdapterOneBot11;
5
- constructor(adapter: AdapterOneBot11);
6
- /**
7
- * 处理事件
8
- * - @param data ob11相关标准数据
9
- */
10
- event(data: OB11EventAll): void;
11
- /**
12
- * 元事件
13
- */
14
- metaEvent(data: OB11MetaEvent): void;
15
- /**
16
- * 消息事件
17
- */
18
- messageEvent(data: OB11MessageEvent): void;
19
- /**
20
- * 通知事件
21
- */
22
- noticeEvent(data: OB11NoticeEvent): void;
23
- /** 请求事件 */
24
- requestEvent(data: OB11RequestEvent): void;
25
- }