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 +1 -1
- package/lib/client-net.js +1 -1
- package/lib/client.js +1 -1
- package/lib/message/chat.js +2 -2
- package/lib/message/multi.js +1 -1
- package/lib/message/parser.js +20 -4
- package/lib/message/ptt.js +1 -0
- package/package.json +3 -3
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) {
|
package/lib/message/chat.js
CHANGED
|
@@ -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
|
/**
|
package/lib/message/multi.js
CHANGED
package/lib/message/parser.js
CHANGED
|
@@ -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
|
|
477
|
-
let
|
|
478
|
-
|
|
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]);
|
package/lib/message/ptt.js
CHANGED
|
@@ -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.
|
|
5
|
-
"app_version": "1.22.
|
|
6
|
-
"upday": "2022/
|
|
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",
|