onebots 0.4.22 → 0.4.25
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/README.md +129 -72
- package/lib/adapter.d.ts +55 -0
- package/lib/adapter.js +60 -0
- package/lib/adapters/icqq/index.d.ts +36 -0
- package/lib/adapters/icqq/index.js +300 -0
- package/lib/adapters/icqq/utils.d.ts +6 -0
- package/lib/adapters/icqq/utils.js +26 -0
- package/lib/adapters/qq/bot.d.ts +24 -0
- package/lib/adapters/qq/bot.js +20 -0
- package/lib/adapters/qq/constans.d.ts +69 -0
- package/lib/adapters/qq/constans.js +128 -0
- package/lib/adapters/qq/elements.d.ts +125 -0
- package/lib/adapters/qq/elements.js +8 -0
- package/lib/adapters/qq/entries/channel.d.ts +17 -0
- package/lib/adapters/qq/entries/channel.js +2 -0
- package/lib/adapters/qq/entries/friend.d.ts +8 -0
- package/lib/adapters/qq/entries/friend.js +2 -0
- package/lib/adapters/qq/entries/group.d.ts +6 -0
- package/lib/adapters/qq/entries/group.js +2 -0
- package/lib/adapters/qq/entries/groupMember.d.ts +7 -0
- package/lib/adapters/qq/entries/groupMember.js +2 -0
- package/lib/adapters/qq/entries/guild.d.ts +21 -0
- package/lib/adapters/qq/entries/guild.js +2 -0
- package/lib/adapters/qq/entries/guildMember.d.ts +9 -0
- package/lib/adapters/qq/entries/guildMember.js +2 -0
- package/lib/adapters/qq/entries/user.d.ts +9 -0
- package/lib/adapters/qq/entries/user.js +2 -0
- package/lib/adapters/qq/event.d.ts +28 -0
- package/lib/adapters/qq/event.js +24 -0
- package/lib/adapters/qq/index.d.ts +35 -0
- package/lib/adapters/qq/index.js +170 -0
- package/lib/adapters/qq/message.d.ts +83 -0
- package/lib/adapters/qq/message.js +272 -0
- package/lib/adapters/qq/qqBot.d.ts +122 -0
- package/lib/adapters/qq/qqBot.js +438 -0
- package/lib/adapters/qq/sessionManager.d.ts +33 -0
- package/lib/adapters/qq/sessionManager.js +257 -0
- package/lib/adapters/qq/types.d.ts +45 -0
- package/lib/adapters/qq/types.js +2 -0
- package/lib/adapters/qq/utils.d.ts +12 -0
- package/lib/adapters/qq/utils.js +86 -0
- package/lib/bin.js +17 -2
- package/lib/config.sample.yaml +11 -5
- package/lib/db.js +6 -6
- package/lib/index.d.ts +5 -5
- package/lib/onebot.d.ts +30 -22
- package/lib/onebot.js +42 -165
- package/lib/server/app.d.ts +22 -12
- package/lib/server/app.js +97 -71
- package/lib/service/V11/action/common.d.ts +11 -12
- package/lib/service/V11/action/common.js +19 -65
- package/lib/service/V11/action/friend.d.ts +6 -14
- package/lib/service/V11/action/friend.js +6 -16
- package/lib/service/V11/action/group.d.ts +20 -23
- package/lib/service/V11/action/group.js +20 -30
- package/lib/service/V11/action/index.d.ts +1 -1
- package/lib/service/V11/db_entities.d.ts +1 -1
- package/lib/service/V11/db_entities.js +1 -1
- package/lib/service/V11/db_sqlite.d.ts +1 -1
- package/lib/service/V11/db_sqlite.js +5 -7
- package/lib/service/V11/index.d.ts +46 -14
- package/lib/service/V11/index.js +163 -134
- package/lib/service/V12/action/common.d.ts +3 -67
- package/lib/service/V12/action/common.js +9 -63
- package/lib/service/V12/action/friend.d.ts +4 -10
- package/lib/service/V12/action/friend.js +4 -12
- package/lib/service/V12/action/group.d.ts +19 -21
- package/lib/service/V12/action/group.js +19 -27
- package/lib/service/V12/action/guild.d.ts +40 -13
- package/lib/service/V12/action/guild.js +99 -11
- package/lib/service/V12/action/index.d.ts +1 -1
- package/lib/service/V12/index.d.ts +37 -13
- package/lib/service/V12/index.js +63 -94
- package/lib/service.d.ts +7 -2
- package/lib/service.js +5 -1
- package/lib/types.d.ts +2 -2
- package/lib/types.js +3 -3
- package/lib/utils.d.ts +7 -4
- package/lib/utils.js +18 -1
- package/package.json +74 -70
- package/lib/service/V11/utils.d.ts +0 -9
- package/lib/service/V11/utils.js +0 -31
- package/lib/service/V12/utils.d.ts +0 -8
- package/lib/service/V12/utils.js +0 -47
package/package.json
CHANGED
|
@@ -1,72 +1,76 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
"
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
"
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
"
|
|
39
|
-
"
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
"
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
"
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
2
|
+
"name": "onebots",
|
|
3
|
+
"version": "0.4.25",
|
|
4
|
+
"description": "基于icqq的多例oneBot实现",
|
|
5
|
+
"engines": {
|
|
6
|
+
"node": ">=16"
|
|
7
|
+
},
|
|
8
|
+
"main": "lib/index.js",
|
|
9
|
+
"bin": {
|
|
10
|
+
"onebots": "./lib/bin.js"
|
|
11
|
+
},
|
|
12
|
+
"scripts": {
|
|
13
|
+
"start": "node .",
|
|
14
|
+
"build": "tsc --project tsconfig.json && tsc-alias -p tsconfig.json && cp -r src/config.sample.yaml lib/config.sample.yaml",
|
|
15
|
+
"dev": "ts-node-dev -r tsconfig-paths/register ./src/bin.ts -c config.yaml -r qq -r icqq",
|
|
16
|
+
"pub": "npm publish --access public",
|
|
17
|
+
"lint": "prettier --check ./**/*.{ts,js}",
|
|
18
|
+
"lint:fix": "prettier --write ./**/*.{ts,js,md}",
|
|
19
|
+
"test": "ts-node-dev -r tsconfig-paths/register ./src/test.ts",
|
|
20
|
+
"docs:dev": "vitepress dev docs --port 8989",
|
|
21
|
+
"docs:build": "vitepress build docs",
|
|
22
|
+
"docs:preview": "vitepress preview docs"
|
|
23
|
+
},
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "git+https://github.com/liucl-cn/onebots.git"
|
|
27
|
+
},
|
|
28
|
+
"keywords": [
|
|
29
|
+
"onebot",
|
|
30
|
+
"icqq",
|
|
31
|
+
"cq-http"
|
|
32
|
+
],
|
|
33
|
+
"author": "凉菜",
|
|
34
|
+
"license": "MIT",
|
|
35
|
+
"bugs": {
|
|
36
|
+
"url": "https://github.com/liucl-cn/onebots/issues"
|
|
37
|
+
},
|
|
38
|
+
"homepage": "https://github.com/liucl-cn/onebots#readme",
|
|
39
|
+
"devDependencies": {
|
|
40
|
+
"@types/koa": "^2.13.4",
|
|
41
|
+
"@types/koa__router": "^8.0.11",
|
|
42
|
+
"@types/koa-bodyparser": "^4.3.7",
|
|
43
|
+
"@types/node": "latest",
|
|
44
|
+
"@types/ws": "^8.5.3",
|
|
45
|
+
"prettier": "^3.0.0",
|
|
46
|
+
"ts-node-dev": "latest",
|
|
47
|
+
"tsc-alias": "latest",
|
|
48
|
+
"tsconfig-paths": "latest",
|
|
49
|
+
"typescript": "latest",
|
|
50
|
+
"vitepress": "^1.0.0-alpha.72"
|
|
51
|
+
},
|
|
52
|
+
"files": [
|
|
53
|
+
"/lib/**/*.js",
|
|
54
|
+
"/lib/**/*.d.ts",
|
|
55
|
+
"/lib/*.yaml",
|
|
56
|
+
"/**/LICENSE"
|
|
57
|
+
],
|
|
58
|
+
"peerDependencies": {
|
|
59
|
+
"icqq": "latest"
|
|
60
|
+
},
|
|
61
|
+
"dependencies": {
|
|
62
|
+
"@koa/router": "^10.1.1",
|
|
63
|
+
"@zhinjs/shared": "^0.0.9",
|
|
64
|
+
"icqq-cq-enable": "^1.0.1",
|
|
65
|
+
"js-yaml": "^4.1.0",
|
|
66
|
+
"koa": "^2.13.4",
|
|
67
|
+
"koa-bodyparser": "^4.3.0",
|
|
68
|
+
"log4js": "^6.5.2",
|
|
69
|
+
"mime-types": "^2.1.35",
|
|
70
|
+
"reflect-metadata": "^0.1.13",
|
|
71
|
+
"seed-random": "^2.2.0",
|
|
72
|
+
"sqlite3": "^5.1.6",
|
|
73
|
+
"typeorm": "^0.3.17",
|
|
74
|
+
"ws": "^8.8.0"
|
|
75
|
+
}
|
|
72
76
|
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Client, MessageElem, ShareElem } from "icqq";
|
|
2
|
-
import { SegmentElem } from "icqq-cq-enable/lib/utils";
|
|
3
|
-
import { QuoteElem } from "icqq/lib/message";
|
|
4
|
-
export declare function processMessage(this: Client, message: string | SegmentElem | SegmentElem[], source?: QuoteElem): Promise<{
|
|
5
|
-
element: MessageElem[];
|
|
6
|
-
music?: MessageElem;
|
|
7
|
-
share?: ShareElem;
|
|
8
|
-
quote?: QuoteElem;
|
|
9
|
-
}>;
|
package/lib/service/V11/utils.js
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.processMessage = void 0;
|
|
4
|
-
const utils_1 = require("../../utils");
|
|
5
|
-
const utils_2 = require("icqq-cq-enable/lib/utils");
|
|
6
|
-
async function processMessage(message, source) {
|
|
7
|
-
const elements = typeof message === 'string' ? (0, utils_2.fromCqcode)(message) : (0, utils_2.fromSegment)(message);
|
|
8
|
-
let quote = elements.find(e => e.type === 'reply');
|
|
9
|
-
if (quote)
|
|
10
|
-
(0, utils_1.remove)(elements, quote);
|
|
11
|
-
let music = elements.find(e => e.type === 'music');
|
|
12
|
-
if (music) {
|
|
13
|
-
(0, utils_1.remove)(elements, music);
|
|
14
|
-
if (String(music.platform) === 'custom') {
|
|
15
|
-
music.platform = music['subtype']; // gocq 的平台数据存储在 subtype 内,兼容 icqq 时要求前端必须发送 id 字段
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
let share = elements.find(e => e.type === 'share');
|
|
19
|
-
if (share)
|
|
20
|
-
(0, utils_1.remove)(elements, share);
|
|
21
|
-
for (const element of elements) {
|
|
22
|
-
if (['image', 'video', 'audio'].includes(element.type)) {
|
|
23
|
-
if (element['file_id']?.startsWith('base64://'))
|
|
24
|
-
element['file_id'] = Buffer.from(element['file_id'].slice(9), 'base64');
|
|
25
|
-
if (element['file']?.startsWith('base64://'))
|
|
26
|
-
element['file'] = Buffer.from(element['file'].slice(9), 'base64');
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
return { element: elements, quote: quote || source, share, music };
|
|
30
|
-
}
|
|
31
|
-
exports.processMessage = processMessage;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import { MessageElem } from "icqq";
|
|
2
|
-
import { V12 } from "../../service/V12";
|
|
3
|
-
export declare function processMessage(this: V12, message: V12.Sendable, source?: V12.SegmentElem<'reply'>): Promise<{
|
|
4
|
-
element: MessageElem[];
|
|
5
|
-
music?: V12.SegmentElem<'music'>;
|
|
6
|
-
share?: V12.SegmentElem<'share'>;
|
|
7
|
-
quote?: V12.SegmentElem<'reply'>;
|
|
8
|
-
}>;
|
package/lib/service/V12/utils.js
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.processMessage = void 0;
|
|
4
|
-
const V12_1 = require("../../service/V12");
|
|
5
|
-
const utils_1 = require("../../utils");
|
|
6
|
-
async function processMessage(message, source) {
|
|
7
|
-
let segments = [].concat(message).map(m => {
|
|
8
|
-
if (typeof m === 'string')
|
|
9
|
-
return { type: 'text', data: { text: m } };
|
|
10
|
-
return m;
|
|
11
|
-
});
|
|
12
|
-
let quote = segments.find(e => e.type === 'reply');
|
|
13
|
-
if (quote)
|
|
14
|
-
(0, utils_1.remove)(segments, quote);
|
|
15
|
-
let music = segments.find(e => e.type === 'music');
|
|
16
|
-
if (music)
|
|
17
|
-
(0, utils_1.remove)(segments, music);
|
|
18
|
-
let share = segments.find(e => e.type === 'share');
|
|
19
|
-
if (share)
|
|
20
|
-
(0, utils_1.remove)(segments, share);
|
|
21
|
-
segments = segments.filter(n => [
|
|
22
|
-
'face', 'text', 'image',
|
|
23
|
-
'rpx', 'dice', 'poke', 'mention', 'mention_all',
|
|
24
|
-
'voice', 'file', 'record',
|
|
25
|
-
'forward', 'node',
|
|
26
|
-
'music', 'share', 'xml', 'json', 'location', // 分享类
|
|
27
|
-
].includes(n.type));
|
|
28
|
-
for (const seg of segments) {
|
|
29
|
-
if (['image', 'video', 'audio'].includes(seg.type)) {
|
|
30
|
-
const { file_id } = seg.data;
|
|
31
|
-
const fileInfo = this.getFile(file_id);
|
|
32
|
-
if (fileInfo)
|
|
33
|
-
seg.data['file_id'] = fileInfo.url || fileInfo.path || `base64://${fileInfo.data}`;
|
|
34
|
-
if (seg.data['file_id']?.startsWith('base64://'))
|
|
35
|
-
seg.data['file_id'] = Buffer.from(seg.data['file_id'].slice(9), 'base64');
|
|
36
|
-
}
|
|
37
|
-
else if (['mention', 'mention_all'].includes(seg.type)) {
|
|
38
|
-
seg.data['qq'] = seg.data['user_id'];
|
|
39
|
-
}
|
|
40
|
-
else if (seg.type === 'node') {
|
|
41
|
-
seg.data['message'] = (await processMessage.call(this, seg.data['message'])).element;
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
const element = V12_1.V12.fromSegment(segments);
|
|
45
|
-
return { element, quote: quote || source, share, music };
|
|
46
|
-
}
|
|
47
|
-
exports.processMessage = processMessage;
|