允许设定获取的消息的最大限制

This commit is contained in:
CrescentLeaf
2026-01-01 16:02:14 +08:00
parent c423117ad5
commit 6e0a89f861
4 changed files with 12 additions and 8 deletions

View File

@@ -116,7 +116,7 @@ export default class ChatApi extends BaseApi {
code: 200,
msg: "成功",
data: {
messages: MessagesManager.getInstanceForChat(chat)[args.page ? 'getMessagesWithPage' : 'getMessagesWithOffset'](null, (args.page ? args.page : args.offset) as number),
messages: MessagesManager.getInstanceForChat(chat)[args.page ? 'getMessagesWithPage' : 'getMessagesWithOffset'](args.limit as number | undefined, (args.page ? args.page : args.offset) as number),
},
}
})

View File

@@ -6,6 +6,7 @@ import chalk from "chalk"
import config from "../config.ts"
import Chat from "./Chat.ts"
import MessageBean from "./MessageBean.ts"
import { PageFetchMaxLimit } from "lingchair-internal-shared"
export default class MessagesManager {
static database: DatabaseSync = this.init()
@@ -60,13 +61,13 @@ export default class MessagesManager {
})
}
getMessagesWithOffset(limit: number | undefined | null, offset: number = 0) {
const ls = MessagesManager.database.prepare(`SELECT * FROM ${this.getTableName()} ORDER BY id DESC LIMIT ? OFFSET ?;`).all(limit || 15, offset) as unknown as MessageBean[]
const ls = MessagesManager.database.prepare(`SELECT * FROM ${this.getTableName()} ORDER BY id DESC LIMIT ? OFFSET ?;`).all(limit || PageFetchMaxLimit, offset) as unknown as MessageBean[]
return ls.map((v) => ({
...v,
chat_id: this.chat.bean.id,
}))
}
getMessagesWithPage(limit: number | undefined | null, page: number = 0) {
return this.getMessagesWithOffset(limit, (limit || 15) * page)
return this.getMessagesWithOffset(limit, (limit || PageFetchMaxLimit) * page)
}
}