oicq
Version:
QQ protocol!
72 lines (67 loc) • 1.67 kB
JavaScript
/**
* 聊天记录获取协议
*/
;
const pb = require("../algo/pb");
/**
* @this {import("../ref").Client}
* @param {number} user_id
* @param {number} time
* @param {number} num
* @returns {Promise<import("../ref").Msg[]>}
*/
async function getC2CMsgs(user_id, time, num) {
const body = pb.encode({
1: user_id,
2: time,
3: 0,
4: num
});
const blob = await this.sendUni("MessageSvc.PbGetOneDayRoamMsg", body);
const o = pb.decode(blob);
if (o[1] > 0)
throw new Error("msg not exists");
return Array.isArray(o[6]) ? o[6] : [o[6]];
}
/**
* @this {import("../ref").Client}
* @param {number} group_id
* @param {number} from_seq
* @param {number} to_seq
* @returns {Promise<import("../ref").Msg[]>}
*/
async function getGroupMsgs(group_id, from_seq, to_seq) {
const body = pb.encode({
1: group_id,
2: from_seq,
3: to_seq,
6: 0
});
const blob = await this.sendUni("MessageSvc.PbGetGroupMsg", body);
const o = pb.decode(blob);
if (o[1] > 0)
throw new Error("msg not exists");
return Array.isArray(o[6]) ? o[6] : [o[6]];
}
/**
* @this {import("../ref").Client}
* @param {number} group_id
* @returns {Promise<number>}
*/
async function getLastSeq(group_id) {
const body = pb.encode({
1: this.apk.subid,
2: {
1: group_id,
2: {
22: 0
},
},
});
const blob = await this.sendOidb("OidbSvc.0x88d_0", body);
const o = pb.decode(blob)[4][1][3];
return o[22];
}
module.exports = {
getC2CMsgs, getGroupMsgs, getLastSeq
};