@alemonjs/kook 0.2.2 → 0.2.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.
@@ -1,7 +1,7 @@
1
- import { existsSync, createReadStream } from 'fs'
2
- import { Readable, isReadable } from 'stream'
3
- import { basename } from 'path'
4
- import { fileTypeFromBuffer, fileTypeFromStream } from 'file-type'
1
+ import { existsSync, createReadStream } from 'fs';
2
+ import { Readable, isReadable } from 'stream';
3
+ import { basename } from 'path';
4
+ import { fileTypeFromBuffer, fileTypeFromStream } from 'file-type';
5
5
 
6
6
  /**
7
7
  * 创建form
@@ -10,26 +10,33 @@ import { fileTypeFromBuffer, fileTypeFromStream } from 'file-type'
10
10
  * @returns
11
11
  */
12
12
  async function createPicFrom(image, name = 'image.jpg') {
13
- let picData
14
- // 是 string
15
- if (typeof image === 'string') {
16
- if (!existsSync(image)) return false
17
- if (!name) name = basename(image)
18
- picData = createReadStream(image)
19
- // buffer
20
- } else if (Buffer.isBuffer(image)) {
21
- if (!name) name = 'file.' + (await fileTypeFromBuffer(image)).ext
22
- picData = new Readable()
23
- picData.push(image)
24
- picData.push(null)
25
- // 文件流
26
- } else if (isReadable(image)) {
27
- if (!name) name = 'file.' + (await fileTypeFromStream(image)).ext
28
- picData = image
29
- } else {
30
- return false
31
- }
32
- return { picData, image, name }
13
+ let picData;
14
+ // 是 string
15
+ if (typeof image === 'string') {
16
+ if (!existsSync(image))
17
+ return false;
18
+ if (!name)
19
+ name = basename(image);
20
+ picData = createReadStream(image);
21
+ // buffer
22
+ }
23
+ else if (Buffer.isBuffer(image)) {
24
+ if (!name)
25
+ name = 'file.' + (await fileTypeFromBuffer(image)).ext;
26
+ picData = new Readable();
27
+ picData.push(image);
28
+ picData.push(null);
29
+ // 文件流
30
+ }
31
+ else if (isReadable(image)) {
32
+ if (!name)
33
+ name = 'file.' + (await fileTypeFromStream(image)).ext;
34
+ picData = image;
35
+ }
36
+ else {
37
+ return false;
38
+ }
39
+ return { picData, image, name };
33
40
  }
34
41
 
35
- export { createPicFrom }
42
+ export { createPicFrom };
@@ -1,269 +1,272 @@
1
- import axios from 'axios'
2
- import FormData from 'form-data'
3
- import { ApiEnum } from './typings.js'
4
- import { config } from './config.js'
5
- import 'fs'
6
- import 'path'
7
- import 'qrcode'
8
- import 'public-ip'
9
- import { createPicFrom } from '../../../core/utils/from.js'
1
+ import axios from 'axios';
2
+ import FormData from 'form-data';
3
+ import { ApiEnum } from './typings.js';
4
+ import { config } from './config.js';
5
+ import 'fs';
6
+ import 'path';
7
+ import 'qrcode';
8
+ import 'public-ip';
9
+ import { createPicFrom } from '../../../core/utils/from.js';
10
10
 
11
11
  /**
12
12
  * api接口
13
13
  */
14
14
  class KOOKAPI {
15
- API_URL = 'https://www.kookapp.cn'
16
- /**
17
- * KOOK服务
18
- * @param config
19
- * @returns
20
- */
21
- kookService(opstoin) {
22
- const token = config.get('token')
23
- const service = axios.create({
24
- baseURL: this.API_URL,
25
- timeout: 30000,
26
- headers: {
27
- Authorization: `Bot ${token}`
28
- }
29
- })
30
- return service(opstoin)
31
- }
32
- /**
33
- *
34
- * @returns
35
- */
36
- async gateway() {
37
- return this.kookService({
38
- baseURL: 'https://www.kookapp.cn/api/v3/gateway/index',
39
- method: 'get',
40
- params: {
41
- compress: 0
42
- }
43
- }).then(res => res.data)
44
- }
45
- /**
46
- * ************
47
- * 资源床单
48
- * ***********
49
- */
50
- /**
51
- * 发送buffer资源
52
- * @param id 私信传频道id,公信传子频道id
53
- * @param message {消息编号,图片,内容}
54
- * @returns
55
- */
56
- async postImage(file, Name = 'image.jpg') {
57
- const from = await createPicFrom(file, Name)
58
- if (!from) return false
59
- const { picData, name } = from
60
- const formdata = new FormData()
61
- formdata.append('file', picData, name)
62
- const url = await this.createUrl(formdata)
63
- if (url) return url
64
- return false
65
- }
66
- /**
67
- * 发送buffer资源
68
- * @param id 私信传频道id,公信传子频道id
69
- * @param message {消息编号,图片,内容}
70
- * @returns
71
- */
72
- async postFile(file, Name = 'image.jpg') {
73
- const formdata = new FormData()
74
- formdata.append('file', [file], Name)
75
- const url = await this.createUrl(formdata)
76
- if (url) return url
77
- return false
78
- }
79
- /**
80
- * 转存
81
- * @param formdata
82
- * @returns
83
- */
84
- async createUrl(formdata) {
85
- return await this.kookService({
86
- method: 'post',
87
- url: ApiEnum.AssetCreate,
88
- data: formdata,
89
- headers: formdata.getHeaders()
90
- }).then(res => res?.data)
91
- }
92
- /**
93
- * *********
94
- * 消息api
95
- * *********
96
- */
97
- /**
98
- * 创建消息
99
- * @param data
100
- * @returns
101
- */
102
- async createMessage(data) {
103
- return await this.kookService({
104
- method: 'post',
105
- url: ApiEnum.MessageCreate,
106
- data
107
- }).then(res => res?.data)
108
- }
109
- /**
110
- * 创建私聊消息
111
- */
112
- /**
113
- * 创建消息
114
- * @param target_id
115
- * @returns
116
- */
117
- async userChatCreate(target_id) {
118
- return this.kookService({
119
- method: 'post',
120
- url: ApiEnum.UserChatCreate,
121
- data: {
122
- target_id
123
- }
124
- }).then(res => res?.data)
125
- }
126
- /**
127
- * 创建消息
128
- * @param data
129
- * @returns
130
- */
131
- async createDirectMessage(data) {
132
- return this.kookService({
133
- method: 'post',
134
- url: ApiEnum.DirectMessageCreate,
135
- data
136
- }).then(res => res?.data)
137
- }
138
- /**
139
- * 删除指定消息
140
- * @param msg_id
141
- * @returns
142
- */
143
- async messageDelete(msg_id) {
144
- return this.kookService({
145
- method: 'post',
146
- url: ApiEnum.MessageDelete,
147
- data: {
148
- msg_id
149
- }
150
- }).then(res => res?.data)
151
- }
152
- /**
153
- * 重编辑指定消息
154
- * @param data
155
- * @returns
156
- */
157
- async messageUpdate(data) {
158
- return this.kookService({
159
- method: 'post',
160
- url: ApiEnum.MessageUpdate,
161
- data
162
- }).then(res => res?.data)
163
- }
164
- /**
165
- * 删回应
166
- * @param data
167
- * @returns
168
- */
169
- async messageDeleteReaction(data) {
170
- return this.kookService({
171
- method: 'post',
172
- url: ApiEnum.MessageDeleteReaction,
173
- data
174
- }).then(res => res?.data)
175
- }
176
- /**
177
- * 发回应
178
- * @param data
179
- * @returns
180
- */
181
- async messageAddReaction(data) {
182
- return this.kookService({
183
- method: 'post',
184
- url: ApiEnum.MessageAddReaction,
185
- data
186
- }).then(res => res?.data)
187
- }
188
- /**
189
- * 某个回应的所有用户
190
- * @param data
191
- * @returns
192
- */
193
- async messageReactionList(params) {
194
- return this.kookService({
195
- method: 'get',
196
- url: ApiEnum.MessageReactionList,
197
- params
198
- }).then(res => res?.data)
199
- }
200
- /**
201
- * **********
202
- * user
203
- * *********
204
- */
205
- /**
206
- * 得到当前信息
207
- * @param guild_id
208
- * @param user_id
209
- * @returns
210
- */
211
- async userMe() {
212
- return this.kookService({
213
- method: 'get',
214
- url: ApiEnum.UserMe
215
- }).then(res => res?.data)
216
- }
217
- /**
218
- * 得到用户信息
219
- * @param guild_id
220
- * @param user_id
221
- * @returns
222
- */
223
- async userView(guild_id, user_id) {
224
- return this.kookService({
225
- method: 'get',
226
- url: ApiEnum.UserView,
227
- params: {
228
- guild_id,
229
- user_id
230
- }
231
- }).then(res => res?.data)
232
- }
233
- /**
234
- * 踢出
235
- * @param guild_id
236
- * @param user_id
237
- * @returns
238
- */
239
- async guildKickout(guild_id, user_id) {
240
- return this.kookService({
241
- method: 'post',
242
- url: ApiEnum.GuildKickout,
243
- data: {
244
- guild_id,
245
- target_id: user_id
246
- }
247
- }).then(res => res?.data)
248
- }
249
- /**
250
- * 创建角色
251
- * @param channel_id
252
- * @param type
253
- * @param value
254
- * @returns
255
- */
256
- async channelRoleCreate(channel_id, type, value) {
257
- return this.kookService({
258
- method: 'post',
259
- url: ApiEnum.ChannelRoleCreate,
260
- data: {
261
- channel_id,
262
- type,
263
- value
264
- }
265
- }).then(res => res?.data)
266
- }
15
+ API_URL = 'https://www.kookapp.cn';
16
+ /**
17
+ * KOOK服务
18
+ * @param config
19
+ * @returns
20
+ */
21
+ kookService(opstoin) {
22
+ const token = config.get('token');
23
+ const service = axios.create({
24
+ baseURL: this.API_URL,
25
+ timeout: 30000,
26
+ headers: {
27
+ Authorization: `Bot ${token}`
28
+ }
29
+ });
30
+ return service(opstoin);
31
+ }
32
+ /**
33
+ *
34
+ * @returns
35
+ */
36
+ async gateway() {
37
+ return this.kookService({
38
+ baseURL: 'https://www.kookapp.cn/api/v3/gateway/index',
39
+ method: 'get',
40
+ params: {
41
+ compress: 0
42
+ }
43
+ }).then(res => res.data);
44
+ }
45
+ /**
46
+ * ************
47
+ * 资源床单
48
+ * ***********
49
+ */
50
+ /**
51
+ * 发送buffer资源
52
+ * @param id 私信传频道id,公信传子频道id
53
+ * @param message {消息编号,图片,内容}
54
+ * @returns
55
+ */
56
+ async postImage(file, Name = 'image.jpg') {
57
+ const from = await createPicFrom(file, Name);
58
+ if (!from)
59
+ return false;
60
+ const { picData, name } = from;
61
+ const formdata = new FormData();
62
+ formdata.append('file', picData, name);
63
+ const url = await this.createUrl(formdata);
64
+ if (url)
65
+ return url;
66
+ return false;
67
+ }
68
+ /**
69
+ * 发送buffer资源
70
+ * @param id 私信传频道id,公信传子频道id
71
+ * @param message {消息编号,图片,内容}
72
+ * @returns
73
+ */
74
+ async postFile(file, Name = 'image.jpg') {
75
+ const formdata = new FormData();
76
+ formdata.append('file', [file], Name);
77
+ const url = await this.createUrl(formdata);
78
+ if (url)
79
+ return url;
80
+ return false;
81
+ }
82
+ /**
83
+ * 转存
84
+ * @param formdata
85
+ * @returns
86
+ */
87
+ async createUrl(formdata) {
88
+ return await this.kookService({
89
+ method: 'post',
90
+ url: ApiEnum.AssetCreate,
91
+ data: formdata,
92
+ headers: formdata.getHeaders()
93
+ }).then(res => res?.data);
94
+ }
95
+ /**
96
+ * *********
97
+ * 消息api
98
+ * *********
99
+ */
100
+ /**
101
+ * 创建消息
102
+ * @param data
103
+ * @returns
104
+ */
105
+ async createMessage(data) {
106
+ return await this.kookService({
107
+ method: 'post',
108
+ url: ApiEnum.MessageCreate,
109
+ data
110
+ }).then(res => res?.data);
111
+ }
112
+ /**
113
+ * 创建私聊消息
114
+ */
115
+ /**
116
+ * 创建消息
117
+ * @param target_id
118
+ * @returns
119
+ */
120
+ async userChatCreate(target_id) {
121
+ return this.kookService({
122
+ method: 'post',
123
+ url: ApiEnum.UserChatCreate,
124
+ data: {
125
+ target_id
126
+ }
127
+ }).then(res => res?.data);
128
+ }
129
+ /**
130
+ * 创建消息
131
+ * @param data
132
+ * @returns
133
+ */
134
+ async createDirectMessage(data) {
135
+ return this.kookService({
136
+ method: 'post',
137
+ url: ApiEnum.DirectMessageCreate,
138
+ data
139
+ }).then(res => res?.data);
140
+ }
141
+ /**
142
+ * 删除指定消息
143
+ * @param msg_id
144
+ * @returns
145
+ */
146
+ async messageDelete(msg_id) {
147
+ return this.kookService({
148
+ method: 'post',
149
+ url: ApiEnum.MessageDelete,
150
+ data: {
151
+ msg_id
152
+ }
153
+ }).then(res => res?.data);
154
+ }
155
+ /**
156
+ * 重编辑指定消息
157
+ * @param data
158
+ * @returns
159
+ */
160
+ async messageUpdate(data) {
161
+ return this.kookService({
162
+ method: 'post',
163
+ url: ApiEnum.MessageUpdate,
164
+ data
165
+ }).then(res => res?.data);
166
+ }
167
+ /**
168
+ * 删回应
169
+ * @param data
170
+ * @returns
171
+ */
172
+ async messageDeleteReaction(data) {
173
+ return this.kookService({
174
+ method: 'post',
175
+ url: ApiEnum.MessageDeleteReaction,
176
+ data
177
+ }).then(res => res?.data);
178
+ }
179
+ /**
180
+ * 发回应
181
+ * @param data
182
+ * @returns
183
+ */
184
+ async messageAddReaction(data) {
185
+ return this.kookService({
186
+ method: 'post',
187
+ url: ApiEnum.MessageAddReaction,
188
+ data
189
+ }).then(res => res?.data);
190
+ }
191
+ /**
192
+ * 某个回应的所有用户
193
+ * @param data
194
+ * @returns
195
+ */
196
+ async messageReactionList(params) {
197
+ return this.kookService({
198
+ method: 'get',
199
+ url: ApiEnum.MessageReactionList,
200
+ params
201
+ }).then(res => res?.data);
202
+ }
203
+ /**
204
+ * **********
205
+ * user
206
+ * *********
207
+ */
208
+ /**
209
+ * 得到当前信息
210
+ * @param guild_id
211
+ * @param user_id
212
+ * @returns
213
+ */
214
+ async userMe() {
215
+ return this.kookService({
216
+ method: 'get',
217
+ url: ApiEnum.UserMe
218
+ }).then(res => res?.data);
219
+ }
220
+ /**
221
+ * 得到用户信息
222
+ * @param guild_id
223
+ * @param user_id
224
+ * @returns
225
+ */
226
+ async userView(guild_id, user_id) {
227
+ return this.kookService({
228
+ method: 'get',
229
+ url: ApiEnum.UserView,
230
+ params: {
231
+ guild_id,
232
+ user_id
233
+ }
234
+ }).then(res => res?.data);
235
+ }
236
+ /**
237
+ * 踢出
238
+ * @param guild_id
239
+ * @param user_id
240
+ * @returns
241
+ */
242
+ async guildKickout(guild_id, user_id) {
243
+ return this.kookService({
244
+ method: 'post',
245
+ url: ApiEnum.GuildKickout,
246
+ data: {
247
+ guild_id,
248
+ target_id: user_id
249
+ }
250
+ }).then(res => res?.data);
251
+ }
252
+ /**
253
+ * 创建角色
254
+ * @param channel_id
255
+ * @param type
256
+ * @param value
257
+ * @returns
258
+ */
259
+ async channelRoleCreate(channel_id, type, value) {
260
+ return this.kookService({
261
+ method: 'post',
262
+ url: ApiEnum.ChannelRoleCreate,
263
+ data: {
264
+ channel_id,
265
+ type,
266
+ value
267
+ }
268
+ }).then(res => res?.data);
269
+ }
267
270
  }
268
271
 
269
- export { KOOKAPI }
272
+ export { KOOKAPI };
@@ -1,7 +1,7 @@
1
- import { BaseConfig } from '../../../core/config.js'
1
+ import { BaseConfig } from '../../../core/config.js';
2
2
 
3
3
  const config = new BaseConfig({
4
- token: ''
5
- })
4
+ token: ''
5
+ });
6
6
 
7
- export { config }
7
+ export { config };