mirai-js 2.8.0-0 → 2.8.0-1
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.
- 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
|
-
};
|