onebots 0.4.1 → 0.4.3

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/lib/onebot.d.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  import 'icqq-cq-enable';
3
3
  import { EventEmitter } from 'events';
4
4
  import { App } from "./server/app";
5
- import { Client } from "icqq";
5
+ import { Client, Platform } from "icqq";
6
6
  import { V11 } from "./service/V11";
7
7
  import { V12 } from "./service/V12";
8
8
  import { MayBeArray } from "./types";
@@ -32,6 +32,7 @@ export declare namespace OneBot {
32
32
  type Version = 'V11' | 'V12';
33
33
  type Config<V extends Version = 'V11'> = ({
34
34
  version?: V;
35
+ platform?: Platform;
35
36
  password?: string;
36
37
  } & (V extends 'V11' ? V11.Config : V12.Config));
37
38
  interface Base {
package/lib/onebot.js CHANGED
@@ -47,7 +47,10 @@ class OneBot extends events_1.EventEmitter {
47
47
  this.app = app;
48
48
  this.uin = uin;
49
49
  config = [].concat(config);
50
+ let platform = this.app.config.platform;
50
51
  this.config = config.map(c => {
52
+ if (c.platform)
53
+ platform = c.platform;
51
54
  if (c.password)
52
55
  this.password = c.password;
53
56
  if (!c.version)
@@ -61,7 +64,7 @@ class OneBot extends events_1.EventEmitter {
61
64
  throw new Error('不支持的oneBot版本:' + c.version);
62
65
  }
63
66
  });
64
- this.client = new icqq_1.Client({ platform: this.app.config.platform, data_dir: (0, path_1.join)(app_1.App.configDir, 'data') });
67
+ this.client = new icqq_1.Client({ platform, data_dir: (0, path_1.join)(app_1.App.configDir, 'data') });
65
68
  this.instances = this.config.map(c => {
66
69
  switch (c.version) {
67
70
  case 'V11':
@@ -174,13 +177,13 @@ class OneBot extends events_1.EventEmitter {
174
177
  if (data.source) {
175
178
  switch (data.message_type) {
176
179
  case 'group':
177
- data.message.shift({
180
+ data.message.unshift({
178
181
  type: 'reply',
179
182
  message_id: (0, message_1.genGroupMessageId)(data.group_id, data.source.user_id, data.source.seq, data.source.rand, data.source.time)
180
183
  });
181
184
  break;
182
185
  case 'private':
183
- data.message.shift({
186
+ data.message.unshift({
184
187
  type: 'reply',
185
188
  message_id: (0, message_1.genDmMessageId)(data.source.user_id, data.source.seq, data.source.rand, data.source.time)
186
189
  });
@@ -5,5 +5,5 @@ import { WebSocketServer } from "ws";
5
5
  import http from "http";
6
6
  export declare class Router extends KoaRouter {
7
7
  wsStack: WebSocketServer[];
8
- ws(path: string, server: http.Server): import("ws").Server<import("ws").WebSocket>;
8
+ ws(path: string, server: http.Server): import("ws").Server<typeof import("ws"), typeof http.IncomingMessage>;
9
9
  }
@@ -7,6 +7,68 @@ export declare class CommonAction {
7
7
  * @param message_id {string} 消息id
8
8
  */
9
9
  deleteMsg(this: V12, message_id: string): Promise<boolean>;
10
+ /**
11
+ * 获取消息详情
12
+ */ F: any;
13
+ getMsg(this: V12, message_id: string): Promise<{
14
+ message: V12.SegmentElem<keyof V12.SegmentMap>[];
15
+ message_type: "group";
16
+ sub_type: "normal" | "anonymous";
17
+ group_id: number;
18
+ group_name: string;
19
+ anonymous: import("icqq").Anonymous;
20
+ block: boolean;
21
+ atme: boolean;
22
+ atall: boolean;
23
+ sender: {
24
+ user_id: number;
25
+ nickname: string;
26
+ card: string;
27
+ sex: import("icqq").Gender;
28
+ age: number;
29
+ area: string;
30
+ level: number;
31
+ role: import("icqq").GroupRole;
32
+ title: string;
33
+ };
34
+ user_id: number;
35
+ post_type: "message";
36
+ time: number;
37
+ raw_message: string;
38
+ font: string;
39
+ message_id: string;
40
+ seq: number;
41
+ rand: number;
42
+ source?: import("icqq").Quotable;
43
+ pktnum: number;
44
+ index: number;
45
+ div: number;
46
+ } | {
47
+ message: V12.SegmentElem<keyof V12.SegmentMap>[];
48
+ message_type: "private";
49
+ sub_type: "self" | "other" | "group" | "friend";
50
+ from_id: number;
51
+ to_id: number;
52
+ auto_reply: boolean;
53
+ sender: {
54
+ user_id: number;
55
+ nickname: string;
56
+ group_id: number;
57
+ discuss_id: number;
58
+ };
59
+ user_id: number;
60
+ post_type: "message";
61
+ time: number;
62
+ raw_message: string;
63
+ font: string;
64
+ message_id: string;
65
+ seq: number;
66
+ rand: number;
67
+ source?: import("icqq").Quotable;
68
+ pktnum: number;
69
+ index: number;
70
+ div: number;
71
+ }>;
10
72
  getSelfInfo(this: V12): {
11
73
  user_id: string;
12
74
  platform: string;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CommonAction = void 0;
4
+ const V12_1 = require("../../../service/V12");
4
5
  const icqq_1 = require("icqq");
5
6
  const utils_1 = require("../../../utils");
6
7
  const onebot_1 = require("../../../onebot");
@@ -16,6 +17,15 @@ class CommonAction {
16
17
  deleteMsg(message_id) {
17
18
  return this.client.deleteMsg(message_id);
18
19
  }
20
+ async getMsg(message_id) {
21
+ const message = await this.client.getMsg(message_id);
22
+ if (!message)
23
+ throw new Error('消息不存在');
24
+ return {
25
+ ...message,
26
+ message: V12_1.V12.toSegment(message.message)
27
+ };
28
+ }
19
29
  getSelfInfo() {
20
30
  return {
21
31
  user_id: this.oneBot.uin + '',
@@ -340,14 +340,13 @@ class V12 extends events_1.EventEmitter {
340
340
  data.detail_type = data.message_type || data.notice_type || data.request_type || data.system_type;
341
341
  data.message = data.type === 'message' ? V12.toSegment(data.message) : data.message;
342
342
  if (data.source)
343
- data.quote = {
344
- type: 'reply',
345
- data: {
346
- message_id: data.detail_type === 'private' ?
347
- (0, message_1.genDmMessageId)(data.source.user_id, data.source.seq, data.source.rand, data.source.time) :
348
- (0, message_1.genGroupMessageId)(data.group_id, data.source.user_id, data.source.seq, data.source.rand, data.source.time),
349
- user_id: data.source.user_id
350
- }
343
+ data.source = {
344
+ ...data.source,
345
+ message_id: data.detail_type === 'private' ?
346
+ (0, message_1.genDmMessageId)(data.source.user_id, data.source.seq, data.source.rand, data.source.time) :
347
+ (0, message_1.genGroupMessageId)(data.group_id, data.source.user_id, data.source.seq, data.source.rand, data.source.time),
348
+ user_id: data.source.user_id,
349
+ message: data.source.message,
351
350
  };
352
351
  return V12.formatPayload(this.oneBot.uin, event, data);
353
352
  }
@@ -578,7 +577,7 @@ class V12 extends events_1.EventEmitter {
578
577
  else {
579
578
  code = 10003;
580
579
  this.logger.debug(e);
581
- message = "请求格式错误";
580
+ message = e?.message || "请求格式错误";
582
581
  }
583
582
  ws.send(JSON.stringify({
584
583
  retcode: code,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "onebots",
3
- "version": "0.4.1",
3
+ "version": "0.4.3",
4
4
  "description": "基于icqq的多例oneBot实现",
5
5
  "engines": {
6
6
  "node": ">=16"
@@ -55,7 +55,7 @@
55
55
  "dependencies": {
56
56
  "@koa/router": "^10.1.1",
57
57
  "@zhinjs/shared": "^0.0.9",
58
- "icqq": "^0.3.6",
58
+ "icqq": "^0.3.15",
59
59
  "icqq-cq-enable": "^1.0.0",
60
60
  "js-yaml": "^4.1.0",
61
61
  "koa": "^2.13.4",