mirai-js 2.8.5 → 2.8.6
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/browser/mirai-js.js +1 -1
- package/dist/node/borwserEntry.js +1 -1
- package/package.json +1 -1
- package/src/borwserEntry.js +1 -1
- package/1.mp3 +0 -0
- package/demo.ts +0 -29
- package/dist/node/lib/index.ts +0 -0
- package/index.ts +0 -38
- package/src/lib/index.ts +0 -0
- package/srcold/BaseType.d.ts +0 -419
- package/srcold/Bot.d.ts +0 -567
- package/srcold/Bot.js +0 -1208
- package/srcold/FileManager.js +0 -270
- package/srcold/Message.d.ts +0 -66
- package/srcold/Message.js +0 -314
- package/srcold/Middleware.d.ts +0 -170
- package/srcold/Middleware.js +0 -657
- package/srcold/Waiter.d.ts +0 -13
- package/srcold/Waiter.js +0 -24
- package/srcold/core/anno/deleteAnno.js +0 -43
- package/srcold/core/anno/getAnno.js +0 -44
- package/srcold/core/anno/publishAnno.js +0 -44
- package/srcold/core/auth.js +0 -40
- package/srcold/core/fs/deleteGroupFile.js +0 -45
- package/srcold/core/fs/getGroupFileInfo.js +0 -46
- package/srcold/core/fs/getGroupFileList.js +0 -47
- package/srcold/core/fs/makeGroupDir.js +0 -45
- package/srcold/core/fs/moveGroupFile.js +0 -47
- package/srcold/core/fs/renameGroupFile.js +0 -44
- package/srcold/core/fs/uploadGroupFIle.js +0 -58
- package/srcold/core/getFriendList.js +0 -37
- package/srcold/core/getGroupConfig.js +0 -37
- package/srcold/core/getGroupList.js +0 -37
- package/srcold/core/getMemberInfo.js +0 -41
- package/srcold/core/getMemberList.js +0 -49
- package/srcold/core/getSessionConfig.js +0 -39
- package/srcold/core/getUserProfile.js +0 -40
- package/srcold/core/messageFromId.js +0 -40
- package/srcold/core/mute.js +0 -41
- package/srcold/core/muteAll.js +0 -39
- package/srcold/core/quitGroup.js +0 -40
- package/srcold/core/recall.js +0 -39
- package/srcold/core/releaseSession.js +0 -41
- package/srcold/core/removeFriend.js +0 -40
- package/srcold/core/removeMember.js +0 -42
- package/srcold/core/responseBotInvitedJoinGroupRequest.js +0 -46
- package/srcold/core/responseFirendRequest.js +0 -45
- package/srcold/core/responseMemberJoinRequest.js +0 -47
- package/srcold/core/sendCommand.js +0 -41
- package/srcold/core/sendFriendMessage.js +0 -43
- package/srcold/core/sendGroupMessage.js +0 -43
- package/srcold/core/sendImageMessage.js +0 -4
- package/srcold/core/sendNudge.js +0 -43
- package/srcold/core/sendTempMessage.js +0 -55
- package/srcold/core/setEssence.js +0 -44
- package/srcold/core/setGroupConfig.js +0 -58
- package/srcold/core/setMemberAdmin.js +0 -44
- package/srcold/core/setMemberInfo.js +0 -48
- package/srcold/core/setSessionConfig.js +0 -41
- package/srcold/core/startListeningBrowser.js +0 -62
- package/srcold/core/startListeningNode.js +0 -74
- package/srcold/core/stopListeningBrowser.js +0 -34
- package/srcold/core/stopListeningNode.js +0 -34
- package/srcold/core/unmute.js +0 -40
- package/srcold/core/unmuteAll.js +0 -39
- package/srcold/core/uploadImage.js +0 -55
- package/srcold/core/uploadVoice.js +0 -54
- package/srcold/core/verify.js +0 -41
- package/srcold/index.d.ts +0 -10
- package/srcold/index.js +0 -21
- package/srcold/interface.js +0 -20
- package/srcold/polyfill/URL.js +0 -5
- package/srcold/polyfill/wsListener.js +0 -6
- package/srcold/typeHelpers.d.ts +0 -2
- package/srcold/util/errCode.js +0 -23
- package/srcold/util/errorHandler.js +0 -24
- package/srcold/util/getInvalidParamsString.js +0 -12
- package/srcold/util/isBrowserEnv.js +0 -3
- package/srcold/util/random.js +0 -6
@@ -1,43 +0,0 @@
|
|
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 向 qq 好友发送消息
|
11
|
-
* @param {string} baseUrl mirai-api-http server 的地址
|
12
|
-
* @param {string} sessionKey 会话标识
|
13
|
-
* @param {number} target 目标好友 qq 号
|
14
|
-
* @param {number} quote 消息引用,使用发送时返回的 messageId
|
15
|
-
* @param {MessageType[]} messageChain 消息链,MessageType 数组
|
16
|
-
* @returns {Object} 结构 { message, code, messageId }
|
17
|
-
*/
|
18
|
-
module.exports = async ({ baseUrl, sessionKey, target, quote, messageChain }) => {
|
19
|
-
try {
|
20
|
-
// 拼接 url
|
21
|
-
const url = new URL('/sendFriendMessage', baseUrl).toString();
|
22
|
-
|
23
|
-
// 请求
|
24
|
-
const responseData = await axios.post(url, {
|
25
|
-
sessionKey, target, quote, messageChain
|
26
|
-
});
|
27
|
-
try {
|
28
|
-
var {
|
29
|
-
data: { msg: message, code, messageId }
|
30
|
-
} = responseData;
|
31
|
-
} catch (error) {
|
32
|
-
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
33
|
-
}
|
34
|
-
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
35
|
-
if (code in errCodeMap) {
|
36
|
-
throw new Error(message);
|
37
|
-
}
|
38
|
-
return messageId;
|
39
|
-
} catch (error) {
|
40
|
-
console.error(`mirai-js: error ${locationStr}`);
|
41
|
-
errorHandler(error);
|
42
|
-
}
|
43
|
-
};
|
@@ -1,43 +0,0 @@
|
|
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 向 qq 群发送消息
|
11
|
-
* @param {string} baseUrl mirai-api-http server 的地址
|
12
|
-
* @param {string} sessionKey 会话标识
|
13
|
-
* @param {number} target 目标群号
|
14
|
-
* @param {number} quote 消息引用,使用发送时返回的 messageId
|
15
|
-
* @param {MessageType[]} messageChain 消息链,MessageType 数组
|
16
|
-
* @returns {Object} 结构 { message, code, messageId }
|
17
|
-
*/
|
18
|
-
module.exports = async ({ baseUrl, sessionKey, target, quote, messageChain }) => {
|
19
|
-
try {
|
20
|
-
// 拼接 url
|
21
|
-
const url = new URL('/sendGroupMessage', baseUrl).toString();
|
22
|
-
|
23
|
-
// 请求
|
24
|
-
const responseData = await axios.post(url, {
|
25
|
-
sessionKey, target, quote, messageChain
|
26
|
-
});
|
27
|
-
try {
|
28
|
-
var {
|
29
|
-
data: { msg: message, code, messageId }
|
30
|
-
} = responseData;
|
31
|
-
} catch (error) {
|
32
|
-
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
33
|
-
}
|
34
|
-
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
35
|
-
if (code in errCodeMap) {
|
36
|
-
throw new Error(message);
|
37
|
-
}
|
38
|
-
return messageId;
|
39
|
-
} catch (error) {
|
40
|
-
console.error(`mirai-js: error ${locationStr}`);
|
41
|
-
errorHandler(error);
|
42
|
-
}
|
43
|
-
};
|
package/srcold/core/sendNudge.js
DELETED
@@ -1,43 +0,0 @@
|
|
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} subject 戳一戳的上下文,群或好友
|
15
|
-
* @param {string} kind 上下文类型, 可选值 Friend, Group
|
16
|
-
* @returns {Object} 结构 { message, code, messageId }
|
17
|
-
*/
|
18
|
-
module.exports = async ({ baseUrl, sessionKey, target, subject, kind }) => {
|
19
|
-
try {
|
20
|
-
// 拼接 url
|
21
|
-
const url = new URL('/sendNudge', baseUrl).toString();
|
22
|
-
|
23
|
-
// 请求
|
24
|
-
const responseData = await axios.post(url, {
|
25
|
-
sessionKey, target, subject, kind
|
26
|
-
});
|
27
|
-
try {
|
28
|
-
var {
|
29
|
-
data: { msg: message, code }
|
30
|
-
} = responseData;
|
31
|
-
} catch (error) {
|
32
|
-
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
33
|
-
}
|
34
|
-
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
35
|
-
if (code in errCodeMap) {
|
36
|
-
throw new Error(message);
|
37
|
-
}
|
38
|
-
return { message, code };
|
39
|
-
} catch (error) {
|
40
|
-
console.error(`mirai-js: error ${locationStr}`);
|
41
|
-
errorHandler(error);
|
42
|
-
}
|
43
|
-
};
|
@@ -1,55 +0,0 @@
|
|
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
|
-
* @param {number} group 目标群号
|
15
|
-
* @param {number} quote 消息引用,使用发送时返回的 messageId
|
16
|
-
* @param {MessageType[]} messageChain 消息链,MessageType 数组
|
17
|
-
* @returns {Object} 结构 { message, code, messageId }
|
18
|
-
*/
|
19
|
-
module.exports = async ({ baseUrl, sessionKey, qq, group, quote, messageChain }) => {
|
20
|
-
try {
|
21
|
-
// 拼接 url
|
22
|
-
const url = new URL('/sendTempMessage', baseUrl).toString();
|
23
|
-
|
24
|
-
if (!qq || !group) {
|
25
|
-
throw new Error('sendTempMessage 缺少必要的 qq 和 group 参数');
|
26
|
-
}
|
27
|
-
|
28
|
-
// 请求
|
29
|
-
const responseData = await axios.post(url, {
|
30
|
-
sessionKey,
|
31
|
-
qq,
|
32
|
-
group,
|
33
|
-
quote,
|
34
|
-
messageChain
|
35
|
-
});
|
36
|
-
|
37
|
-
try {
|
38
|
-
var {
|
39
|
-
data: { msg: message, code, messageId }
|
40
|
-
} = responseData;
|
41
|
-
} catch (error) {
|
42
|
-
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
43
|
-
}
|
44
|
-
|
45
|
-
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
46
|
-
if (code in errCodeMap) {
|
47
|
-
throw new Error(message);
|
48
|
-
}
|
49
|
-
return messageId;
|
50
|
-
} catch (error) {
|
51
|
-
console.error(`mirai-js: error ${locationStr}`);
|
52
|
-
errorHandler(error);
|
53
|
-
}
|
54
|
-
|
55
|
-
};
|
@@ -1,44 +0,0 @@
|
|
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
|
-
/**
|
11
|
-
* @description 设置群精华消息
|
12
|
-
* @param {string} baseUrl mirai-api-http server 的地址
|
13
|
-
* @param {string} sessionKey 会话标识
|
14
|
-
* @param {string} target 消息 id
|
15
|
-
* @returns {Object} 结构 { message, code }
|
16
|
-
*/
|
17
|
-
module.exports = async ({
|
18
|
-
baseUrl, sessionKey, target
|
19
|
-
}) => {
|
20
|
-
try {
|
21
|
-
// 拼接 url
|
22
|
-
const url = new URL('/setEssence', baseUrl).toString();
|
23
|
-
|
24
|
-
// 请求
|
25
|
-
const responseData = await axios.post(url, {
|
26
|
-
sessionKey, target,
|
27
|
-
});
|
28
|
-
try {
|
29
|
-
var {
|
30
|
-
data: { msg: message, code }
|
31
|
-
} = responseData;
|
32
|
-
} catch (error) {
|
33
|
-
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
34
|
-
}
|
35
|
-
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
36
|
-
if (code in errCodeMap) {
|
37
|
-
throw new Error(message);
|
38
|
-
}
|
39
|
-
return { message, code };
|
40
|
-
} catch (error) {
|
41
|
-
console.error(`mirai-js: error ${locationStr}`);
|
42
|
-
errorHandler(error);
|
43
|
-
}
|
44
|
-
};
|
@@ -1,58 +0,0 @@
|
|
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
|
-
/**
|
11
|
-
* @description 设置群配置
|
12
|
-
* @param {string} baseUrl mirai-api-http server 的地址
|
13
|
-
* @param {string} sessionKey 会话标识
|
14
|
-
* @param {string} name 群名
|
15
|
-
* @param {string} announcement 群公告
|
16
|
-
* @param {boolean} confessTalk 是否开启坦白说
|
17
|
-
* @param {boolean} allowMemberInvite 是否允许群员邀请
|
18
|
-
* @param {boolean} autoApprove 是否开启自动审批入群
|
19
|
-
* @param {boolean} anonymousChat 是否允许匿名聊天
|
20
|
-
* @returns {Object} 结构 { message, code }
|
21
|
-
*/
|
22
|
-
module.exports = async ({
|
23
|
-
baseUrl, sessionKey, target,
|
24
|
-
name, announcement, confessTalk, allowMemberInvite, autoApprove, anonymousChat
|
25
|
-
}) => {
|
26
|
-
try {
|
27
|
-
// 拼接 url
|
28
|
-
const url = new URL('/groupConfig', baseUrl).toString();
|
29
|
-
|
30
|
-
// 请求
|
31
|
-
const responseData = await axios.post(url, {
|
32
|
-
sessionKey, target,
|
33
|
-
config: {
|
34
|
-
name,
|
35
|
-
announcement,
|
36
|
-
confessTalk,
|
37
|
-
allowMemberInvite,
|
38
|
-
autoApprove,
|
39
|
-
anonymousChat,
|
40
|
-
}
|
41
|
-
});
|
42
|
-
try {
|
43
|
-
var {
|
44
|
-
data: { msg: message, code }
|
45
|
-
} = responseData;
|
46
|
-
} catch (error) {
|
47
|
-
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
48
|
-
}
|
49
|
-
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
50
|
-
if (code in errCodeMap) {
|
51
|
-
throw new Error(message);
|
52
|
-
}
|
53
|
-
return { message, code };
|
54
|
-
} catch (error) {
|
55
|
-
console.error(`mirai-js: error ${locationStr}`);
|
56
|
-
errorHandler(error);
|
57
|
-
}
|
58
|
-
};
|
@@ -1,44 +0,0 @@
|
|
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 群成员所在群号
|
14
|
-
* @param {number} memberId 群成员的 qq 号
|
15
|
-
* @param {string} assign 是否设置为管理员
|
16
|
-
* @returns {Object} 结构 { message, code }
|
17
|
-
*/
|
18
|
-
module.exports = async ({ baseUrl, sessionKey, target, memberId, assign }) => {
|
19
|
-
try {
|
20
|
-
// 拼接 url
|
21
|
-
const url = new URL('/memberAdmin', baseUrl).toString();
|
22
|
-
|
23
|
-
// 请求
|
24
|
-
const responseData = await axios.post(url, {
|
25
|
-
sessionKey, target, memberId, assign
|
26
|
-
});
|
27
|
-
try {
|
28
|
-
var {
|
29
|
-
data: { msg: message, code }
|
30
|
-
} = responseData;
|
31
|
-
} catch (error) {
|
32
|
-
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
33
|
-
}
|
34
|
-
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
35
|
-
if (code in errCodeMap) {
|
36
|
-
throw new Error(message);
|
37
|
-
}
|
38
|
-
return { message, code };
|
39
|
-
} catch (error) {
|
40
|
-
console.error(`mirai-js: error ${locationStr}`);
|
41
|
-
errorHandler(error);
|
42
|
-
}
|
43
|
-
|
44
|
-
};
|
@@ -1,48 +0,0 @@
|
|
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 群成员所在群号
|
14
|
-
* @param {number} memberId 群成员的 qq 号
|
15
|
-
* @param {string} name 要设置的群名片
|
16
|
-
* @param {string} specialTitle 要设置的群头衔
|
17
|
-
* @returns {Object} 结构 { message, code }
|
18
|
-
*/
|
19
|
-
module.exports = async ({ baseUrl, sessionKey, target, memberId, name, specialTitle }) => {
|
20
|
-
try {
|
21
|
-
// 拼接 url
|
22
|
-
const url = new URL('/memberInfo', baseUrl).toString();
|
23
|
-
|
24
|
-
// 请求
|
25
|
-
const responseData = await axios.post(url, {
|
26
|
-
sessionKey, target, memberId,
|
27
|
-
info: {
|
28
|
-
name, specialTitle,
|
29
|
-
}
|
30
|
-
});
|
31
|
-
try {
|
32
|
-
var {
|
33
|
-
data: { msg: message, code }
|
34
|
-
} = responseData;
|
35
|
-
} catch (error) {
|
36
|
-
throw new Error(('请求返回格式出错,请检查 mirai-console'));
|
37
|
-
}
|
38
|
-
// 抛出 mirai 的异常,到 catch 中处理后再抛出
|
39
|
-
if (code in errCodeMap) {
|
40
|
-
throw new Error(message);
|
41
|
-
}
|
42
|
-
return { message, code };
|
43
|
-
} catch (error) {
|
44
|
-
console.error(`mirai-js: error ${locationStr}`);
|
45
|
-
errorHandler(error);
|
46
|
-
}
|
47
|
-
|
48
|
-
};
|
@@ -1,41 +0,0 @@
|
|
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
|
-
/**
|
11
|
-
* @description 设置指定 session 的 config
|
12
|
-
* @param {string} baseUrl mirai-api-http server 的地址
|
13
|
-
* @param {string} sessionKey 会话标识
|
14
|
-
* @param {number} cacheSize 插件缓存大小
|
15
|
-
* @param {boolean} enableWebsocket websocket 状态
|
16
|
-
* @returns {Object} 结构 { message, code }
|
17
|
-
*/
|
18
|
-
module.exports = async ({ baseUrl, sessionKey, cacheSize, enableWebsocket }) => {
|
19
|
-
try {
|
20
|
-
// 拼接 url
|
21
|
-
const url = new URL('/config', baseUrl).toString();
|
22
|
-
|
23
|
-
// 请求
|
24
|
-
const responseData = await axios.post(url, { sessionKey, cacheSize, enableWebsocket });
|
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
|
-
};
|
@@ -1,62 +0,0 @@
|
|
1
|
-
const WebSocket = window.WebSocket;
|
2
|
-
const { URL } = require('../polyfill/URL');
|
3
|
-
const errorHandler = require('../util/errorHandler');
|
4
|
-
const path = require('path');
|
5
|
-
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
6
|
-
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
7
|
-
|
8
|
-
/**
|
9
|
-
* @description 开始侦听事件
|
10
|
-
* @param {string} baseUrl mirai-api-http server 的地址
|
11
|
-
* @param {string} sessionKey 会话标识
|
12
|
-
* @param {function} message 回调函数
|
13
|
-
* @param {function} error 回调函数
|
14
|
-
* @param {function} close 回调函数
|
15
|
-
* @returns {WebSocket} 建立连接的 WebSocket 实例
|
16
|
-
*/
|
17
|
-
module.exports = async ({ baseUrl, sessionKey, verifyKey, message, error, close }) => {
|
18
|
-
try {
|
19
|
-
// 拼接 url
|
20
|
-
let url = new URL(`/all?sessionKey=${sessionKey}&verifyKey=${verifyKey}`, baseUrl);
|
21
|
-
// 更改协议为 ws
|
22
|
-
url.protocol = 'ws';
|
23
|
-
url = url.toString();
|
24
|
-
|
25
|
-
const ws = new WebSocket(url);
|
26
|
-
|
27
|
-
// 监听 ws 事件,分发消息
|
28
|
-
ws.onopen = () => {
|
29
|
-
// 10s 发个心跳,浏览器会过早关闭没有发生交互的连接
|
30
|
-
const interval = setInterval(() => {
|
31
|
-
ws.send(1);
|
32
|
-
}, 10000);
|
33
|
-
|
34
|
-
ws.onmessage = ({ data }) => {
|
35
|
-
try {
|
36
|
-
message(JSON.parse(data)?.data);
|
37
|
-
} catch (error) { }// eslint-disable-line no-empty
|
38
|
-
};
|
39
|
-
|
40
|
-
ws.onerror = err => {
|
41
|
-
/*
|
42
|
-
interface Error {
|
43
|
-
name: string;
|
44
|
-
message: string;
|
45
|
-
stack?: string;
|
46
|
-
}
|
47
|
-
*/
|
48
|
-
error(err);
|
49
|
-
};
|
50
|
-
|
51
|
-
ws.onclose = ({ code, reason }) => {
|
52
|
-
// 关闭心跳
|
53
|
-
clearInterval(interval);
|
54
|
-
close({ code, reason });
|
55
|
-
};
|
56
|
-
};
|
57
|
-
return ws;
|
58
|
-
} catch (error) {
|
59
|
-
console.error(`mirai-js: error ${locationStr}`);
|
60
|
-
errorHandler(error);
|
61
|
-
}
|
62
|
-
};
|
@@ -1,74 +0,0 @@
|
|
1
|
-
const WebSocket = require('ws');
|
2
|
-
const { URL } = require('../polyfill/URL');
|
3
|
-
const errorHandler = require('../util/errorHandler');
|
4
|
-
const path = require('path');
|
5
|
-
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
6
|
-
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
7
|
-
|
8
|
-
/**
|
9
|
-
* @description 开始侦听事件
|
10
|
-
* @param {string} baseUrl mirai-api-http server 的地址
|
11
|
-
* @param {string} sessionKey 会话标识
|
12
|
-
* @param {function} message 回调函数
|
13
|
-
* @param {function} error 回调函数
|
14
|
-
* @param {function} close 回调函数
|
15
|
-
* @param {function} unexpectedResponse 回调函数
|
16
|
-
* @returns {WebSocket} 建立连接的 WebSocket 实例
|
17
|
-
*/
|
18
|
-
module.exports = async ({ baseUrl, sessionKey, verifyKey, message, error, close, unexpectedResponse }) => {
|
19
|
-
try {
|
20
|
-
// 拼接 url
|
21
|
-
let url = new URL(`/all?sessionKey=${sessionKey}&verifyKey=${verifyKey}`, baseUrl);
|
22
|
-
// 更改协议为 ws
|
23
|
-
url.protocol = 'ws';
|
24
|
-
url = url.toString();
|
25
|
-
|
26
|
-
const ws = new WebSocket(url);
|
27
|
-
|
28
|
-
|
29
|
-
// 监听 ws 事件,分发消息
|
30
|
-
ws.on('open', () => {
|
31
|
-
// 60s 发个心跳
|
32
|
-
const interval = setInterval(() => {
|
33
|
-
ws.ping((err) => {
|
34
|
-
if (err) {
|
35
|
-
try {
|
36
|
-
console.log(`ws ping error\n${JSON.stringify(err)}`);
|
37
|
-
} catch (error) { }// eslint-disable-line no-empty
|
38
|
-
}
|
39
|
-
});
|
40
|
-
}, 60000);
|
41
|
-
|
42
|
-
ws.on('message', data => {
|
43
|
-
try {
|
44
|
-
message(JSON.parse(data)?.data);
|
45
|
-
} catch (error) { }// eslint-disable-line no-empty
|
46
|
-
});
|
47
|
-
|
48
|
-
ws.on('error', err => {
|
49
|
-
/*
|
50
|
-
interface Error {
|
51
|
-
name: string;
|
52
|
-
message: string;
|
53
|
-
stack?: string;
|
54
|
-
}
|
55
|
-
*/
|
56
|
-
error(err);
|
57
|
-
});
|
58
|
-
|
59
|
-
ws.on('close', (code, reason) => {
|
60
|
-
// 关闭心跳
|
61
|
-
clearInterval(interval);
|
62
|
-
close({ code, reason });
|
63
|
-
});
|
64
|
-
|
65
|
-
ws.on('unexpectedResponse', ({ req, res }) => {
|
66
|
-
unexpectedResponse({ req, res });
|
67
|
-
});
|
68
|
-
});
|
69
|
-
return ws;
|
70
|
-
} catch (error) {
|
71
|
-
console.error(`mirai-js: error ${locationStr}`);
|
72
|
-
errorHandler(error);
|
73
|
-
}
|
74
|
-
};
|
@@ -1,34 +0,0 @@
|
|
1
|
-
const errorHandler = require('../util/errorHandler');
|
2
|
-
const path = require('path');
|
3
|
-
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
4
|
-
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
5
|
-
|
6
|
-
/**
|
7
|
-
* @description 停止侦听事件
|
8
|
-
* @param {WebSocket} 建立连接的 WebSocket 实例
|
9
|
-
*/
|
10
|
-
module.exports = async (wsConnection) => {
|
11
|
-
try {
|
12
|
-
// 由于在 ws open 之前关闭连接会抛异常,故应先判断此时是否正在连接中
|
13
|
-
if (wsConnection.readyState == wsConnection.CONNECTING) {
|
14
|
-
// 正在连接中,注册一个 open,等待回调时关闭
|
15
|
-
// 由于是一个异步过程,使用 Promise 包装以配合开发者可能存在的同步调用
|
16
|
-
await new Promise(resolve => {
|
17
|
-
wsConnection.onopen = () => {
|
18
|
-
// 关闭 websocket 的连接
|
19
|
-
wsConnection.close(1000);
|
20
|
-
resolve(undefined);
|
21
|
-
};
|
22
|
-
});
|
23
|
-
} else if (wsConnection.readyState == wsConnection.OPEN) {
|
24
|
-
// 关闭 websocket 的连接
|
25
|
-
wsConnection.close(1000);
|
26
|
-
} else {
|
27
|
-
// CLOSING or CLOSED
|
28
|
-
// do nothing
|
29
|
-
}
|
30
|
-
} catch (error) {
|
31
|
-
console.error(`mirai-js: error ${locationStr}`);
|
32
|
-
errorHandler(error);
|
33
|
-
}
|
34
|
-
};
|
@@ -1,34 +0,0 @@
|
|
1
|
-
const errorHandler = require('../util/errorHandler');
|
2
|
-
const path = require('path');
|
3
|
-
const { isBrowserEnv } = require('../util/isBrowserEnv');
|
4
|
-
const locationStr = !isBrowserEnv() ? `core.${path.basename(__filename, path.extname(__filename))}` : 'borwser';
|
5
|
-
|
6
|
-
/**
|
7
|
-
* @description 停止侦听事件
|
8
|
-
* @param {WebSocket} 建立连接的 WebSocket 实例
|
9
|
-
*/
|
10
|
-
module.exports = async (wsConnection) => {
|
11
|
-
try {
|
12
|
-
// 由于在 ws open 之前关闭连接会抛异常,故应先判断此时是否正在连接中
|
13
|
-
if (wsConnection.readyState == wsConnection.CONNECTING) {
|
14
|
-
// 正在连接中,注册一个 open,等待回调时关闭
|
15
|
-
// 由于是一个异步过程,使用 Promise 包装以配合开发者可能存在的同步调用
|
16
|
-
await new Promise(resolve => {
|
17
|
-
wsConnection.on('open', () => {
|
18
|
-
// 关闭 websocket 的连接
|
19
|
-
wsConnection.close(1000);
|
20
|
-
resolve(undefined);
|
21
|
-
});
|
22
|
-
});
|
23
|
-
} else if (wsConnection.readyState == wsConnection.OPEN) {
|
24
|
-
// 关闭 websocket 的连接
|
25
|
-
wsConnection.close(1000);
|
26
|
-
} else {
|
27
|
-
// CLOSING or CLOSED
|
28
|
-
// do nothing
|
29
|
-
}
|
30
|
-
} catch (error) {
|
31
|
-
console.error(`mirai-js: error ${locationStr}`);
|
32
|
-
errorHandler(error);
|
33
|
-
}
|
34
|
-
};
|
package/srcold/core/unmute.js
DELETED
@@ -1,40 +0,0 @@
|
|
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
|
-
* @returns {Object} 结构 { message, code }
|
16
|
-
*/
|
17
|
-
module.exports = async ({ baseUrl, sessionKey, target, memberId }) => {
|
18
|
-
try {
|
19
|
-
// 拼接 URL
|
20
|
-
const url = new URL('/unmute', baseUrl).toString();
|
21
|
-
|
22
|
-
// 请求
|
23
|
-
const responseData = await axios.post(url, { sessionKey, target, memberId });
|
24
|
-
try {
|
25
|
-
var {
|
26
|
-
data: { code, msg: message }
|
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
|
-
};
|