mirai-js 2.8.0-0 → 2.8.0-1
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/node/BaseType.d.ts +6 -5
- package/dist/node/Bot.d.ts +6 -6
- package/dist/node/Middleware.d.ts +2 -2
- package/dist/node/Waiter.d.ts +1 -1
- package/dist/node/index.d.ts +5 -3
- package/dist/node/typeHelpers.d.ts +2 -0
- package/index.ts +7 -0
- package/package.json +2 -2
- package/src/BaseType.d.ts +6 -5
- package/src/Bot.d.ts +6 -6
- package/src/Middleware.d.ts +2 -2
- package/src/Waiter.d.ts +1 -1
- package/src/index.d.ts +5 -3
- package/src/typeHelpers.d.ts +2 -0
- package/dist/node/ForwardNode.d.ts +0 -15
- package/dist/node/ForwardNode.js +0 -70
- package/dist/node/core/getGroupFileInfo.js +0 -77
- package/dist/node/core/getGroupFileList.js +0 -73
- package/dist/node/core/groupFileDelete.js +0 -73
- package/dist/node/core/groupFileMove.js +0 -76
- package/dist/node/core/groupFileRename.js +0 -76
- package/dist/node/core/sendFirendMessage.js +0 -68
- package/dist/node/core/uploadFileAndSend.js +0 -87
package/dist/node/BaseType.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import { Bot } from './Bot';
|
2
|
+
import { ArrayToValuesUnion } from './typeHelpers';
|
2
3
|
|
3
4
|
/**
|
4
5
|
* 消息链的元素,是 mirai-api-http 接口需要的原始类型
|
@@ -154,7 +155,7 @@ interface Friend {
|
|
154
155
|
remark: string;
|
155
156
|
}
|
156
157
|
|
157
|
-
interface
|
158
|
+
interface EventEntityMap {
|
158
159
|
error: {
|
159
160
|
code: number;
|
160
161
|
} & EventBaseType,
|
@@ -352,10 +353,9 @@ interface EventTypes {
|
|
352
353
|
nick: string,
|
353
354
|
message: string
|
354
355
|
} & RequestEventExtendType & EventBaseType;
|
355
|
-
AnyEvent: EventBaseType;
|
356
356
|
}
|
357
357
|
|
358
|
-
type EventType = keyof
|
358
|
+
type EventType = keyof EventEntityMap;
|
359
359
|
|
360
360
|
type Awaitable<T> = T | PromiseLike<T>;
|
361
361
|
|
@@ -366,7 +366,8 @@ type GroupPermission = 'OWNER' | 'ADMINISTRATOR' | 'MEMBER';
|
|
366
366
|
type SEX = 'UNKNOWN' | 'MALE' | 'FEMALE';
|
367
367
|
|
368
368
|
// 消息处理器
|
369
|
-
type Processor<U extends
|
369
|
+
type Processor<U extends EventType[] | 'UnknownEventType' = 'UnknownEventType'> =
|
370
|
+
(data: U extends 'UnknownEventType' ? EventBaseType : EventEntityMap[ArrayToValuesUnion<U extends 'UnknownEventType' ? never : U>]) => Awaitable<void | any>;
|
370
371
|
|
371
372
|
// QQ 自带表情
|
372
373
|
type FaceType =
|
@@ -433,7 +434,7 @@ export {
|
|
433
434
|
// 图片 id 语音 id 消息 id
|
434
435
|
ImageId, VoiceId, MessageId,
|
435
436
|
// 事件类型 群成员权限 性别
|
436
|
-
EventType,
|
437
|
+
EventType, EventEntityMap, GroupPermission, SEX,
|
437
438
|
// QQ 自带表情
|
438
439
|
FaceType,
|
439
440
|
Processor,
|
package/dist/node/Bot.d.ts
CHANGED
@@ -3,7 +3,7 @@ import {
|
|
3
3
|
ImageId, VoiceId, MessageId,
|
4
4
|
|
5
5
|
// 事件类型 群成员权限 性别
|
6
|
-
EventType,
|
6
|
+
EventType, EventEntityMap, GroupPermission, SEX,
|
7
7
|
|
8
8
|
// 接口 原始消息类型 事件处理器类型
|
9
9
|
MessageChainGetable, BotConfigGetable, MessageType,
|
@@ -93,8 +93,8 @@ export class Bot implements BotConfigGetable {
|
|
93
93
|
* @param callback 必选,回调函数
|
94
94
|
* @returns handle 事件处理器的标识,用于移除该处理器
|
95
95
|
*/
|
96
|
-
on<U extends
|
97
|
-
on<U extends
|
96
|
+
on<U extends EventType>(eventType: U, callback: Processor<[U]>): number;
|
97
|
+
on<U extends EventType[]>(eventType: U, callback: Processor<U>): number[];
|
98
98
|
|
99
99
|
/**
|
100
100
|
* @description 添加一个一次性事件处理器,回调一次后自动移除
|
@@ -104,8 +104,8 @@ export class Bot implements BotConfigGetable {
|
|
104
104
|
* 当为 true 时,只有开发者的处理器结束后才会移除该处理器
|
105
105
|
* 当为 false 时,即使消息被拦截,也会移除该处理器
|
106
106
|
*/
|
107
|
-
one<U extends
|
108
|
-
one<U extends
|
107
|
+
one<U extends EventType>(eventType: U, callback: Processor<[U]>, strict: boolean): void;
|
108
|
+
one<U extends EventType[]>(eventType: U, callback: Processor<U>, strict: boolean): void;
|
109
109
|
|
110
110
|
/**
|
111
111
|
* @description 移除一个事件处理器
|
@@ -323,7 +323,7 @@ declare namespace Bot {
|
|
323
323
|
type EventProcessorMap = {
|
324
324
|
// 索引不能使用联合类型
|
325
325
|
[eventType in EventType]: {
|
326
|
-
[handler: number]: (data:
|
326
|
+
[handler: number]: (data: EventEntityMap[eventType]) => Awaitable<void | any>;
|
327
327
|
};
|
328
328
|
}
|
329
329
|
|
@@ -128,12 +128,12 @@ export class Middleware {
|
|
128
128
|
* @description 生成一个带有中间件的事件处理器
|
129
129
|
* @param callback 事件处理器
|
130
130
|
*/
|
131
|
-
done(callback: Processor
|
131
|
+
done(callback: Processor): Processor;
|
132
132
|
|
133
133
|
}
|
134
134
|
|
135
135
|
declare namespace Middleware {
|
136
|
-
type NextMiddlewareCaller = () => NextMiddlewareCaller | Processor
|
136
|
+
type NextMiddlewareCaller = () => NextMiddlewareCaller | Processor;
|
137
137
|
|
138
138
|
interface GroupMemberMap {
|
139
139
|
[group: number]: number[];
|
package/dist/node/Waiter.d.ts
CHANGED
package/dist/node/index.d.ts
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
import { Bot as BotType } from './Bot';
|
2
|
-
import { Message as MessageType } from './Message';
|
3
|
-
import { Middleware as MiddlewareType } from './Middleware';
|
1
|
+
import { Bot, Bot as BotType } from './Bot';
|
2
|
+
import { Message, Message as MessageType } from './Message';
|
3
|
+
import { Middleware, Middleware as MiddlewareType } from './Middleware';
|
4
|
+
|
5
|
+
export { Bot, Message, Middleware };
|
4
6
|
declare module 'mirai-js' {
|
5
7
|
export const Bot: typeof BotType;
|
6
8
|
export const Message: typeof MessageType;
|
package/index.ts
ADDED
package/package.json
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
{
|
2
2
|
"name": "mirai-js",
|
3
|
-
"version": "2.8.0-
|
3
|
+
"version": "2.8.0-1",
|
4
4
|
"description": "QQ robot development framework based on Mirai-api-http.",
|
5
5
|
"main": "dist/node/index.js",
|
6
6
|
"scripts": {
|
7
7
|
"lint": "eslint --fix .",
|
8
|
-
"build": "tsc --noEmit src/*.d.ts && webpack && babel src --out-dir dist/node --copy-files",
|
8
|
+
"build": "rm -rf dist && tsc --noEmit src/*.d.ts && webpack && babel src --out-dir dist/node --copy-files",
|
9
9
|
"prepare": "husky install"
|
10
10
|
},
|
11
11
|
"lint-staged": {
|
package/src/BaseType.d.ts
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
import { Bot } from './Bot';
|
2
|
+
import { ArrayToValuesUnion } from './typeHelpers';
|
2
3
|
|
3
4
|
/**
|
4
5
|
* 消息链的元素,是 mirai-api-http 接口需要的原始类型
|
@@ -154,7 +155,7 @@ interface Friend {
|
|
154
155
|
remark: string;
|
155
156
|
}
|
156
157
|
|
157
|
-
interface
|
158
|
+
interface EventEntityMap {
|
158
159
|
error: {
|
159
160
|
code: number;
|
160
161
|
} & EventBaseType,
|
@@ -352,10 +353,9 @@ interface EventTypes {
|
|
352
353
|
nick: string,
|
353
354
|
message: string
|
354
355
|
} & RequestEventExtendType & EventBaseType;
|
355
|
-
AnyEvent: EventBaseType;
|
356
356
|
}
|
357
357
|
|
358
|
-
type EventType = keyof
|
358
|
+
type EventType = keyof EventEntityMap;
|
359
359
|
|
360
360
|
type Awaitable<T> = T | PromiseLike<T>;
|
361
361
|
|
@@ -366,7 +366,8 @@ type GroupPermission = 'OWNER' | 'ADMINISTRATOR' | 'MEMBER';
|
|
366
366
|
type SEX = 'UNKNOWN' | 'MALE' | 'FEMALE';
|
367
367
|
|
368
368
|
// 消息处理器
|
369
|
-
type Processor<U extends
|
369
|
+
type Processor<U extends EventType[] | 'UnknownEventType' = 'UnknownEventType'> =
|
370
|
+
(data: U extends 'UnknownEventType' ? EventBaseType : EventEntityMap[ArrayToValuesUnion<U extends 'UnknownEventType' ? never : U>]) => Awaitable<void | any>;
|
370
371
|
|
371
372
|
// QQ 自带表情
|
372
373
|
type FaceType =
|
@@ -433,7 +434,7 @@ export {
|
|
433
434
|
// 图片 id 语音 id 消息 id
|
434
435
|
ImageId, VoiceId, MessageId,
|
435
436
|
// 事件类型 群成员权限 性别
|
436
|
-
EventType,
|
437
|
+
EventType, EventEntityMap, GroupPermission, SEX,
|
437
438
|
// QQ 自带表情
|
438
439
|
FaceType,
|
439
440
|
Processor,
|
package/src/Bot.d.ts
CHANGED
@@ -3,7 +3,7 @@ import {
|
|
3
3
|
ImageId, VoiceId, MessageId,
|
4
4
|
|
5
5
|
// 事件类型 群成员权限 性别
|
6
|
-
EventType,
|
6
|
+
EventType, EventEntityMap, GroupPermission, SEX,
|
7
7
|
|
8
8
|
// 接口 原始消息类型 事件处理器类型
|
9
9
|
MessageChainGetable, BotConfigGetable, MessageType,
|
@@ -93,8 +93,8 @@ export class Bot implements BotConfigGetable {
|
|
93
93
|
* @param callback 必选,回调函数
|
94
94
|
* @returns handle 事件处理器的标识,用于移除该处理器
|
95
95
|
*/
|
96
|
-
on<U extends
|
97
|
-
on<U extends
|
96
|
+
on<U extends EventType>(eventType: U, callback: Processor<[U]>): number;
|
97
|
+
on<U extends EventType[]>(eventType: U, callback: Processor<U>): number[];
|
98
98
|
|
99
99
|
/**
|
100
100
|
* @description 添加一个一次性事件处理器,回调一次后自动移除
|
@@ -104,8 +104,8 @@ export class Bot implements BotConfigGetable {
|
|
104
104
|
* 当为 true 时,只有开发者的处理器结束后才会移除该处理器
|
105
105
|
* 当为 false 时,即使消息被拦截,也会移除该处理器
|
106
106
|
*/
|
107
|
-
one<U extends
|
108
|
-
one<U extends
|
107
|
+
one<U extends EventType>(eventType: U, callback: Processor<[U]>, strict: boolean): void;
|
108
|
+
one<U extends EventType[]>(eventType: U, callback: Processor<U>, strict: boolean): void;
|
109
109
|
|
110
110
|
/**
|
111
111
|
* @description 移除一个事件处理器
|
@@ -323,7 +323,7 @@ declare namespace Bot {
|
|
323
323
|
type EventProcessorMap = {
|
324
324
|
// 索引不能使用联合类型
|
325
325
|
[eventType in EventType]: {
|
326
|
-
[handler: number]: (data:
|
326
|
+
[handler: number]: (data: EventEntityMap[eventType]) => Awaitable<void | any>;
|
327
327
|
};
|
328
328
|
}
|
329
329
|
|
package/src/Middleware.d.ts
CHANGED
@@ -128,12 +128,12 @@ export class Middleware {
|
|
128
128
|
* @description 生成一个带有中间件的事件处理器
|
129
129
|
* @param callback 事件处理器
|
130
130
|
*/
|
131
|
-
done(callback: Processor
|
131
|
+
done(callback: Processor): Processor;
|
132
132
|
|
133
133
|
}
|
134
134
|
|
135
135
|
declare namespace Middleware {
|
136
|
-
type NextMiddlewareCaller = () => NextMiddlewareCaller | Processor
|
136
|
+
type NextMiddlewareCaller = () => NextMiddlewareCaller | Processor;
|
137
137
|
|
138
138
|
interface GroupMemberMap {
|
139
139
|
[group: number]: number[];
|
package/src/Waiter.d.ts
CHANGED
package/src/index.d.ts
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
-
import { Bot as BotType } from './Bot';
|
2
|
-
import { Message as MessageType } from './Message';
|
3
|
-
import { Middleware as MiddlewareType } from './Middleware';
|
1
|
+
import { Bot, Bot as BotType } from './Bot';
|
2
|
+
import { Message, Message as MessageType } from './Message';
|
3
|
+
import { Middleware, Middleware as MiddlewareType } from './Middleware';
|
4
|
+
|
5
|
+
export { Bot, Message, Middleware };
|
4
6
|
declare module 'mirai-js' {
|
5
7
|
export const Bot: typeof BotType;
|
6
8
|
export const Message: typeof MessageType;
|
@@ -1,15 +0,0 @@
|
|
1
|
-
import { ForwardNodeGetable, ForwardNodeType, MessageId } from './BaseType';
|
2
|
-
|
3
|
-
// Bot.sendForward 的 nodeList 参数是一个 ForwardNode 类型的实例
|
4
|
-
// 方法内部通过 ForwardNodeType 接口的 getForwardNode 方法拿到消息链
|
5
|
-
export class ForwardNode implements ForwardNodeGetable {
|
6
|
-
private nodeList: ForwardNodeType[];
|
7
|
-
|
8
|
-
// 自行添加一个消息节点
|
9
|
-
addForwardNode(nodeList: ForwardNodeType): ForwardNode;
|
10
|
-
// 使用 MessageId 添加一个消息节点
|
11
|
-
addForwardNodeById(ID: MessageId): ForwardNode;
|
12
|
-
|
13
|
-
// implements ForwardNodeGetable
|
14
|
-
getForwardNode(): ForwardNodeType[];
|
15
|
-
}
|
package/dist/node/ForwardNode.js
DELETED
@@ -1,70 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
// 用于与 Bot.sendForward 耦合的接口
|
4
|
-
const {
|
5
|
-
ForwardNodeGetable,
|
6
|
-
MessageChainGetable
|
7
|
-
} = require('./interface');
|
8
|
-
|
9
|
-
class ForwardNode_Data {
|
10
|
-
constructor({
|
11
|
-
senderId,
|
12
|
-
time,
|
13
|
-
senderName,
|
14
|
-
messageChain
|
15
|
-
}) {
|
16
|
-
this.senderId = senderId;
|
17
|
-
this.time = time;
|
18
|
-
this.senderName = senderName;
|
19
|
-
this.messageChain = messageChain;
|
20
|
-
}
|
21
|
-
|
22
|
-
}
|
23
|
-
|
24
|
-
class ForwardNode_Id {
|
25
|
-
constructor({
|
26
|
-
messageId
|
27
|
-
}) {
|
28
|
-
this.messageId = messageId;
|
29
|
-
}
|
30
|
-
|
31
|
-
}
|
32
|
-
/**
|
33
|
-
* @description 本框架抽象的消息节点
|
34
|
-
*/
|
35
|
-
|
36
|
-
|
37
|
-
class ForwardNode extends ForwardNodeGetable {
|
38
|
-
constructor() {
|
39
|
-
super();
|
40
|
-
this.nodeList = [];
|
41
|
-
} // 手动添加节点
|
42
|
-
|
43
|
-
|
44
|
-
addForwardNode(nodeList) {
|
45
|
-
if (nodeList.messageChain instanceof MessageChainGetable) {
|
46
|
-
nodeList.messageChain = nodeList.messageChain.getMessageChain();
|
47
|
-
}
|
48
|
-
|
49
|
-
this.nodeList.push(new ForwardNode_Data(nodeList));
|
50
|
-
return this;
|
51
|
-
} // 使用 messageId 添加节点
|
52
|
-
|
53
|
-
|
54
|
-
addForwardNodeById(messageId) {
|
55
|
-
this.nodeList.push(new ForwardNode_Id({
|
56
|
-
messageId
|
57
|
-
}));
|
58
|
-
return this;
|
59
|
-
} // get 原接口格式的信息链
|
60
|
-
|
61
|
-
|
62
|
-
getForwardNode() {
|
63
|
-
return this.nodeList;
|
64
|
-
}
|
65
|
-
|
66
|
-
}
|
67
|
-
|
68
|
-
module.exports = {
|
69
|
-
ForwardNode
|
70
|
-
};
|
@@ -1,77 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
const {
|
4
|
-
errCodeMap
|
5
|
-
} = require('../util/errCode');
|
6
|
-
|
7
|
-
const axios = require('axios').default;
|
8
|
-
|
9
|
-
let URL;
|
10
|
-
|
11
|
-
if (!process.browser) {
|
12
|
-
({
|
13
|
-
URL
|
14
|
-
} = require('url'));
|
15
|
-
} else {
|
16
|
-
URL = window.URL;
|
17
|
-
}
|
18
|
-
|
19
|
-
const errorHandler = require('../util/errorHandler');
|
20
|
-
|
21
|
-
const path = require('path');
|
22
|
-
|
23
|
-
const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
|
24
|
-
/**
|
25
|
-
* @description 获取群文件详细信息
|
26
|
-
* @param {string} baseUrl mirai-api-http server 的地址
|
27
|
-
* @param {string} sessionKey 会话标识
|
28
|
-
* @param {number} target 群号
|
29
|
-
* @param {string} id 文件 id
|
30
|
-
* @returns {Object}
|
31
|
-
* 结构 {
|
32
|
-
* id, name, path, length, downloadTimes, uploaderId,
|
33
|
-
* uploadTime, lastModifyTime, downloadUrl, sha1, md5
|
34
|
-
* }
|
35
|
-
*/
|
36
|
-
|
37
|
-
module.exports = async ({
|
38
|
-
baseUrl,
|
39
|
-
sessionKey,
|
40
|
-
target,
|
41
|
-
id
|
42
|
-
}) => {
|
43
|
-
try {
|
44
|
-
// 拼接 url
|
45
|
-
const url = new URL('/groupFileInfo', baseUrl).toString(); // 请求
|
46
|
-
|
47
|
-
const responseData = await axios.get(url, {
|
48
|
-
params: {
|
49
|
-
sessionKey,
|
50
|
-
target,
|
51
|
-
id
|
52
|
-
}
|
53
|
-
});
|
54
|
-
|
55
|
-
try {
|
56
|
-
var {
|
57
|
-
data,
|
58
|
-
data: {
|
59
|
-
msg: message,
|
60
|
-
code
|
61
|
-
}
|
62
|
-
} = responseData;
|
63
|
-
} catch (error) {
|
64
|
-
throw new Error('请求返回格式出错,请检查 mirai-console');
|
65
|
-
} // 抛出 mirai 的异常,到 catch 中处理后再抛出
|
66
|
-
|
67
|
-
|
68
|
-
if (code in errCodeMap) {
|
69
|
-
throw new Error(message);
|
70
|
-
}
|
71
|
-
|
72
|
-
return data;
|
73
|
-
} catch (error) {
|
74
|
-
console.error(`mirai-js: error ${locationStr}`);
|
75
|
-
errorHandler(error);
|
76
|
-
}
|
77
|
-
};
|
@@ -1,73 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
const {
|
4
|
-
errCodeMap
|
5
|
-
} = require('../util/errCode');
|
6
|
-
|
7
|
-
const axios = require('axios').default;
|
8
|
-
|
9
|
-
let URL;
|
10
|
-
|
11
|
-
if (!process.browser) {
|
12
|
-
({
|
13
|
-
URL
|
14
|
-
} = require('url'));
|
15
|
-
} else {
|
16
|
-
URL = window.URL;
|
17
|
-
}
|
18
|
-
|
19
|
-
const errorHandler = require('../util/errorHandler');
|
20
|
-
|
21
|
-
const path = require('path');
|
22
|
-
|
23
|
-
const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
|
24
|
-
/**
|
25
|
-
* @description 获取群文件列表
|
26
|
-
* @param {string} baseUrl mirai-api-http server 的地址
|
27
|
-
* @param {string} sessionKey 会话标识
|
28
|
-
* @param {number} target 群号
|
29
|
-
* @param {string} dir 可选,查询目录,默认为根目录
|
30
|
-
* @returns {Object[]} 结构 array[...{ id, name, path, isFile }]
|
31
|
-
*/
|
32
|
-
|
33
|
-
module.exports = async ({
|
34
|
-
baseUrl,
|
35
|
-
sessionKey,
|
36
|
-
target,
|
37
|
-
dir
|
38
|
-
}) => {
|
39
|
-
try {
|
40
|
-
// 拼接 url
|
41
|
-
const url = new URL('/groupFileList', baseUrl).toString(); // 请求
|
42
|
-
|
43
|
-
const responseData = await axios.get(url, {
|
44
|
-
params: {
|
45
|
-
sessionKey,
|
46
|
-
target,
|
47
|
-
dir
|
48
|
-
}
|
49
|
-
});
|
50
|
-
|
51
|
-
try {
|
52
|
-
var {
|
53
|
-
data,
|
54
|
-
data: {
|
55
|
-
msg: message,
|
56
|
-
code
|
57
|
-
}
|
58
|
-
} = responseData;
|
59
|
-
} catch (error) {
|
60
|
-
throw new Error('请求返回格式出错,请检查 mirai-console');
|
61
|
-
} // 抛出 mirai 的异常,到 catch 中处理后再抛出
|
62
|
-
|
63
|
-
|
64
|
-
if (code in errCodeMap) {
|
65
|
-
throw new Error(message);
|
66
|
-
}
|
67
|
-
|
68
|
-
return data;
|
69
|
-
} catch (error) {
|
70
|
-
console.error(`mirai-js: error ${locationStr}`);
|
71
|
-
errorHandler(error);
|
72
|
-
}
|
73
|
-
};
|
@@ -1,73 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
const {
|
4
|
-
errCodeMap
|
5
|
-
} = require('../util/errCode');
|
6
|
-
|
7
|
-
const axios = require('axios');
|
8
|
-
|
9
|
-
let URL;
|
10
|
-
|
11
|
-
if (!process.browser) {
|
12
|
-
({
|
13
|
-
URL
|
14
|
-
} = require('url'));
|
15
|
-
} else {
|
16
|
-
URL = window.URL;
|
17
|
-
}
|
18
|
-
|
19
|
-
const errorHandler = require('../util/errorHandler');
|
20
|
-
|
21
|
-
const path = require('path');
|
22
|
-
|
23
|
-
const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
|
24
|
-
/**
|
25
|
-
* @description 删除群文件
|
26
|
-
* @param {string} baseUrl mirai-api-http server 的地址
|
27
|
-
* @param {string} sessionKey 会话标识
|
28
|
-
* @param {number} target 群号
|
29
|
-
* @param {number} id 文件 id
|
30
|
-
* @returns {Object} 结构 { message, code }
|
31
|
-
*/
|
32
|
-
|
33
|
-
module.exports = async ({
|
34
|
-
baseUrl,
|
35
|
-
sessionKey,
|
36
|
-
target,
|
37
|
-
id
|
38
|
-
}) => {
|
39
|
-
try {
|
40
|
-
// 拼接 url
|
41
|
-
const url = new URL('/groupFileDelete', baseUrl).toString(); // 请求
|
42
|
-
|
43
|
-
const responseData = await axios.post(url, {
|
44
|
-
sessionKey,
|
45
|
-
target,
|
46
|
-
id
|
47
|
-
});
|
48
|
-
|
49
|
-
try {
|
50
|
-
var {
|
51
|
-
data: {
|
52
|
-
msg: message,
|
53
|
-
code
|
54
|
-
}
|
55
|
-
} = responseData;
|
56
|
-
} catch (error) {
|
57
|
-
throw new Error('请求返回格式出错,请检查 mirai-console');
|
58
|
-
} // 抛出 mirai 的异常,到 catch 中处理后再抛出
|
59
|
-
|
60
|
-
|
61
|
-
if (code in errCodeMap) {
|
62
|
-
throw new Error(message);
|
63
|
-
}
|
64
|
-
|
65
|
-
return {
|
66
|
-
message,
|
67
|
-
code
|
68
|
-
};
|
69
|
-
} catch (error) {
|
70
|
-
console.error(`mirai-js: error ${locationStr}`);
|
71
|
-
errorHandler(error);
|
72
|
-
}
|
73
|
-
};
|
@@ -1,76 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
const {
|
4
|
-
errCodeMap
|
5
|
-
} = require('../util/errCode');
|
6
|
-
|
7
|
-
const axios = require('axios');
|
8
|
-
|
9
|
-
let URL;
|
10
|
-
|
11
|
-
if (!process.browser) {
|
12
|
-
({
|
13
|
-
URL
|
14
|
-
} = require('url'));
|
15
|
-
} else {
|
16
|
-
URL = window.URL;
|
17
|
-
}
|
18
|
-
|
19
|
-
const errorHandler = require('../util/errorHandler');
|
20
|
-
|
21
|
-
const path = require('path');
|
22
|
-
|
23
|
-
const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
|
24
|
-
/**
|
25
|
-
* @description 移动群文件
|
26
|
-
* @param {string} baseUrl mirai-api-http server 的地址
|
27
|
-
* @param {string} sessionKey 会话标识
|
28
|
-
* @param {number} target 群号
|
29
|
-
* @param {number} id 文件 id
|
30
|
-
* @param {string} movePath 目标 path
|
31
|
-
* @returns {Object} 结构 { message, code }
|
32
|
-
*/
|
33
|
-
|
34
|
-
module.exports = async ({
|
35
|
-
baseUrl,
|
36
|
-
sessionKey,
|
37
|
-
target,
|
38
|
-
id,
|
39
|
-
movePath
|
40
|
-
}) => {
|
41
|
-
try {
|
42
|
-
// 拼接 url
|
43
|
-
const url = new URL('/groupFileMove', baseUrl).toString(); // 请求
|
44
|
-
|
45
|
-
const responseData = await axios.post(url, {
|
46
|
-
sessionKey,
|
47
|
-
target,
|
48
|
-
id,
|
49
|
-
movePath
|
50
|
-
});
|
51
|
-
|
52
|
-
try {
|
53
|
-
var {
|
54
|
-
data: {
|
55
|
-
msg: message,
|
56
|
-
code
|
57
|
-
}
|
58
|
-
} = responseData;
|
59
|
-
} catch (error) {
|
60
|
-
throw new Error('请求返回格式出错,请检查 mirai-console');
|
61
|
-
} // 抛出 mirai 的异常,到 catch 中处理后再抛出
|
62
|
-
|
63
|
-
|
64
|
-
if (code in errCodeMap) {
|
65
|
-
throw new Error(message);
|
66
|
-
}
|
67
|
-
|
68
|
-
return {
|
69
|
-
message,
|
70
|
-
code
|
71
|
-
};
|
72
|
-
} catch (error) {
|
73
|
-
console.error(`mirai-js: error ${locationStr}`);
|
74
|
-
errorHandler(error);
|
75
|
-
}
|
76
|
-
};
|
@@ -1,76 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
const {
|
4
|
-
errCodeMap
|
5
|
-
} = require('../util/errCode');
|
6
|
-
|
7
|
-
const axios = require('axios');
|
8
|
-
|
9
|
-
let URL;
|
10
|
-
|
11
|
-
if (!process.browser) {
|
12
|
-
({
|
13
|
-
URL
|
14
|
-
} = require('url'));
|
15
|
-
} else {
|
16
|
-
URL = window.URL;
|
17
|
-
}
|
18
|
-
|
19
|
-
const errorHandler = require('../util/errorHandler');
|
20
|
-
|
21
|
-
const path = require('path');
|
22
|
-
|
23
|
-
const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
|
24
|
-
/**
|
25
|
-
* @description 重命名群文件
|
26
|
-
* @param {string} baseUrl mirai-api-http server 的地址
|
27
|
-
* @param {string} sessionKey 会话标识
|
28
|
-
* @param {number} target 群号
|
29
|
-
* @param {number} id 文件 id
|
30
|
-
* @param {string} rename 重命名
|
31
|
-
* @returns {Object} 结构 { message, code }
|
32
|
-
*/
|
33
|
-
|
34
|
-
module.exports = async ({
|
35
|
-
baseUrl,
|
36
|
-
sessionKey,
|
37
|
-
target,
|
38
|
-
id,
|
39
|
-
rename
|
40
|
-
}) => {
|
41
|
-
try {
|
42
|
-
// 拼接 url
|
43
|
-
const url = new URL('/groupFileRename', baseUrl).toString(); // 请求
|
44
|
-
|
45
|
-
const responseData = await axios.post(url, {
|
46
|
-
sessionKey,
|
47
|
-
target,
|
48
|
-
id,
|
49
|
-
rename
|
50
|
-
});
|
51
|
-
|
52
|
-
try {
|
53
|
-
var {
|
54
|
-
data: {
|
55
|
-
msg: message,
|
56
|
-
code
|
57
|
-
}
|
58
|
-
} = responseData;
|
59
|
-
} catch (error) {
|
60
|
-
throw new Error('请求返回格式出错,请检查 mirai-console');
|
61
|
-
} // 抛出 mirai 的异常,到 catch 中处理后再抛出
|
62
|
-
|
63
|
-
|
64
|
-
if (code in errCodeMap) {
|
65
|
-
throw new Error(message);
|
66
|
-
}
|
67
|
-
|
68
|
-
return {
|
69
|
-
message,
|
70
|
-
code
|
71
|
-
};
|
72
|
-
} catch (error) {
|
73
|
-
console.error(`mirai-js: error ${locationStr}`);
|
74
|
-
errorHandler(error);
|
75
|
-
}
|
76
|
-
};
|
@@ -1,68 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
const {
|
4
|
-
errCodeMap
|
5
|
-
} = require('../util/errCode');
|
6
|
-
|
7
|
-
const axios = require('axios').default;
|
8
|
-
|
9
|
-
const {
|
10
|
-
URL
|
11
|
-
} = require('../polyfill/URL');
|
12
|
-
|
13
|
-
const errorHandler = require('../util/errorHandler');
|
14
|
-
|
15
|
-
const path = require('path');
|
16
|
-
|
17
|
-
const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
|
18
|
-
/**
|
19
|
-
* @description 向 qq 好友发送消息
|
20
|
-
* @param {string} baseUrl mirai-api-http server 的地址
|
21
|
-
* @param {string} sessionKey 会话标识
|
22
|
-
* @param {number} target 目标好友 qq 号
|
23
|
-
* @param {number} quote 消息引用,使用发送时返回的 messageId
|
24
|
-
* @param {MessageType[]} messageChain 消息链,MessageType 数组
|
25
|
-
* @returns {Object} 结构 { message, code, messageId }
|
26
|
-
*/
|
27
|
-
|
28
|
-
module.exports = async ({
|
29
|
-
baseUrl,
|
30
|
-
sessionKey,
|
31
|
-
target,
|
32
|
-
quote,
|
33
|
-
messageChain
|
34
|
-
}) => {
|
35
|
-
try {
|
36
|
-
// 拼接 url
|
37
|
-
const url = new URL('/sendFriendMessage', baseUrl).toString(); // 请求
|
38
|
-
|
39
|
-
const responseData = await axios.post(url, {
|
40
|
-
sessionKey,
|
41
|
-
target,
|
42
|
-
quote,
|
43
|
-
messageChain
|
44
|
-
});
|
45
|
-
|
46
|
-
try {
|
47
|
-
var {
|
48
|
-
data: {
|
49
|
-
msg: message,
|
50
|
-
code,
|
51
|
-
messageId
|
52
|
-
}
|
53
|
-
} = responseData;
|
54
|
-
} catch (error) {
|
55
|
-
throw new Error('请求返回格式出错,请检查 mirai-console');
|
56
|
-
} // 抛出 mirai 的异常,到 catch 中处理后再抛出
|
57
|
-
|
58
|
-
|
59
|
-
if (code in errCodeMap) {
|
60
|
-
throw new Error(message);
|
61
|
-
}
|
62
|
-
|
63
|
-
return messageId;
|
64
|
-
} catch (error) {
|
65
|
-
console.error(`mirai-js: error ${locationStr}`);
|
66
|
-
errorHandler(error);
|
67
|
-
}
|
68
|
-
};
|
@@ -1,87 +0,0 @@
|
|
1
|
-
"use strict";
|
2
|
-
|
3
|
-
const {
|
4
|
-
errCodeMap
|
5
|
-
} = require('../util/errCode');
|
6
|
-
|
7
|
-
const axios = require('axios').default;
|
8
|
-
|
9
|
-
let URL;
|
10
|
-
|
11
|
-
if (!process.browser) {
|
12
|
-
({
|
13
|
-
URL
|
14
|
-
} = require('url'));
|
15
|
-
} else {
|
16
|
-
URL = window.URL;
|
17
|
-
}
|
18
|
-
|
19
|
-
const errorHandler = require('../util/errorHandler');
|
20
|
-
|
21
|
-
const path = require('path');
|
22
|
-
|
23
|
-
const locationStr = `core.${path.basename(__filename, path.extname(__filename))}`;
|
24
|
-
|
25
|
-
const FormData = require('form-data');
|
26
|
-
/**
|
27
|
-
* @description 上传文件至服务器并发送,返回文件 id
|
28
|
-
* @param {string} baseUrl mirai-api-http server 的地址
|
29
|
-
* @param {string} sessionKey 会话标识
|
30
|
-
* @param {string} type "friend" 或 "group",目前仅支持 group
|
31
|
-
* @param {string} target 群/好友号
|
32
|
-
* @param {string} path 上传目录
|
33
|
-
* @param {Buffer} file 文件二进制数据
|
34
|
-
* @returns {string} 文件 id
|
35
|
-
*/
|
36
|
-
|
37
|
-
|
38
|
-
module.exports = async ({
|
39
|
-
baseUrl,
|
40
|
-
sessionKey,
|
41
|
-
type,
|
42
|
-
target,
|
43
|
-
path,
|
44
|
-
file
|
45
|
-
}) => {
|
46
|
-
try {
|
47
|
-
// 拼接 url
|
48
|
-
const targetUrl = new URL('/uploadFileAndSend', baseUrl).toString(); // 构造 fromdata
|
49
|
-
|
50
|
-
const form = new FormData();
|
51
|
-
form.append('sessionKey', sessionKey);
|
52
|
-
form.append('type', type);
|
53
|
-
form.append('target', target);
|
54
|
-
form.append('path', path);
|
55
|
-
form.append('file', file, {
|
56
|
-
filename: 'payload'
|
57
|
-
}); // 请求
|
58
|
-
|
59
|
-
const responseData = await axios.post(targetUrl, form, {
|
60
|
-
// formdata.getHeaders 将会指定 content-type,同时给定随
|
61
|
-
// 机生成的 boundary,即分隔符,用以分隔多个表单项而不会造成混乱
|
62
|
-
headers: form.getHeaders()
|
63
|
-
});
|
64
|
-
|
65
|
-
try {
|
66
|
-
var {
|
67
|
-
data: {
|
68
|
-
msg: message,
|
69
|
-
code,
|
70
|
-
id
|
71
|
-
}
|
72
|
-
} = responseData;
|
73
|
-
} catch (error) {
|
74
|
-
throw new Error('请求返回格式出错,请检查 mirai-console');
|
75
|
-
} // 抛出 mirai 的异常,到 catch 中处理后再抛出
|
76
|
-
|
77
|
-
|
78
|
-
if (code in errCodeMap) {
|
79
|
-
throw new Error(message);
|
80
|
-
}
|
81
|
-
|
82
|
-
return id;
|
83
|
-
} catch (error) {
|
84
|
-
console.error(`mirai-js: error ${locationStr}`);
|
85
|
-
errorHandler(error);
|
86
|
-
}
|
87
|
-
};
|