oicq-icalingua-plus-plus 1.22.3 → 1.22.6

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/index.d.ts CHANGED
@@ -962,7 +962,7 @@ export class Client extends EventEmitter {
962
962
  * resid在xml消息中,需要自行解析xml获得
963
963
  * 暂不支持套娃转发解析
964
964
  */
965
- getForwardMsg(resid: string): Promise<Ret<Array<{
965
+ getForwardMsg(resid: string, fileName?: string): Promise<Ret<Array<{
966
966
  group_id?: number,
967
967
  user_id: number,
968
968
  nickname: string,
package/lib/client-net.js CHANGED
@@ -103,7 +103,7 @@ class Network extends net.Socket {
103
103
  body = tea.encrypt(body, key);
104
104
  return await new Promise((resolve, reject) => {
105
105
  const id = setTimeout(reject, 5000);
106
- https.request("https://configsvr.msf.3g.qq.com/configsvr/serverlist.jsp", { method: "POST" }, (res) => {
106
+ https.request("https://configsvr.msf.3g.qq.com/configsvr/serverlist.jsp?mType=getssolist", { method: "POST" }, (res) => {
107
107
  let data = [];
108
108
  res.on("error", reject);
109
109
  res.on("data", (chunk) => data.push(chunk));
package/lib/client.js CHANGED
@@ -372,7 +372,7 @@ class Client extends EventEmitter {
372
372
  getChatHistory(message_id, count = 10) {
373
373
  return this._useProtocol(chat.getMsgs, arguments);
374
374
  }
375
- getForwardMsg(id) {
375
+ getForwardMsg(id, fileName = "MultiMsg") {
376
376
  return this._useProtocol(chat.getForwardMsg, arguments);
377
377
  }
378
378
  makeForwardMsg(fakes, dm = false, target = 0) {
@@ -232,8 +232,8 @@ async function getMsgs(message_id, count = 20) {
232
232
  * @param {string} resid
233
233
  * @returns {import("../ref").ProtocolResponse}
234
234
  */
235
- function getForwardMsg(resid) {
236
- return parseForwardMsg.call(this, resid);
235
+ function getForwardMsg(resid, fileName = "MultiMsg") {
236
+ return parseForwardMsg.call(this, resid, fileName);
237
237
  }
238
238
 
239
239
  /**
@@ -132,7 +132,7 @@ async function makeForwardMsg(iterable, dm = false, target = 0) {
132
132
  1: !target ? this.uin : target,
133
133
  4: fake.nickname,
134
134
  },
135
- 14: fake.nickname,
135
+ 14: dm ? fake.nickname : null,
136
136
  20: {
137
137
  1: 0,
138
138
  2: random
@@ -473,9 +473,13 @@ class Parser {
473
473
  };
474
474
  let seq = elem[1], user_id = elem[2];
475
475
  if (this.gid) {
476
- let m = (await getGroupMsgs.call(this.c, this.gid, seq, seq))[0];
477
- let random = m[3][1][1][3];
478
- let time = m[1][6];
476
+ let random = elem[8] ? genRandom(elem[8][3]) : null;
477
+ let time = elem[3];
478
+ if (!random || !time) {
479
+ let m = (await getGroupMsgs.call(this.c, this.gid, seq, seq))[0];
480
+ random = m[3][1][1][3];
481
+ time = m[1][6];
482
+ }
479
483
  msg.data.id = genGroupMessageId(this.gid, user_id, seq, random, time);
480
484
  } else {
481
485
  let random = genRandom(elem[8][3]);
@@ -733,13 +737,22 @@ async function parseDiscussMsg(msg) {
733
737
  * @param {string} resid
734
738
  * @returns {import("../ref").ProtocolResponse}
735
739
  */
736
- async function parseForwardMsg(resid) {
740
+ async function parseForwardMsg(resid, fileName) {
737
741
  const data = [];
738
742
  const blob = await _downloadMultiMsg.call(this, String(resid), 2);
739
743
  /**
740
744
  * @type {import("../ref").Msg[]}
741
745
  */
742
746
  let msgs = pb.decode(blob)[2];
747
+ if (!Array.isArray(msgs))
748
+ msgs = [msgs];
749
+ for (let msg1 of msgs) {
750
+ const m_fileName = msg1[1].toString();
751
+ if (m_fileName === fileName) {
752
+ msgs = msg1;
753
+ break;
754
+ }
755
+ }
743
756
  if (Array.isArray(msgs))
744
757
  msgs = msgs[0];
745
758
  msgs = msgs[2][1];
@@ -751,6 +764,9 @@ async function parseForwardMsg(resid) {
751
764
  let user_id = head[1], nickname = "unknown", group_id;
752
765
  if (head[14]) {
753
766
  nickname = String(head[14]);
767
+ try {
768
+ group_id = head[9][1];
769
+ } catch { }
754
770
  } else {
755
771
  try {
756
772
  nickname = String(head[9][4]);
@@ -194,6 +194,7 @@ async function _uploadPtt(target, buf) {
194
194
  });
195
195
  const blob = await this.sendUni("PttStore.GroupPttUp", body);
196
196
  const rsp = pb.decode(blob)[5];
197
+ rsp[2] && drop(rsp[2], rsp[3]);
197
198
  if (!rsp[4]) {
198
199
  const ip = Array.isArray(rsp[5]) ? rsp[5][0] : rsp[5],
199
200
  port = Array.isArray(rsp[6]) ? rsp[6][0] : rsp[6];
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "oicq-icalingua-plus-plus",
3
3
  "app_name": "oicq-icalingua-plus-plus",
4
- "version": "1.22.3",
5
- "app_version": "1.22.3",
6
- "upday": "2022/05/04",
4
+ "version": "1.22.6",
5
+ "app_version": "1.22.6",
6
+ "upday": "2022/06/17",
7
7
  "protocol_version": "v11",
8
8
  "description": "oicq(https://github.com/takayama-lily/oicq) v1 for Icalingua++",
9
9
  "main": "index.js",