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.
Files changed (79) hide show
  1. package/dist/browser/mirai-js.js +1 -1
  2. package/dist/node/borwserEntry.js +1 -1
  3. package/package.json +1 -1
  4. package/src/borwserEntry.js +1 -1
  5. package/1.mp3 +0 -0
  6. package/demo.ts +0 -29
  7. package/dist/node/lib/index.ts +0 -0
  8. package/index.ts +0 -38
  9. package/src/lib/index.ts +0 -0
  10. package/srcold/BaseType.d.ts +0 -419
  11. package/srcold/Bot.d.ts +0 -567
  12. package/srcold/Bot.js +0 -1208
  13. package/srcold/FileManager.js +0 -270
  14. package/srcold/Message.d.ts +0 -66
  15. package/srcold/Message.js +0 -314
  16. package/srcold/Middleware.d.ts +0 -170
  17. package/srcold/Middleware.js +0 -657
  18. package/srcold/Waiter.d.ts +0 -13
  19. package/srcold/Waiter.js +0 -24
  20. package/srcold/core/anno/deleteAnno.js +0 -43
  21. package/srcold/core/anno/getAnno.js +0 -44
  22. package/srcold/core/anno/publishAnno.js +0 -44
  23. package/srcold/core/auth.js +0 -40
  24. package/srcold/core/fs/deleteGroupFile.js +0 -45
  25. package/srcold/core/fs/getGroupFileInfo.js +0 -46
  26. package/srcold/core/fs/getGroupFileList.js +0 -47
  27. package/srcold/core/fs/makeGroupDir.js +0 -45
  28. package/srcold/core/fs/moveGroupFile.js +0 -47
  29. package/srcold/core/fs/renameGroupFile.js +0 -44
  30. package/srcold/core/fs/uploadGroupFIle.js +0 -58
  31. package/srcold/core/getFriendList.js +0 -37
  32. package/srcold/core/getGroupConfig.js +0 -37
  33. package/srcold/core/getGroupList.js +0 -37
  34. package/srcold/core/getMemberInfo.js +0 -41
  35. package/srcold/core/getMemberList.js +0 -49
  36. package/srcold/core/getSessionConfig.js +0 -39
  37. package/srcold/core/getUserProfile.js +0 -40
  38. package/srcold/core/messageFromId.js +0 -40
  39. package/srcold/core/mute.js +0 -41
  40. package/srcold/core/muteAll.js +0 -39
  41. package/srcold/core/quitGroup.js +0 -40
  42. package/srcold/core/recall.js +0 -39
  43. package/srcold/core/releaseSession.js +0 -41
  44. package/srcold/core/removeFriend.js +0 -40
  45. package/srcold/core/removeMember.js +0 -42
  46. package/srcold/core/responseBotInvitedJoinGroupRequest.js +0 -46
  47. package/srcold/core/responseFirendRequest.js +0 -45
  48. package/srcold/core/responseMemberJoinRequest.js +0 -47
  49. package/srcold/core/sendCommand.js +0 -41
  50. package/srcold/core/sendFriendMessage.js +0 -43
  51. package/srcold/core/sendGroupMessage.js +0 -43
  52. package/srcold/core/sendImageMessage.js +0 -4
  53. package/srcold/core/sendNudge.js +0 -43
  54. package/srcold/core/sendTempMessage.js +0 -55
  55. package/srcold/core/setEssence.js +0 -44
  56. package/srcold/core/setGroupConfig.js +0 -58
  57. package/srcold/core/setMemberAdmin.js +0 -44
  58. package/srcold/core/setMemberInfo.js +0 -48
  59. package/srcold/core/setSessionConfig.js +0 -41
  60. package/srcold/core/startListeningBrowser.js +0 -62
  61. package/srcold/core/startListeningNode.js +0 -74
  62. package/srcold/core/stopListeningBrowser.js +0 -34
  63. package/srcold/core/stopListeningNode.js +0 -34
  64. package/srcold/core/unmute.js +0 -40
  65. package/srcold/core/unmuteAll.js +0 -39
  66. package/srcold/core/uploadImage.js +0 -55
  67. package/srcold/core/uploadVoice.js +0 -54
  68. package/srcold/core/verify.js +0 -41
  69. package/srcold/index.d.ts +0 -10
  70. package/srcold/index.js +0 -21
  71. package/srcold/interface.js +0 -20
  72. package/srcold/polyfill/URL.js +0 -5
  73. package/srcold/polyfill/wsListener.js +0 -6
  74. package/srcold/typeHelpers.d.ts +0 -2
  75. package/srcold/util/errCode.js +0 -23
  76. package/srcold/util/errorHandler.js +0 -24
  77. package/srcold/util/getInvalidParamsString.js +0 -12
  78. package/srcold/util/isBrowserEnv.js +0 -3
  79. 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
- };
@@ -1,4 +0,0 @@
1
- /**
2
- * 使用此方法向指定对象(群或好友)发送图片消息 除非需要通过此手段获取imageId,否则不推荐使用该接口
3
- * 暂不提供该接口的实现
4
- */
@@ -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
- };
@@ -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
- };