Skip to content

Commit

Permalink
fix: 获取频道消息
Browse files Browse the repository at this point in the history
  • Loading branch information
lc-cn committed Jan 19, 2024
1 parent 46d3013 commit 2525399
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 4 deletions.
10 changes: 10 additions & 0 deletions src/bot.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import {AxiosResponse} from "axios";
import {GuildMember} from "@/entries/guildMember";
import {User} from "@/entries/user";
import {ActionNoticeEvent} from "@/event/notice";
import {GuildMessageEvent} from "@/event";


export class Bot extends QQBot {
Expand Down Expand Up @@ -376,6 +377,15 @@ export class Bot extends QQBot {
}
}

/**
* 获取子频道消息
* @param channel_id {string} 子频道id
* @param message_id {string} 消息id
*/
async getGuildMessage(channel_id:string,message_id:string):Promise<GuildMessageEvent>{
const {data:payload}=await this.request.get(`/channels/${channel_id}/messages/${message_id}`)
return this.processPayload(payload.id,`message.guild`,payload) as GuildMessageEvent
}
/**
* 获取频道成员列表
* @param guild_id
Expand Down
6 changes: 5 additions & 1 deletion src/entries/sender.ts
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ export class Sender {
return await this.saveToLocal(Buffer.from(elem.file.slice(9),'base64'))
}else if(/^data:image\/(png|jpeg|jpg);base64,/.test(elem.file)){
return await this.saveToLocal(Buffer.from(elem.file.replace(/^data:image\/(png|jpeg|jpg);base64,/,''),'base64'))
}else if(fs.existsSync(elem.file)){
return elem.file
}
throw new Error("bad file param: " + elem.file)
}
Expand All @@ -96,6 +98,9 @@ export class Sender {
case 'reply':
this.messagePayload.msg_id = elem.id
this.filePayload.msg_id = elem.id
this.messagePayload.message_reference={
message_id: elem.id
}
this.brief += `<reply,msg_id=${elem.id}>`
break;
case "at":
Expand All @@ -118,7 +123,6 @@ export class Sender {
case 'audio':
case 'video':
if (this.messagePayload.msg_id) {
this.messagePayload.content = this.messagePayload.content || ' '
if (!this.baseUrl.startsWith('/v2')) {
elem.file=await this.fixMediaData(elem)
if(fs.existsSync(elem.file)){
Expand Down
11 changes: 8 additions & 3 deletions src/message.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,12 +21,17 @@ export class Message {
sender: Message.Sender
user_id: string

constructor(public bot: Bot, attrs: Partial<Message>) {
Object.assign(this, attrs)
constructor(public bot: Bot, attrs: Dict) {
const {message_reference,...other_attrs} = attrs
Object.assign(this, other_attrs)
if(message_reference) this.source={
id:message_reference.message_id,
message_id: message_reference.message_id,
}
}

raw_message: string
message_reference?: { message_id: string }
source?: { message_id: string,id:string }
message: Sendable


Expand Down

0 comments on commit 2525399

Please sign in to comment.