mirror of
https://github.com/LLOneBot/LLOneBot.git
synced 2024-11-22 01:56:33 +00:00
fix
This commit is contained in:
parent
58817d1c02
commit
73a2b4e35f
@ -235,7 +235,7 @@ export class NTQQMsgApi extends Service {
|
|||||||
}, null])
|
}, null])
|
||||||
}
|
}
|
||||||
|
|
||||||
async queryMsgsWithFilterExBySeq(peer: Peer, msgSeq: string, filterMsgTime: string, filterSendersUid: string[]) {
|
async queryMsgsWithFilterExBySeq(peer: Peer, msgSeq: string, filterMsgTime: string, filterSendersUid: string[] = []) {
|
||||||
return await invoke('nodeIKernelMsgService/queryMsgsWithFilterEx', [{
|
return await invoke('nodeIKernelMsgService/queryMsgsWithFilterEx', [{
|
||||||
msgId: '0',
|
msgId: '0',
|
||||||
msgTime: '0',
|
msgTime: '0',
|
||||||
|
@ -305,4 +305,34 @@ export class NTQQWebApi extends Service {
|
|||||||
private cookieToString(cookieObject: Dict) {
|
private cookieToString(cookieObject: Dict) {
|
||||||
return Object.entries(cookieObject).map(([key, value]) => `${key}=${value}`).join('; ')
|
return Object.entries(cookieObject).map(([key, value]) => `${key}=${value}`).join('; ')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async findGroupEssenceMsg(groupCode: string, msgSeq: number) {
|
||||||
|
for (let i = 0; i < 20; i++) {
|
||||||
|
const res = await this.getGroupEssenceMsgList(groupCode, i, 50)
|
||||||
|
if (!res) break
|
||||||
|
const msg = res.data.msg_list.find(e => e.msg_seq === msgSeq)
|
||||||
|
if (msg) return msg
|
||||||
|
if (res.data.is_end) break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async getGroupEssenceMsgList(groupCode: string, pageStart: number, pageLimit: number) {
|
||||||
|
const cookieObject = await this.ctx.ntUserApi.getCookies('qun.qq.com')
|
||||||
|
try {
|
||||||
|
const ret = await RequestUtil.HttpGetJson<GroupEssenceMsgRet>(
|
||||||
|
`https://qun.qq.com/cgi-bin/group_digest/digest_list?${new URLSearchParams({
|
||||||
|
bkn: this.genBkn(cookieObject.skey),
|
||||||
|
page_start: pageStart.toString(),
|
||||||
|
page_limit: pageLimit.toString(),
|
||||||
|
group_code: groupCode,
|
||||||
|
})}`,
|
||||||
|
'GET',
|
||||||
|
'',
|
||||||
|
{ 'Cookie': this.cookieToString(cookieObject) }
|
||||||
|
)
|
||||||
|
return ret.retcode === 0 ? ret : undefined
|
||||||
|
} catch {
|
||||||
|
return undefined
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -482,7 +482,7 @@ export interface RawMessage {
|
|||||||
msgSeq: string
|
msgSeq: string
|
||||||
msgRandom: string
|
msgRandom: string
|
||||||
senderUid: string
|
senderUid: string
|
||||||
senderUin?: string // 发送者QQ号
|
senderUin: string // 发送者QQ号
|
||||||
peerUid: string // 群号 或者 QQ uid
|
peerUid: string // 群号 或者 QQ uid
|
||||||
peerUin: string // 群号 或者 发送者QQ号
|
peerUin: string // 群号 或者 发送者QQ号
|
||||||
guildId: string
|
guildId: string
|
||||||
|
@ -15,7 +15,6 @@ import {
|
|||||||
FaceIndex,
|
FaceIndex,
|
||||||
GrayTipElementSubType,
|
GrayTipElementSubType,
|
||||||
Group,
|
Group,
|
||||||
Peer,
|
|
||||||
GroupMember,
|
GroupMember,
|
||||||
RawMessage,
|
RawMessage,
|
||||||
Sex,
|
Sex,
|
||||||
@ -585,27 +584,22 @@ export namespace OB11Entities {
|
|||||||
if (grayTipElement.jsonGrayTipElement?.busiId === '2401') {
|
if (grayTipElement.jsonGrayTipElement?.busiId === '2401') {
|
||||||
ctx.logger.info('收到群精华消息', json)
|
ctx.logger.info('收到群精华消息', json)
|
||||||
const searchParams = new URL(json.items[0].jp).searchParams
|
const searchParams = new URL(json.items[0].jp).searchParams
|
||||||
const msgSeq = searchParams.get('msgSeq')!
|
const msgSeq = searchParams.get('msgSeq')
|
||||||
const Group = searchParams.get('groupCode')
|
const groupCode = searchParams.get('groupCode')
|
||||||
const Peer: Peer = {
|
if (!groupCode || !msgSeq) return
|
||||||
|
const peer = {
|
||||||
guildId: '',
|
guildId: '',
|
||||||
chatType: ChatType.group,
|
chatType: ChatType.group,
|
||||||
peerUid: Group!
|
peerUid: groupCode
|
||||||
}
|
}
|
||||||
const msgList = (await ctx.ntMsgApi.getMsgsBySeqAndCount(Peer, msgSeq.toString(), 1, true, true))?.msgList
|
const essence = await ctx.ntWebApi.findGroupEssenceMsg(groupCode, +msgSeq)
|
||||||
if (!msgList?.length) {
|
if (!essence) return
|
||||||
return
|
const { msgList } = await ctx.ntMsgApi.queryMsgsWithFilterExBySeq(peer, msgSeq, String(essence.sender_time))
|
||||||
}
|
|
||||||
//const origMsg = await dbUtil.getMsgByLongId(msgList[0].msgId)
|
|
||||||
//const postMsg = await dbUtil.getMsgBySeqId(origMsg?.msgSeq!) ?? origMsg
|
|
||||||
// 如果 senderUin 为 0,可能是 历史消息 或 自身消息
|
|
||||||
//if (msgList[0].senderUin === '0') {
|
|
||||||
//msgList[0].senderUin = postMsg?.senderUin ?? getSelfUin()
|
|
||||||
//}
|
|
||||||
return new OB11GroupEssenceEvent(
|
return new OB11GroupEssenceEvent(
|
||||||
parseInt(msg.peerUid),
|
parseInt(msg.peerUid),
|
||||||
MessageUnique.getShortIdByMsgId(msgList[0].msgId)!,
|
MessageUnique.getShortIdByMsgId(msgList[0].msgId)!,
|
||||||
parseInt(msgList[0].senderUin!)
|
parseInt(msgList[0].senderUin),
|
||||||
|
parseInt(essence.add_digest_uin),
|
||||||
)
|
)
|
||||||
// 获取MsgSeq+Peer可获取具体消息
|
// 获取MsgSeq+Peer可获取具体消息
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,20 @@
|
|||||||
import { OB11GroupNoticeEvent } from './OB11GroupNoticeEvent';
|
import { OB11GroupNoticeEvent } from './OB11GroupNoticeEvent'
|
||||||
|
|
||||||
export class OB11GroupEssenceEvent extends OB11GroupNoticeEvent {
|
export class OB11GroupEssenceEvent extends OB11GroupNoticeEvent {
|
||||||
notice_type = 'essence'
|
notice_type = 'essence'
|
||||||
message_id: number
|
message_id: number
|
||||||
sender_id: number
|
sender_id: number
|
||||||
sub_type: 'add' | 'delete' = 'add'
|
sub_type: 'add' | 'delete' = 'add'
|
||||||
group_id: number
|
group_id: number
|
||||||
user_id: number = 0
|
user_id: number
|
||||||
|
operator_id: number
|
||||||
|
|
||||||
constructor(groupId: number, message_id: number, sender_id: number) {
|
constructor(groupId: number, messageId: number, senderId: number, operatorId: number) {
|
||||||
super()
|
super()
|
||||||
this.group_id = groupId
|
this.group_id = groupId
|
||||||
this.message_id = message_id
|
this.user_id = senderId
|
||||||
this.sender_id = sender_id
|
this.message_id = messageId
|
||||||
|
this.sender_id = senderId
|
||||||
|
this.operator_id = operatorId
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1 +1 @@
|
|||||||
export const version = '3.33.0'
|
export const version = '3.33.1'
|
||||||
|
Loading…
x
Reference in New Issue
Block a user