From 0bd9b778562e7c4c585ed9b7e57ac158b141ef32 Mon Sep 17 00:00:00 2001 From: krau <71133316+krau@users.noreply.github.com> Date: Sat, 12 Oct 2024 13:27:39 +0800 Subject: [PATCH] fix: mk cache dir --- common/os.go | 12 ++++++++++++ core/core.go | 7 +++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/common/os.go b/common/os.go index d75b254..c97d55f 100644 --- a/common/os.go +++ b/common/os.go @@ -33,6 +33,18 @@ func PurgeFile(path string) error { return RemoveEmptyDirectories(filepath.Dir(path)) } +func RmFileAfter(path string, td time.Duration) { + _, err := os.Stat(path) + if err != nil { + logger.L.Errorf("Failed to create timer for %s: %s", path, err) + return + } + logger.L.Debugf("Remove file after %s: %s", td, path) + time.AfterFunc(td, func() { + PurgeFile(path) + }) +} + // 递归删除空目录 func RemoveEmptyDirectories(dirPath string) error { entries, err := os.ReadDir(dirPath) diff --git a/core/core.go b/core/core.go index fd2a09f..500d958 100644 --- a/core/core.go +++ b/core/core.go @@ -3,6 +3,7 @@ package core import ( "context" "errors" + "os" "time" "github.com/amarnathcjd/gogram/telegram" @@ -16,6 +17,8 @@ import ( ) func processPendingTask(task types.Task) error { + os.MkdirAll(config.Cfg.Temp.BasePath, os.ModePerm) + message, err := bot.Client.GetMessageByID(task.ChatID, task.MessageID) if err != nil { return err @@ -33,9 +36,9 @@ func processPendingTask(task types.Task) error { defer func() { if config.Cfg.Temp.CacheTTL > 0 { - common.PurgeFileAfter(dest, time.Duration(config.Cfg.Temp.CacheTTL)*time.Second) + common.RmFileAfter(dest, time.Duration(config.Cfg.Temp.CacheTTL)*time.Second) } else { - if err := common.PurgeFile(dest); err != nil { + if err := os.Remove(dest); err != nil { logger.L.Errorf("Failed to purge file: %s", err) } }