From 43273fece2888633d1ee3fd0b5fbca4b4c59355a Mon Sep 17 00:00:00 2001 From: nyne Date: Mon, 17 Nov 2025 20:21:34 +0800 Subject: [PATCH] feat: Enhance low resolution character retrieval with customizable page size --- server/api/resource.go | 18 +++++++++++++++++- server/service/resource.go | 10 +++++++--- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/server/api/resource.go b/server/api/resource.go index 83888c0..def7229 100644 --- a/server/api/resource.go +++ b/server/api/resource.go @@ -349,6 +349,22 @@ func handleGetLowResolutionCharacters(c fiber.Ctx) error { return model.NewRequestError("Invalid page number") } + // 支持自定义页面大小,默认50,最大1000 + pageSizeStr := c.Query("page_size") + if pageSizeStr == "" { + pageSizeStr = "50" + } + pageSize, err := strconv.Atoi(pageSizeStr) + if err != nil { + return model.NewRequestError("Invalid page_size parameter") + } + if pageSize > 1000 { + pageSize = 1000 // 限制最大页面大小 + } + if pageSize < 1 { + pageSize = 1 + } + maxWidthStr := c.Query("max_width") if maxWidthStr == "" { maxWidthStr = "800" // 默认最大宽度800px @@ -367,7 +383,7 @@ func handleGetLowResolutionCharacters(c fiber.Ctx) error { return model.NewRequestError("Invalid max_height parameter") } - characters, totalPages, err := service.GetLowResolutionCharacters(page, maxWidth, maxHeight) + characters, totalPages, err := service.GetLowResolutionCharacters(page, pageSize, maxWidth, maxHeight) if err != nil { return err } diff --git a/server/service/resource.go b/server/service/resource.go index f55a21c..fe5398a 100644 --- a/server/service/resource.go +++ b/server/service/resource.go @@ -803,12 +803,16 @@ func UpdateCharacterImage(uid, resourceID, characterID, imageID uint) error { } // GetLowResolutionCharacters 获取低清晰度的角色图片 -func GetLowResolutionCharacters(page int, maxWidth, maxHeight int) ([]model.LowResCharacterView, int, error) { - const pageSize = 50 // 每页50个角色 - +func GetLowResolutionCharacters(page int, pageSize int, maxWidth, maxHeight int) ([]model.LowResCharacterView, int, error) { if page <= 0 { page = 1 } + if pageSize <= 0 { + pageSize = 50 // 默认每页50个角色 + } + if pageSize > 1000 { + pageSize = 1000 // 限制最大页面大小 + } offset := (page - 1) * pageSize