Compare commits

..

4 Commits

Author SHA1 Message Date
linyuchen
d339a778df fix: get_group_msg_history return type 2024-03-21 19:54:59 +08:00
linyuchen
dc843f77a3 chore: ver 3.18.1 2024-03-21 18:15:08 +08:00
linyuchen
b103f2015c chore: ver 3.18.1 2024-03-21 18:14:57 +08:00
linyuchen
baf35d5496 fix: get_group_msg_history on qq version < 22106 2024-03-21 18:10:01 +08:00
6 changed files with 19 additions and 10 deletions

View File

@@ -1,10 +1,10 @@
{
"manifest_version": 4,
"type": "extension",
"name": "LLOneBot v3.18.0",
"name": "LLOneBot v3.18.2",
"slug": "LLOneBot",
"description": "LiteLoaderQQNT的OneBotApi,不支持商店在线更新",
"version": "3.18.0",
"version": "3.18.2",
"icon": "./icon.jpg",
"authors": [
{

View File

@@ -8,3 +8,5 @@ type QQPkgInfo = {
}
export const qqPkgInfo: QQPkgInfo = require(path.join(process.resourcesPath, "app/package.json"))
export const isQQ998: boolean = qqPkgInfo.buildVersion >= "22106"

View File

@@ -5,6 +5,7 @@ import {selfInfo} from "../../common/data";
import {ReceiveCmdS, registerReceiveHook} from "../hook";
import {log} from "../../common/utils/log";
import {sleep} from "../../common/utils/helper";
import {isQQ998} from "../../common/utils";
export let sendMessagePool: Record<string, ((sendSuccessMsg: RawMessage) => void) | null> = {}// peerUid: callbackFunnc
@@ -25,7 +26,7 @@ export class NTQQMsgApi {
}
static async getMsgHistory(peer: Peer, msgId: string, count: number) {
return await callNTQQApi<GeneralCallResult & {msgList: RawMessage[]}>({
methodName: NTQQApiMethod.HISTORY_MSG,
methodName: isQQ998 ? NTQQApiMethod.HISTORY_MSG_998 : NTQQApiMethod.HISTORY_MSG,
args: [{
peer,
msgId,

View File

@@ -23,7 +23,8 @@ export enum NTQQApiClass {
export enum NTQQApiMethod {
RECENT_CONTACT = "nodeIKernelRecentContactService/fetchAndSubscribeABatchOfRecentContact",
ADD_ACTIVE_CHAT = "nodeIKernelMsgService/getAioFirstViewLatestMsgsAndAddActiveChat", // 激活群助手内的聊天窗口,这样才能收到消息
HISTORY_MSG = "nodeIKernelMsgService/getMsgsIncludeSelfAndAddActiveChat",
HISTORY_MSG_998 = "nodeIKernelMsgService/getMsgsIncludeSelfAndAddActiveChat",
HISTORY_MSG = "nodeIKernelMsgService/getMsgsIncludeSelf",
LIKE_FRIEND = "nodeIKernelProfileLikeService/setBuddyProfileLike",
SELF_INFO = "fetchAuthData",
FRIENDS = "nodeIKernelBuddyService/getBuddyList",

View File

@@ -11,24 +11,29 @@ import {log} from "../../../common/utils";
interface Payload {
group_id: number
message_seq: number
message_seq: number,
count: number
}
export default class GoCQHTTPGetGroupMsgHistory extends BaseAction<Payload, OB11Message[]> {
interface Response{
messages: OB11Message[]
}
export default class GoCQHTTPGetGroupMsgHistory extends BaseAction<Payload, Response> {
actionName = ActionName.GoCQHTTP_GetGroupMsgHistory
protected async _handle(payload: Payload): Promise<OB11Message[]> {
protected async _handle(payload: Payload): Promise<Response> {
const group = groups.find(group => group.groupCode === payload.group_id.toString())
if (!group) {
throw `${payload.group_id}不存在`
}
const startMsgId = (await dbUtil.getMsgByShortId(payload.message_seq))?.msgId || "0"
// log("startMsgId", startMsgId)
let msgList = (await NTQQMsgApi.getMsgHistory({chatType: ChatType.group, peerUid: group.groupCode}, startMsgId, 20)).msgList
let msgList = (await NTQQMsgApi.getMsgHistory({chatType: ChatType.group, peerUid: group.groupCode}, startMsgId, parseInt(payload.count?.toString()) || 20)).msgList
await Promise.all(msgList.map(async msg => {
msg.msgShortId = await dbUtil.addMsg(msg)
}))
const ob11MsgList = await Promise.all(msgList.map(msg=>OB11Constructor.message(msg)))
return ob11MsgList
return {"messages": ob11MsgList}
}
}

View File

@@ -1 +1 @@
export const version = "3.18.0"
export const version = "3.18.2"