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.
Files changed (84) hide show
  1. package/README.md +129 -72
  2. package/lib/adapter.d.ts +55 -0
  3. package/lib/adapter.js +60 -0
  4. package/lib/adapters/icqq/index.d.ts +36 -0
  5. package/lib/adapters/icqq/index.js +300 -0
  6. package/lib/adapters/icqq/utils.d.ts +6 -0
  7. package/lib/adapters/icqq/utils.js +26 -0
  8. package/lib/adapters/qq/bot.d.ts +24 -0
  9. package/lib/adapters/qq/bot.js +20 -0
  10. package/lib/adapters/qq/constans.d.ts +69 -0
  11. package/lib/adapters/qq/constans.js +128 -0
  12. package/lib/adapters/qq/elements.d.ts +125 -0
  13. package/lib/adapters/qq/elements.js +8 -0
  14. package/lib/adapters/qq/entries/channel.d.ts +17 -0
  15. package/lib/adapters/qq/entries/channel.js +2 -0
  16. package/lib/adapters/qq/entries/friend.d.ts +8 -0
  17. package/lib/adapters/qq/entries/friend.js +2 -0
  18. package/lib/adapters/qq/entries/group.d.ts +6 -0
  19. package/lib/adapters/qq/entries/group.js +2 -0
  20. package/lib/adapters/qq/entries/groupMember.d.ts +7 -0
  21. package/lib/adapters/qq/entries/groupMember.js +2 -0
  22. package/lib/adapters/qq/entries/guild.d.ts +21 -0
  23. package/lib/adapters/qq/entries/guild.js +2 -0
  24. package/lib/adapters/qq/entries/guildMember.d.ts +9 -0
  25. package/lib/adapters/qq/entries/guildMember.js +2 -0
  26. package/lib/adapters/qq/entries/user.d.ts +9 -0
  27. package/lib/adapters/qq/entries/user.js +2 -0
  28. package/lib/adapters/qq/event.d.ts +28 -0
  29. package/lib/adapters/qq/event.js +24 -0
  30. package/lib/adapters/qq/index.d.ts +35 -0
  31. package/lib/adapters/qq/index.js +170 -0
  32. package/lib/adapters/qq/message.d.ts +83 -0
  33. package/lib/adapters/qq/message.js +272 -0
  34. package/lib/adapters/qq/qqBot.d.ts +122 -0
  35. package/lib/adapters/qq/qqBot.js +438 -0
  36. package/lib/adapters/qq/sessionManager.d.ts +33 -0
  37. package/lib/adapters/qq/sessionManager.js +257 -0
  38. package/lib/adapters/qq/types.d.ts +45 -0
  39. package/lib/adapters/qq/types.js +2 -0
  40. package/lib/adapters/qq/utils.d.ts +12 -0
  41. package/lib/adapters/qq/utils.js +86 -0
  42. package/lib/bin.js +17 -2
  43. package/lib/config.sample.yaml +11 -5
  44. package/lib/db.js +6 -6
  45. package/lib/index.d.ts +5 -5
  46. package/lib/onebot.d.ts +30 -22
  47. package/lib/onebot.js +42 -165
  48. package/lib/server/app.d.ts +22 -12
  49. package/lib/server/app.js +97 -71
  50. package/lib/service/V11/action/common.d.ts +11 -12
  51. package/lib/service/V11/action/common.js +19 -65
  52. package/lib/service/V11/action/friend.d.ts +6 -14
  53. package/lib/service/V11/action/friend.js +6 -16
  54. package/lib/service/V11/action/group.d.ts +20 -23
  55. package/lib/service/V11/action/group.js +20 -30
  56. package/lib/service/V11/action/index.d.ts +1 -1
  57. package/lib/service/V11/db_entities.d.ts +1 -1
  58. package/lib/service/V11/db_entities.js +1 -1
  59. package/lib/service/V11/db_sqlite.d.ts +1 -1
  60. package/lib/service/V11/db_sqlite.js +5 -7
  61. package/lib/service/V11/index.d.ts +46 -14
  62. package/lib/service/V11/index.js +163 -134
  63. package/lib/service/V12/action/common.d.ts +3 -67
  64. package/lib/service/V12/action/common.js +9 -63
  65. package/lib/service/V12/action/friend.d.ts +4 -10
  66. package/lib/service/V12/action/friend.js +4 -12
  67. package/lib/service/V12/action/group.d.ts +19 -21
  68. package/lib/service/V12/action/group.js +19 -27
  69. package/lib/service/V12/action/guild.d.ts +40 -13
  70. package/lib/service/V12/action/guild.js +99 -11
  71. package/lib/service/V12/action/index.d.ts +1 -1
  72. package/lib/service/V12/index.d.ts +37 -13
  73. package/lib/service/V12/index.js +63 -94
  74. package/lib/service.d.ts +7 -2
  75. package/lib/service.js +5 -1
  76. package/lib/types.d.ts +2 -2
  77. package/lib/types.js +3 -3
  78. package/lib/utils.d.ts +7 -4
  79. package/lib/utils.js +18 -1
  80. package/package.json +74 -70
  81. package/lib/service/V11/utils.d.ts +0 -9
  82. package/lib/service/V11/utils.js +0 -31
  83. package/lib/service/V12/utils.d.ts +0 -8
  84. package/lib/service/V12/utils.js +0 -47
package/package.json CHANGED
@@ -1,72 +1,76 @@
1
1
  {
2
- "name": "onebots",
3
- "version": "0.4.22",
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",
16
- "pub": "npm publish --access public",
17
- "test": "ts-node-dev -r tsconfig-paths/register ./src/test.ts",
18
- "docs:dev": "vitepress dev docs --port 8989",
19
- "docs:build": "vitepress build docs",
20
- "docs:preview": "vitepress preview docs"
21
- },
22
- "repository": {
23
- "type": "git",
24
- "url": "git+https://github.com/liucl-cn/onebots.git"
25
- },
26
- "keywords": [
27
- "onebot",
28
- "icqq",
29
- "cq-http"
30
- ],
31
- "author": "凉菜",
32
- "license": "MIT",
33
- "bugs": {
34
- "url": "https://github.com/liucl-cn/onebots/issues"
35
- },
36
- "homepage": "https://github.com/liucl-cn/onebots#readme",
37
- "devDependencies": {
38
- "@types/koa": "^2.13.4",
39
- "@types/koa__router": "^8.0.11",
40
- "@types/koa-bodyparser": "^4.3.7",
41
- "@types/node": "latest",
42
- "@types/ws": "^8.5.3",
43
- "ts-node-dev": "latest",
44
- "tsc-alias": "latest",
45
- "tsconfig-paths": "latest",
46
- "typescript": "latest",
47
- "vitepress": "^1.0.0-alpha.72"
48
- },
49
- "files": [
50
- "/lib/**/*.js",
51
- "/lib/**/*.d.ts",
52
- "/lib/*.yaml",
53
- "/**/LICENSE"
54
- ],
55
- "peerDependencies": {
56
- "icqq": "latest"
57
- },
58
- "dependencies": {
59
- "@koa/router": "^10.1.1",
60
- "@zhinjs/shared": "^0.0.9",
61
- "icqq-cq-enable": "^1.0.1",
62
- "js-yaml": "^4.1.0",
63
- "koa": "^2.13.4",
64
- "koa-bodyparser": "^4.3.0",
65
- "log4js": "^6.5.2",
66
- "mime-types": "^2.1.35",
67
- "reflect-metadata": "^0.1.13",
68
- "sqlite3": "^5.1.6",
69
- "typeorm": "^0.3.17",
70
- "ws": "^8.8.0"
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
- }>;
@@ -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
- }>;
@@ -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;