mirror of
https://github.com/LLOneBot/LLOneBot.git
synced 2024-11-22 01:56:33 +00:00
fix: GetGroupMsgHistory
This commit is contained in:
parent
e03b82fb44
commit
727f399de6
@ -68,6 +68,10 @@ export class NTQQMsgApi extends Service {
|
|||||||
return await invoke<GeneralCallResult>(NTMethod.ACTIVE_CHAT_HISTORY, [{ peer, cnt: 20 }, null])
|
return await invoke<GeneralCallResult>(NTMethod.ACTIVE_CHAT_HISTORY, [{ peer, cnt: 20 }, null])
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async getAioFirstViewLatestMsgs(peer: Peer, cnt: number) {
|
||||||
|
return await invoke('nodeIKernelMsgService/getAioFirstViewLatestMsgs', [{ peer, cnt }, null])
|
||||||
|
}
|
||||||
|
|
||||||
async getMsgsByMsgId(peer: Peer | undefined, msgIds: string[] | undefined) {
|
async getMsgsByMsgId(peer: Peer | undefined, msgIds: string[] | undefined) {
|
||||||
if (!peer) throw new Error('peer is not allowed')
|
if (!peer) throw new Error('peer is not allowed')
|
||||||
if (!msgIds) throw new Error('msgIds is not allowed')
|
if (!msgIds) throw new Error('msgIds is not allowed')
|
||||||
@ -260,22 +264,6 @@ export class NTQQMsgApi extends Service {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** 27187 TODO */
|
|
||||||
async getLastestMsgByUids(peer: Peer, count = 20, isReverseOrder = false) {
|
|
||||||
const session = getSession()
|
|
||||||
const ret = await session?.getMsgService().queryMsgsWithFilterEx('0', '0', '0', {
|
|
||||||
chatInfo: peer,
|
|
||||||
filterMsgType: [],
|
|
||||||
filterSendersUid: [],
|
|
||||||
filterMsgToTime: '0',
|
|
||||||
filterMsgFromTime: '0',
|
|
||||||
isReverseOrder: isReverseOrder, //此参数有点离谱 注意不是本次查询的排序 而是全部消历史信息的排序 默认false 从新消息拉取到旧消息
|
|
||||||
isIncludeCurrent: true,
|
|
||||||
pageLimit: count,
|
|
||||||
})
|
|
||||||
return ret
|
|
||||||
}
|
|
||||||
|
|
||||||
async getSingleMsg(peer: Peer, msgSeq: string) {
|
async getSingleMsg(peer: Peer, msgSeq: string) {
|
||||||
const session = getSession()
|
const session = getSession()
|
||||||
if (session) {
|
if (session) {
|
||||||
|
@ -168,9 +168,10 @@ export interface NodeIKernelMsgService {
|
|||||||
|
|
||||||
getLastMessageList(peer: Peer[]): Promise<unknown>
|
getLastMessageList(peer: Peer[]): Promise<unknown>
|
||||||
|
|
||||||
getAioFirstViewLatestMsgs(peer: Peer, num: number): unknown
|
getAioFirstViewLatestMsgs(peer: Peer, num: number): Promise<GeneralCallResult & {
|
||||||
|
msgList: RawMessage[]
|
||||||
|
}>
|
||||||
|
|
||||||
//deprecated 从9.9.15-26702版本开始,该接口已经废弃,请使用getMsgsEx
|
|
||||||
getMsgs(peer: Peer, msgId: string, count: unknown, queryOrder: boolean): Promise<unknown>
|
getMsgs(peer: Peer, msgId: string, count: unknown, queryOrder: boolean): Promise<unknown>
|
||||||
|
|
||||||
getMsgsIncludeSelf(peer: Peer, msgId: string, count: number, queryOrder: boolean): Promise<GeneralCallResult & {
|
getMsgsIncludeSelf(peer: Peer, msgId: string, count: number, queryOrder: boolean): Promise<GeneralCallResult & {
|
||||||
|
@ -8,8 +8,8 @@ import { MessageUnique } from '@/common/utils/messageUnique'
|
|||||||
|
|
||||||
interface Payload {
|
interface Payload {
|
||||||
group_id: number | string
|
group_id: number | string
|
||||||
message_seq?: number
|
message_seq?: number | string
|
||||||
count?: number
|
count?: number | string
|
||||||
reverseOrder?: boolean
|
reverseOrder?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -27,13 +27,13 @@ export class GetGroupMsgHistory extends BaseAction<Payload, Response> {
|
|||||||
let msgList: RawMessage[] | undefined
|
let msgList: RawMessage[] | undefined
|
||||||
// 包含 message_seq 0
|
// 包含 message_seq 0
|
||||||
if (!payload.message_seq) {
|
if (!payload.message_seq) {
|
||||||
msgList = (await this.ctx.ntMsgApi.getLastestMsgByUids(peer, count))?.msgList
|
msgList = (await this.ctx.ntMsgApi.getAioFirstViewLatestMsgs(peer, +count)).msgList
|
||||||
} else {
|
} else {
|
||||||
const startMsgId = (await MessageUnique.getMsgIdAndPeerByShortId(payload.message_seq))?.MsgId
|
const startMsgId = (await MessageUnique.getMsgIdAndPeerByShortId(+payload.message_seq))?.MsgId
|
||||||
if (!startMsgId) throw `消息${payload.message_seq}不存在`
|
if (!startMsgId) throw new Error(`消息${payload.message_seq}不存在`)
|
||||||
msgList = (await this.ctx.ntMsgApi.getMsgHistory(peer, startMsgId, count)).msgList
|
msgList = (await this.ctx.ntMsgApi.getMsgHistory(peer, startMsgId, +count)).msgList
|
||||||
}
|
}
|
||||||
if (!msgList?.length) throw '未找到消息'
|
if (!msgList?.length) throw new Error('未找到消息')
|
||||||
if (isReverseOrder) msgList.reverse()
|
if (isReverseOrder) msgList.reverse()
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
msgList.map(async msg => {
|
msgList.map(async msg => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user