mirai-js 2.8.3 → 2.8.5
Sign up to get free protection for your applications and to get access to all the features.
- package/1.mp3 +0 -0
- package/README.md +2 -0
- package/demo.ts +3 -6
- package/dist/browser/mirai-js.js +1 -1
- package/dist/node/borwserEntry.js +21 -0
- package/dist/node/core/uploadVoice.js +1 -1
- package/dist/node/lib/index.ts +0 -0
- package/index.ts +36 -3
- package/package.json +1 -1
- package/src/borwserEntry.js +11 -0
- package/src/core/uploadVoice.js +1 -1
- package/src/lib/index.ts +0 -0
- package/srcold/BaseType.d.ts +419 -0
- package/srcold/Bot.d.ts +567 -0
- package/srcold/Bot.js +1208 -0
- package/srcold/FileManager.js +270 -0
- package/srcold/Message.d.ts +66 -0
- package/srcold/Message.js +314 -0
- package/srcold/Middleware.d.ts +170 -0
- package/srcold/Middleware.js +657 -0
- package/srcold/Waiter.d.ts +13 -0
- package/srcold/Waiter.js +24 -0
- package/srcold/core/anno/deleteAnno.js +43 -0
- package/srcold/core/anno/getAnno.js +44 -0
- package/srcold/core/anno/publishAnno.js +44 -0
- package/srcold/core/auth.js +40 -0
- package/srcold/core/fs/deleteGroupFile.js +45 -0
- package/srcold/core/fs/getGroupFileInfo.js +46 -0
- package/srcold/core/fs/getGroupFileList.js +47 -0
- package/srcold/core/fs/makeGroupDir.js +45 -0
- package/srcold/core/fs/moveGroupFile.js +47 -0
- package/srcold/core/fs/renameGroupFile.js +44 -0
- package/srcold/core/fs/uploadGroupFIle.js +58 -0
- package/srcold/core/getFriendList.js +37 -0
- package/srcold/core/getGroupConfig.js +37 -0
- package/srcold/core/getGroupList.js +37 -0
- package/srcold/core/getMemberInfo.js +41 -0
- package/srcold/core/getMemberList.js +49 -0
- package/srcold/core/getSessionConfig.js +39 -0
- package/srcold/core/getUserProfile.js +40 -0
- package/srcold/core/messageFromId.js +40 -0
- package/srcold/core/mute.js +41 -0
- package/srcold/core/muteAll.js +39 -0
- package/srcold/core/quitGroup.js +40 -0
- package/srcold/core/recall.js +39 -0
- package/srcold/core/releaseSession.js +41 -0
- package/srcold/core/removeFriend.js +40 -0
- package/srcold/core/removeMember.js +42 -0
- package/srcold/core/responseBotInvitedJoinGroupRequest.js +46 -0
- package/srcold/core/responseFirendRequest.js +45 -0
- package/srcold/core/responseMemberJoinRequest.js +47 -0
- package/srcold/core/sendCommand.js +41 -0
- package/srcold/core/sendFriendMessage.js +43 -0
- package/srcold/core/sendGroupMessage.js +43 -0
- package/srcold/core/sendImageMessage.js +4 -0
- package/srcold/core/sendNudge.js +43 -0
- package/srcold/core/sendTempMessage.js +55 -0
- package/srcold/core/setEssence.js +44 -0
- package/srcold/core/setGroupConfig.js +58 -0
- package/srcold/core/setMemberAdmin.js +44 -0
- package/srcold/core/setMemberInfo.js +48 -0
- package/srcold/core/setSessionConfig.js +41 -0
- package/srcold/core/startListeningBrowser.js +62 -0
- package/srcold/core/startListeningNode.js +74 -0
- package/srcold/core/stopListeningBrowser.js +34 -0
- package/srcold/core/stopListeningNode.js +34 -0
- package/srcold/core/unmute.js +40 -0
- package/srcold/core/unmuteAll.js +39 -0
- package/srcold/core/uploadImage.js +55 -0
- package/srcold/core/uploadVoice.js +54 -0
- package/srcold/core/verify.js +41 -0
- package/srcold/index.d.ts +10 -0
- package/srcold/index.js +21 -0
- package/srcold/interface.js +20 -0
- package/srcold/polyfill/URL.js +5 -0
- package/srcold/polyfill/wsListener.js +6 -0
- package/srcold/typeHelpers.d.ts +2 -0
- package/srcold/util/errCode.js +23 -0
- package/srcold/util/errorHandler.js +24 -0
- package/srcold/util/getInvalidParamsString.js +12 -0
- package/srcold/util/isBrowserEnv.js +3 -0
- package/srcold/util/random.js +6 -0
- package/webpack.config.js +3 -2
@@ -0,0 +1,49 @@
|
|
1
|
+
const { errCodeMap } = require('../util/errCode');
|
2
|
+
const axios = require('axios').default;
|
3
|
+
const { URL } = require('../polyfill/URL');
|
4
|
+
const errorHandler = require('../util/errorHandler');
|
5
|
+
const path = require('path');
|
6
|
+
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
7
|
+
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @description 获取指定群的成员列表
|
11
|
+
* @param {string} baseUrl mirai-api-http server 的地址
|
12
|
+
* @param {string} sessionKey 会话标识
|
13
|
+
* @param {number} target 欲获取成员列表的群号
|
14
|
+
* @returns {Object[]}
|
15
|
+
* 结构 array[{
|
16
|
+
*
|
17
|
+
* id, memberName, permission,
|
18
|
+
* group: { id, name, permission },
|
19
|
+
*
|
20
|
+
* }]
|
21
|
+
*/
|
22
|
+
module.exports = async ({ baseUrl, sessionKey, target }) => {
|
23
|
+
try {
|
24
|
+
// 拼接 url
|
25
|
+
const url = new URL('/memberList', baseUrl).toString();
|
26
|
+
|
27
|
+
// 请求
|
28
|
+
const responseData = await axios.get(url, { params: { sessionKey, target } });
|
29
|
+
try {
|
30
|
+
var { data, data: { msg: message, code } } = responseData;
|
31
|
+
} catch (error) {
|
32
|
+
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
33
|
+
}
|
34
|
+
|
35
|
+
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
36
|
+
if (code in errCodeMap) {
|
37
|
+
throw new Error(message);
|
38
|
+
}
|
39
|
+
|
40
|
+
if (Array.isArray(data)) {
|
41
|
+
return data;
|
42
|
+
} else {
|
43
|
+
return data.data;
|
44
|
+
}
|
45
|
+
} catch (error) {
|
46
|
+
console.error(`mirai-js: error ${locationStr}`);
|
47
|
+
errorHandler(error);
|
48
|
+
}
|
49
|
+
};
|
@@ -0,0 +1,39 @@
|
|
1
|
+
const { errCodeMap } = require('../util/errCode');
|
2
|
+
const axios = require('axios');
|
3
|
+
const { URL } = require('../polyfill/URL');
|
4
|
+
const errorHandler = require('../util/errorHandler');
|
5
|
+
const path = require('path');
|
6
|
+
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
7
|
+
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @description 获取指定 session 的 config
|
11
|
+
* @param {string} baseUrl mirai-api-http server 的地址
|
12
|
+
* @param {string} sessionKey 会话标识
|
13
|
+
* @returns {Object} 结构 { cacheSize, enableWebsocket }
|
14
|
+
*/
|
15
|
+
module.exports = async ({ baseUrl, sessionKey }) => {
|
16
|
+
try {
|
17
|
+
// 拼接 url
|
18
|
+
const url = new URL('/config', baseUrl).toString();
|
19
|
+
|
20
|
+
// 请求
|
21
|
+
const responseData = await axios.get(url, { params: { sessionKey } });
|
22
|
+
try {
|
23
|
+
var {
|
24
|
+
data: { data: { msg: message, code, cacheSize, enableWebsocket } },
|
25
|
+
} = responseData;
|
26
|
+
} catch (error) {
|
27
|
+
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
28
|
+
}
|
29
|
+
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
30
|
+
if (code in errCodeMap) {
|
31
|
+
throw new Error(message);
|
32
|
+
}
|
33
|
+
return { cacheSize, enableWebsocket };
|
34
|
+
} catch (error) {
|
35
|
+
console.error(`mirai-js: error ${locationStr}`);
|
36
|
+
errorHandler(error);
|
37
|
+
}
|
38
|
+
|
39
|
+
};
|
@@ -0,0 +1,40 @@
|
|
1
|
+
const { errCodeMap } = require('../util/errCode');
|
2
|
+
const axios = require('axios');
|
3
|
+
const { URL } = require('../polyfill/URL');
|
4
|
+
const errorHandler = require('../util/errorHandler');
|
5
|
+
const path = require('path');
|
6
|
+
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
7
|
+
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @description 获取用户信息
|
11
|
+
* @param {string} baseUrl mirai-api-http server 的地址
|
12
|
+
* @param {string} sessionKey 会话标识
|
13
|
+
* @param {number} target qq 号
|
14
|
+
* @returns {Object} 结构 { nickname, email, age, level, sign, sex }
|
15
|
+
*/
|
16
|
+
module.exports = async ({ baseUrl, sessionKey, target, memberId }) => {
|
17
|
+
try {
|
18
|
+
// 拼接 url
|
19
|
+
const url = new URL('/userProfile', baseUrl).toString();
|
20
|
+
|
21
|
+
// 请求
|
22
|
+
const responseData = await axios.get(url, { params: { sessionKey, target, memberId } });
|
23
|
+
try {
|
24
|
+
var {
|
25
|
+
data: { msg: message, code, nickname, email, age, level, sign, sex }
|
26
|
+
} = responseData;
|
27
|
+
} catch (error) {
|
28
|
+
throw new Error('请求返回格式出错,请检查 mirai-console');
|
29
|
+
}
|
30
|
+
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
31
|
+
if (code in errCodeMap) {
|
32
|
+
throw new Error(message);
|
33
|
+
}
|
34
|
+
return { nickname, email, age, level, sign, sex };
|
35
|
+
} catch (error) {
|
36
|
+
console.error(`mirai-js: error ${locationStr}`);
|
37
|
+
errorHandler(error);
|
38
|
+
}
|
39
|
+
|
40
|
+
};
|
@@ -0,0 +1,40 @@
|
|
1
|
+
const { errCodeMap } = require('../util/errCode');
|
2
|
+
const axios = require('axios');
|
3
|
+
const { URL } = require('../polyfill/URL');
|
4
|
+
const errorHandler = require('../util/errorHandler');
|
5
|
+
const path = require('path');
|
6
|
+
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
7
|
+
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @description 通过 messageId 获取消息
|
11
|
+
* @param {string} baseUrl mirai-api-http server 的地址
|
12
|
+
* @param {string} sessionKey 会话标识
|
13
|
+
* @param {number} target qq 号/群号
|
14
|
+
* @param {number} messageId 消息 id
|
15
|
+
* @returns {Object} 结构 { type, messageChain, sender }
|
16
|
+
*/
|
17
|
+
module.exports = async ({ baseUrl, sessionKey, target, messageId }) => {
|
18
|
+
try {
|
19
|
+
// 拼接 url
|
20
|
+
const url = new URL('/messageFromId', baseUrl).toString();
|
21
|
+
|
22
|
+
// 请求
|
23
|
+
const responseData = await axios.get(url, { params: { sessionKey, target, messageId } });
|
24
|
+
try {
|
25
|
+
var {
|
26
|
+
data: { msg: message, code, data }
|
27
|
+
} = responseData;
|
28
|
+
} catch (error) {
|
29
|
+
throw new Error('请求返回格式出错,请检查 mirai-console');
|
30
|
+
}
|
31
|
+
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
32
|
+
if (code in errCodeMap) {
|
33
|
+
throw new Error(message);
|
34
|
+
}
|
35
|
+
return data;
|
36
|
+
} catch (error) {
|
37
|
+
console.error(`mirai-js: error ${locationStr}`);
|
38
|
+
errorHandler(error);
|
39
|
+
}
|
40
|
+
};
|
@@ -0,0 +1,41 @@
|
|
1
|
+
const { errCodeMap } = require('../util/errCode');
|
2
|
+
const axios = require('axios').default;
|
3
|
+
const { URL } = require('../polyfill/URL');
|
4
|
+
const errorHandler = require('../util/errorHandler');
|
5
|
+
const path = require('path');
|
6
|
+
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
7
|
+
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @description 禁言群成员
|
11
|
+
* @param {string} baseUrl mirai-api-http server 的主机地址
|
12
|
+
* @param {string} sessionKey 会话标识
|
13
|
+
* @param {number} target 欲禁言成员所在群号
|
14
|
+
* @param {number} memberId 欲禁言成员 qq 号
|
15
|
+
* @param {number} time 禁言时长,单位: s (秒)
|
16
|
+
* @returns {Object} 结构 { message, code }
|
17
|
+
*/
|
18
|
+
module.exports = async ({ baseUrl, sessionKey, target, memberId, time }) => {
|
19
|
+
try {
|
20
|
+
// 拼接 URL
|
21
|
+
const url = new URL('/mute', baseUrl).toString();
|
22
|
+
|
23
|
+
// 请求
|
24
|
+
const responseData = await axios.post(url, { sessionKey, target, memberId, time });
|
25
|
+
try {
|
26
|
+
var {
|
27
|
+
data: { code, msg: message }
|
28
|
+
} = responseData;
|
29
|
+
} catch (error) {
|
30
|
+
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
31
|
+
}
|
32
|
+
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
33
|
+
if (code in errCodeMap) {
|
34
|
+
throw new Error(message);
|
35
|
+
}
|
36
|
+
return { message, code };
|
37
|
+
} catch (error) {
|
38
|
+
console.error(`mirai-js: error ${locationStr}`);
|
39
|
+
errorHandler(error);
|
40
|
+
}
|
41
|
+
};
|
@@ -0,0 +1,39 @@
|
|
1
|
+
const { errCodeMap } = require('../util/errCode');
|
2
|
+
const axios = require('axios').default;
|
3
|
+
const { URL } = require('../polyfill/URL');
|
4
|
+
const errorHandler = require('../util/errorHandler');
|
5
|
+
const path = require('path');
|
6
|
+
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
7
|
+
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @description 全员禁言
|
11
|
+
* @param {string} baseUrl mirai-api-http server 的主机地址
|
12
|
+
* @param {string} sessionKey 会话标识
|
13
|
+
* @param {number} target 欲全员禁言的群号
|
14
|
+
* @returns {Object} 结构 { message, code }
|
15
|
+
*/
|
16
|
+
module.exports = async ({ baseUrl, sessionKey, target }) => {
|
17
|
+
try {
|
18
|
+
// 拼接 URL
|
19
|
+
const url = new URL('/muteAll', baseUrl).toString();
|
20
|
+
|
21
|
+
// 请求
|
22
|
+
const responseData = await axios.post(url, { sessionKey, target });
|
23
|
+
try {
|
24
|
+
var {
|
25
|
+
data: { code, msg: message }
|
26
|
+
} = responseData;
|
27
|
+
} catch (error) {
|
28
|
+
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
29
|
+
}
|
30
|
+
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
31
|
+
if (code in errCodeMap) {
|
32
|
+
throw new Error(message);
|
33
|
+
}
|
34
|
+
return { message, code };
|
35
|
+
} catch (error) {
|
36
|
+
console.error(`mirai-js: error ${locationStr}`);
|
37
|
+
errorHandler(error);
|
38
|
+
}
|
39
|
+
};
|
@@ -0,0 +1,40 @@
|
|
1
|
+
const { errCodeMap } = require('../util/errCode');
|
2
|
+
const axios = require('axios').default;
|
3
|
+
const { URL } = require('../polyfill/URL');
|
4
|
+
const errorHandler = require('../util/errorHandler');
|
5
|
+
const path = require('path');
|
6
|
+
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
7
|
+
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @description 退出群聊
|
11
|
+
* @param {string} baseUrl mirai-api-http server 的地址
|
12
|
+
* @param {string} sessionKey 会话标识
|
13
|
+
* @param {number} target 欲退出的群号
|
14
|
+
* @returns {Object} 结构 { message, code }
|
15
|
+
*/
|
16
|
+
module.exports = async ({ baseUrl, sessionKey, target }) => {
|
17
|
+
try {
|
18
|
+
// 拼接 url
|
19
|
+
const url = new URL('/quit', baseUrl).toString();
|
20
|
+
|
21
|
+
// 请求
|
22
|
+
const responseData = await axios.post(url, { sessionKey, target });
|
23
|
+
try {
|
24
|
+
var {
|
25
|
+
data: { msg: message, code }
|
26
|
+
} = responseData;
|
27
|
+
} catch (error) {
|
28
|
+
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
29
|
+
}
|
30
|
+
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
31
|
+
if (code in errCodeMap) {
|
32
|
+
throw new Error(message);
|
33
|
+
}
|
34
|
+
return { message, code };
|
35
|
+
} catch (error) {
|
36
|
+
console.error(`mirai-js: error ${locationStr}`);
|
37
|
+
errorHandler(error);
|
38
|
+
}
|
39
|
+
|
40
|
+
};
|
@@ -0,0 +1,39 @@
|
|
1
|
+
const { errCodeMap } = require('../util/errCode');
|
2
|
+
const axios = require('axios').default;
|
3
|
+
const { URL } = require('../polyfill/URL');
|
4
|
+
const errorHandler = require('../util/errorHandler');
|
5
|
+
const path = require('path');
|
6
|
+
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
7
|
+
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @description 撤回由 messageId 确定的消息
|
11
|
+
* @param {string} baseUrl mirai-api-http server 的主机地址
|
12
|
+
* @param {string} sessionKey 会话标识
|
13
|
+
* @param {number} target 欲撤回消息的 messageId
|
14
|
+
* @returns {Object} 结构 { message, code }
|
15
|
+
*/
|
16
|
+
module.exports = async ({ baseUrl, sessionKey, target }) => {
|
17
|
+
try {
|
18
|
+
// 拼接 URL
|
19
|
+
const url = new URL('/recall', baseUrl).toString();
|
20
|
+
|
21
|
+
// 请求
|
22
|
+
const responseData = await axios.post(url, { sessionKey, target });
|
23
|
+
try {
|
24
|
+
var {
|
25
|
+
data: { code, msg: message }
|
26
|
+
} = responseData;
|
27
|
+
} catch (error) {
|
28
|
+
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
29
|
+
}
|
30
|
+
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
31
|
+
if (code in errCodeMap) {
|
32
|
+
throw new Error(message);
|
33
|
+
}
|
34
|
+
return { message, code };
|
35
|
+
} catch (error) {
|
36
|
+
console.error(`mirai-js: error ${locationStr}`);
|
37
|
+
errorHandler(error);
|
38
|
+
}
|
39
|
+
};
|
@@ -0,0 +1,41 @@
|
|
1
|
+
const { errCodeMap } = require('../util/errCode');
|
2
|
+
const axios = require('axios').default;
|
3
|
+
const { URL } = require('../polyfill/URL');
|
4
|
+
const errorHandler = require('../util/errorHandler');
|
5
|
+
const path = require('path');
|
6
|
+
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
7
|
+
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @description 关闭一个会话
|
11
|
+
* @param {string} baseUrl mirai-api-http server 的主机地址
|
12
|
+
* @param {string} sessionKey 会话标识
|
13
|
+
* @param {number} qq qq 号
|
14
|
+
* @returns {Object} 结构 { message, code }
|
15
|
+
*/
|
16
|
+
module.exports = async ({ baseUrl, sessionKey, qq }) => {
|
17
|
+
try {
|
18
|
+
// 拼接 url
|
19
|
+
const url = new URL('/release', baseUrl).toString();
|
20
|
+
|
21
|
+
// 请求
|
22
|
+
const responseData = await axios.post(url, { sessionKey, qq });
|
23
|
+
try {
|
24
|
+
var {
|
25
|
+
data: { msg: message, code }
|
26
|
+
} = responseData;
|
27
|
+
} catch (error) {
|
28
|
+
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
29
|
+
}
|
30
|
+
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
31
|
+
if (code in errCodeMap) {
|
32
|
+
throw new Error(message);
|
33
|
+
}
|
34
|
+
return { message, code };
|
35
|
+
} catch (error) {
|
36
|
+
console.error(`mirai-js: error ${locationStr}`);
|
37
|
+
console.error(`mirai-js: error ${locationStr}`);
|
38
|
+
errorHandler(error);
|
39
|
+
}
|
40
|
+
|
41
|
+
};
|
@@ -0,0 +1,40 @@
|
|
1
|
+
const { errCodeMap } = require('../util/errCode');
|
2
|
+
const axios = require('axios').default;
|
3
|
+
const { URL } = require('../polyfill/URL');
|
4
|
+
const errorHandler = require('../util/errorHandler');
|
5
|
+
const path = require('path');
|
6
|
+
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
7
|
+
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @description 删除好友
|
11
|
+
* @param {string} baseUrl mirai-api-http server 的地址
|
12
|
+
* @param {string} sessionKey 会话标识
|
13
|
+
* @param {number} target 欲删除好友的 qq 号
|
14
|
+
* @returns {Object} 结构 { message, code }
|
15
|
+
*/
|
16
|
+
module.exports = async ({ baseUrl, sessionKey, target }) => {
|
17
|
+
try {
|
18
|
+
// 拼接 url
|
19
|
+
const url = new URL('/deleteFriend', baseUrl).toString();
|
20
|
+
|
21
|
+
// 请求
|
22
|
+
const responseData = await axios.post(url, { sessionKey, target });
|
23
|
+
try {
|
24
|
+
var {
|
25
|
+
data: { msg: message, code }
|
26
|
+
} = responseData;
|
27
|
+
} catch (error) {
|
28
|
+
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
29
|
+
}
|
30
|
+
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
31
|
+
if (code in errCodeMap) {
|
32
|
+
throw new Error(message);
|
33
|
+
}
|
34
|
+
return { message, code };
|
35
|
+
} catch (error) {
|
36
|
+
console.error(`mirai-js: error ${locationStr}`);
|
37
|
+
errorHandler(error);
|
38
|
+
}
|
39
|
+
|
40
|
+
};
|
@@ -0,0 +1,42 @@
|
|
1
|
+
const { errCodeMap } = require('../util/errCode');
|
2
|
+
const axios = require('axios').default;
|
3
|
+
const { URL } = require('../polyfill/URL');
|
4
|
+
const errorHandler = require('../util/errorHandler');
|
5
|
+
const path = require('path');
|
6
|
+
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
7
|
+
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @description 移除群成员
|
11
|
+
* @param {string} baseUrl mirai-api-http server 的地址
|
12
|
+
* @param {string} sessionKey 会话标识
|
13
|
+
* @param {number} target 欲移除的成员所在群号
|
14
|
+
* @param {number} memberId 欲移除的成员 qq 号
|
15
|
+
* @param {number} msg 信息
|
16
|
+
* @returns {Object} 结构 { message, code }
|
17
|
+
*/
|
18
|
+
module.exports = async ({ baseUrl, sessionKey, target, memberId, msg }) => {
|
19
|
+
try {
|
20
|
+
// 拼接 url
|
21
|
+
const url = new URL('/kick', baseUrl).toString();
|
22
|
+
|
23
|
+
// 请求
|
24
|
+
const responseData = await axios.post(url, { sessionKey, target, memberId, msg });
|
25
|
+
try {
|
26
|
+
var {
|
27
|
+
data: { msg: message, code }
|
28
|
+
} = responseData;
|
29
|
+
} catch (error) {
|
30
|
+
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
31
|
+
}
|
32
|
+
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
33
|
+
if (code in errCodeMap) {
|
34
|
+
throw new Error(message);
|
35
|
+
}
|
36
|
+
return { message, code };
|
37
|
+
} catch (error) {
|
38
|
+
console.error(`mirai-js: error ${locationStr}`);
|
39
|
+
errorHandler(error);
|
40
|
+
}
|
41
|
+
|
42
|
+
};
|
@@ -0,0 +1,46 @@
|
|
1
|
+
const { errCodeMap } = require('../util/errCode');
|
2
|
+
const axios = require('axios');
|
3
|
+
const { URL } = require('../polyfill/URL');
|
4
|
+
const errorHandler = require('../util/errorHandler');
|
5
|
+
const path = require('path');
|
6
|
+
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
7
|
+
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* ! 自动同意时,不会触发该事件
|
11
|
+
* @description 响应机器人被邀请入群请求
|
12
|
+
* @param {string} baseUrl mirai-api-http server 的地址
|
13
|
+
* @param {string} sessionKey 会话标识
|
14
|
+
* @param {number} eventId 响应申请事件的标识
|
15
|
+
* @param {number} fromId 邀请人(好友)的QQ号
|
16
|
+
* @param {number} groupId 被邀请进入群的群号
|
17
|
+
* @param {number} operate 响应的操作类型
|
18
|
+
* @param {string} message 回复的信息
|
19
|
+
* @returns {void}
|
20
|
+
*/
|
21
|
+
module.exports = async ({ baseUrl, sessionKey, eventId, fromId, groupId, operate, message = '' }) => {
|
22
|
+
try {
|
23
|
+
// 拼接 url
|
24
|
+
const url = new URL('/resp/botInvitedJoinGroupRequestEvent', baseUrl).toString();
|
25
|
+
|
26
|
+
// 请求
|
27
|
+
const responseData = await axios.post(url, {
|
28
|
+
sessionKey, eventId, fromId, groupId,
|
29
|
+
operate, message
|
30
|
+
});
|
31
|
+
try {
|
32
|
+
var {
|
33
|
+
data: { code, msg: serverMessage }
|
34
|
+
} = responseData;
|
35
|
+
} catch (error) {
|
36
|
+
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
37
|
+
}
|
38
|
+
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
39
|
+
if (code in errCodeMap) {
|
40
|
+
throw new Error(serverMessage);
|
41
|
+
}
|
42
|
+
} catch (error) {
|
43
|
+
console.error(`mirai-js: error ${locationStr}`);
|
44
|
+
errorHandler(error);
|
45
|
+
}
|
46
|
+
};
|
@@ -0,0 +1,45 @@
|
|
1
|
+
const { errCodeMap } = require('../util/errCode');
|
2
|
+
const axios = require('axios');
|
3
|
+
const { URL } = require('../polyfill/URL');
|
4
|
+
const errorHandler = require('../util/errorHandler');
|
5
|
+
const path = require('path');
|
6
|
+
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
7
|
+
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @description 响应好友请求
|
11
|
+
* @param {string} baseUrl mirai-api-http server 的地址
|
12
|
+
* @param {string} sessionKey 会话标识
|
13
|
+
* @param {number} eventId 响应申请事件的标识
|
14
|
+
* @param {number} fromId 事件对应申请人QQ号
|
15
|
+
* @param {number} groupId 事件对应申请人的群号,可能为0
|
16
|
+
* @param {number} operate 响应的操作类型
|
17
|
+
* @param {string} message 回复的信息
|
18
|
+
* @returns {void}
|
19
|
+
*/
|
20
|
+
module.exports = async ({ baseUrl, sessionKey, eventId, fromId, groupId, operate, message = '' }) => {
|
21
|
+
try {
|
22
|
+
// 拼接 url
|
23
|
+
const url = new URL('/resp/newFriendRequestEvent', baseUrl).toString();
|
24
|
+
|
25
|
+
// 请求
|
26
|
+
const responseData = await axios.post(url, {
|
27
|
+
sessionKey, eventId, fromId, groupId,
|
28
|
+
operate, message
|
29
|
+
});
|
30
|
+
try {
|
31
|
+
var {
|
32
|
+
data: { code, msg: serverMessage }
|
33
|
+
} = responseData;
|
34
|
+
} catch (error) {
|
35
|
+
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
36
|
+
}
|
37
|
+
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
38
|
+
if (code in errCodeMap) {
|
39
|
+
throw new Error(serverMessage);
|
40
|
+
}
|
41
|
+
} catch (error) {
|
42
|
+
console.error(`mirai-js: error ${locationStr}`);
|
43
|
+
errorHandler(error);
|
44
|
+
}
|
45
|
+
};
|
@@ -0,0 +1,47 @@
|
|
1
|
+
const { errCodeMap } = require('../util/errCode');
|
2
|
+
const axios = require('axios');
|
3
|
+
const { URL } = require('../polyfill/URL');
|
4
|
+
const errorHandler = require('../util/errorHandler');
|
5
|
+
const path = require('path');
|
6
|
+
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
7
|
+
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* FIXME: mirai-core 的问题,有时候收不到 MemberJoinRequestEvent 事件
|
11
|
+
* 该功能未经测试
|
12
|
+
* @description 响应好友请求
|
13
|
+
* @param {string} baseUrl mirai-api-http server 的地址
|
14
|
+
* @param {string} sessionKey 会话标识
|
15
|
+
* @param {number} eventId 响应申请事件的标识
|
16
|
+
* @param {number} fromId 事件对应申请人QQ号
|
17
|
+
* @param {number} groupId 事件对应申请人的群号
|
18
|
+
* @param {number} operate 响应的操作类型
|
19
|
+
* @param {string} message 回复的信息
|
20
|
+
* @returns {void}
|
21
|
+
*/
|
22
|
+
module.exports = async ({ baseUrl, sessionKey, eventId, fromId, groupId, operate, message = '' }) => {
|
23
|
+
try {
|
24
|
+
// 拼接 url
|
25
|
+
const url = new URL('/resp/memberJoinRequestEvent', baseUrl).toString();
|
26
|
+
|
27
|
+
// 请求
|
28
|
+
const responseData = await axios.post(url, {
|
29
|
+
sessionKey, eventId, fromId, groupId,
|
30
|
+
operate, message
|
31
|
+
});
|
32
|
+
try {
|
33
|
+
var {
|
34
|
+
data: { code, msg: serverMessage }
|
35
|
+
} = responseData;
|
36
|
+
} catch (error) {
|
37
|
+
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
38
|
+
}
|
39
|
+
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
40
|
+
if (code in errCodeMap) {
|
41
|
+
throw new Error(serverMessage);
|
42
|
+
}
|
43
|
+
} catch (error) {
|
44
|
+
console.error(`mirai-js: error ${locationStr}`);
|
45
|
+
errorHandler(error);
|
46
|
+
}
|
47
|
+
};
|
@@ -0,0 +1,41 @@
|
|
1
|
+
const axios = require('axios').default;
|
2
|
+
const { errCodeMap } = require('../util/errCode');
|
3
|
+
const { URL } = require('../polyfill/URL');
|
4
|
+
const errorHandler = require('../util/errorHandler');
|
5
|
+
const path = require('path');
|
6
|
+
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
7
|
+
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
8
|
+
|
9
|
+
/**
|
10
|
+
* @description 向 mirai-console 发送指令
|
11
|
+
* @param {string} baseUrl mirai-api-http server 的地址
|
12
|
+
* @param {string} sessionKey 会话标识
|
13
|
+
* @param {string} command 指令名
|
14
|
+
* @param {MessageChain[]} args 指令的参数
|
15
|
+
* @returns {Object} 结构 { message, code }
|
16
|
+
*/
|
17
|
+
module.exports = async ({ baseUrl, sessionKey, command }) => {
|
18
|
+
try {
|
19
|
+
// 拼接 url
|
20
|
+
const url = new URL('/cmd/execute', baseUrl).toString();
|
21
|
+
|
22
|
+
// 请求
|
23
|
+
const responseData = await axios.post(url, { sessionKey, command, });
|
24
|
+
try {
|
25
|
+
var {
|
26
|
+
data: { msg: message, code },
|
27
|
+
} = responseData;
|
28
|
+
} catch (error) {
|
29
|
+
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
30
|
+
}
|
31
|
+
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
32
|
+
if (code in errCodeMap) {
|
33
|
+
throw new Error(message);
|
34
|
+
}
|
35
|
+
return { message, code };
|
36
|
+
} catch (error) {
|
37
|
+
console.error(`mirai-js: error ${locationStr}`);
|
38
|
+
errorHandler(error);
|
39
|
+
}
|
40
|
+
|
41
|
+
};
|