From b9dabbfcb4a6940fe4d4300155ac3f3dc9ecfe1c Mon Sep 17 00:00:00 2001 From: lixiangwuxian Date: Wed, 14 May 2025 00:39:02 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E5=AE=9A=E6=97=B6?= =?UTF-8?q?=E6=B8=85=E7=90=86=E5=9B=BE=E5=83=8F=E7=BC=93=E5=AD=98=E7=9A=84?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=EF=BC=8C=E4=BB=A5=E4=BC=98=E5=8C=96=E5=86=85?= =?UTF-8?q?=E5=AD=98=E4=BD=BF=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handler/scoresaber/bs50.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/handler/scoresaber/bs50.go b/handler/scoresaber/bs50.go index 53d7d7c..c2bf73d 100644 --- a/handler/scoresaber/bs50.go +++ b/handler/scoresaber/bs50.go @@ -15,6 +15,7 @@ import ( "sync" "time" + "git.lxtend.com/qqbot/util" "github.com/fogleman/gg" "github.com/nfnt/resize" "golang.org/x/image/font/opentype" @@ -25,6 +26,16 @@ var ( imageCacheLock sync.RWMutex ) +func init() { + util.AddCycleTask("bs50_image_cache_cleaner", 10*time.Minute, 10*time.Minute, func() { + imageCacheLock.Lock() + defer imageCacheLock.Unlock() + for k := range imageCache { + delete(imageCache, k) + } + }) +} + func loadImageFromCache(path string) (image.Image, error) { imageCacheLock.RLock() if img, exists := imageCache[path]; exists {