onebots 0.4.27 → 0.4.28

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/adapter.d.ts CHANGED
@@ -22,7 +22,7 @@ export interface Adapter extends Adapter.Base {
22
22
  }
23
23
  export declare namespace Adapter {
24
24
  interface Base {
25
- toSegment<V extends OneBot.Version>(version: V, message: OneBot.MessageElement<V>[]): OneBot.Segment<V>[];
25
+ toSegment<V extends OneBot.Version, M = any>(version: V, message: M): OneBot.Segment<V>[];
26
26
  fromSegment<V extends OneBot.Version>(version: V, segment: OneBot.Segment<V>): OneBot.MessageElement<V>[];
27
27
  toCqcode<V extends OneBot.Version>(version: V, message: OneBot.MessageElement<V>[]): string;
28
28
  fromCqcode<V extends OneBot.Version>(version: V, message: string): OneBot.MessageElement<V>[];
@@ -13,7 +13,7 @@ export default class IcqqAdapter extends Adapter<'icqq'> {
13
13
  sendGroupMessage<V extends OneBot.Version>(uin: string, version: V, args: [string, OneBot.MessageElement<V>[]]): Promise<OneBot.MessageRet<V>>;
14
14
  call<V extends OneBot.Version>(uin: string, version: V, method: string, args?: any[]): Promise<any>;
15
15
  fromSegment<V extends OneBot.Version>(version: V, segment: OneBot.Segment<V> | OneBot.Segment<V>[]): OneBot.MessageElement<V>[];
16
- toSegment<V extends OneBot.Version>(version: V, message: OneBot.MessageElement<V>[]): OneBot.Segment<V>[];
16
+ toSegment<V extends OneBot.Version, M = any>(version: V, message: M): OneBot.Segment<V>[];
17
17
  fromCqcode<V extends OneBot.Version>(version: V, message: string): OneBot.MessageElement<V>[];
18
18
  toCqcode<V extends OneBot.Version>(version: V, messageArr: OneBot.MessageElement<V>[]): string;
19
19
  getSelfInfo<V extends OneBot.Version>(uin: string, version: V): OneBot.SelfInfo<V>;
@@ -20,6 +20,21 @@ const icqq_1 = require("icqq");
20
20
  const process_1 = __importDefault(require("process"));
21
21
  const fs_1 = require("fs");
22
22
  const onebot_1 = require("../../onebot");
23
+ const processMessages = (list) => {
24
+ return list.map(item => {
25
+ const { type, data } = item;
26
+ if (type === 'node')
27
+ return {
28
+ type,
29
+ ...data,
30
+ message: processMessages(data.message || [])
31
+ };
32
+ return {
33
+ type,
34
+ ...data
35
+ };
36
+ });
37
+ };
23
38
  class IcqqAdapter extends adapter_1.Adapter {
24
39
  constructor(app, config) {
25
40
  super(app, 'icqq', config);
@@ -81,23 +96,11 @@ class IcqqAdapter extends adapter_1.Adapter {
81
96
  }
82
97
  sendPrivateMessage(uin, version, args) {
83
98
  const [user_id, message] = args;
84
- const result = this.oneBots.get(uin)?.internal.sendPrivateMsg(user_id, message.map(m => {
85
- return {
86
- type: m.type,
87
- ...(m.data || {})
88
- };
89
- }));
90
- return result;
99
+ return this.oneBots.get(uin)?.internal.sendPrivateMsg(user_id, processMessages(message));
91
100
  }
92
101
  sendGroupMessage(uin, version, args) {
93
102
  const [group_id, message] = args;
94
- const result = this.oneBots.get(uin)?.internal.sendGroupMsg(group_id, message.map(m => {
95
- return {
96
- type: m.type,
97
- ...(m.data || {})
98
- };
99
- }));
100
- return result;
103
+ return this.oneBots.get(uin)?.internal.sendGroupMsg(group_id, processMessages(message));
101
104
  }
102
105
  call(uin, version, method, args = []) {
103
106
  try {
@@ -120,14 +123,14 @@ class IcqqAdapter extends adapter_1.Adapter {
120
123
  };
121
124
  return {
122
125
  type: item.type,
123
- data: item
126
+ data: item.data
124
127
  };
125
128
  });
126
129
  }
127
130
  toSegment(version, message) {
128
131
  return [].concat(message).map(item => {
129
- if (!item || typeof item !== "object")
130
- return {
132
+ if (typeof item !== 'object')
133
+ item = {
131
134
  type: 'text',
132
135
  data: {
133
136
  text: item
@@ -2,13 +2,14 @@ import { Adapter } from "../../adapter";
2
2
  import { App } from "../../server/app";
3
3
  import { OneBot } from "../../onebot";
4
4
  import { QQBot } from "../../adapters/qq/qqBot";
5
+ import { Sendable } from "../../adapters/qq/elements";
5
6
  export default class QQAdapter extends Adapter<'qq'> {
6
7
  #private;
7
8
  constructor(app: App, config: QQAdapter.Config);
8
9
  startOneBot(oneBot: OneBot): Promise<() => void>;
9
10
  call(uin: string, version: string, method: string, args?: any[]): Promise<any>;
10
11
  fromSegment<V extends OneBot.Version>(version: V, segment: OneBot.Segment<V> | OneBot.Segment<V>[]): OneBot.MessageElement<V>[];
11
- toSegment<V extends OneBot.Version>(version: V, message: OneBot.MessageElement<V>[]): OneBot.Segment<V>[];
12
+ toSegment<V extends OneBot.Version, M = Sendable>(version: V, message: M): OneBot.Segment<V>[];
12
13
  fromCqcode<V extends OneBot.Version>(version: V, message: string): OneBot.MessageElement<V>[];
13
14
  toCqcode<V extends OneBot.Version>(version: V, messageArr: OneBot.MessageElement<V>[]): string;
14
15
  formatEventPayload<V extends OneBot.Version>(version: V, event: string, data: any): OneBot.Payload<V>;
@@ -408,14 +408,14 @@ class V12 extends service_1.Service {
408
408
  if (/[CQ:music,type=.+,id=.+]/.test(params[k])) {
409
409
  params[k] = params[k].replace(',type=', ',platform=');
410
410
  }
411
- params[k] = this.adapter.fromCqcode('V11', params[k]);
411
+ params[k] = this.adapter.fromCqcode('V12', params[k]);
412
412
  }
413
413
  else {
414
414
  if (params[k][0].type == 'music' && params[k][0]?.data?.type) {
415
415
  params[k][0].data.platform = params[k][0].data.type;
416
416
  delete params[k][0].data.type;
417
417
  }
418
- params[k] = this.adapter.fromSegment('V11', params[k]);
418
+ params[k] = this.adapter.fromSegment('V12', params[k]);
419
419
  }
420
420
  }
421
421
  args.push(params[k]);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "onebots",
3
- "version": "0.4.27",
3
+ "version": "0.4.28",
4
4
  "description": "基于icqq的多例oneBot实现",
5
5
  "engines": {
6
6
  "node": ">=16"