From ed0837a89b56614422af56438757575a07c880b8 Mon Sep 17 00:00:00 2001 From: krau <71133316+krau@users.noreply.github.com> Date: Fri, 21 Mar 2025 21:07:53 +0800 Subject: [PATCH] refactor: replace logger usage with common.Log for consistent logging --- bot/bot.go | 10 +++++----- bot/handle_add_task.go | 24 ++++++++++++------------ bot/handle_conversation.go | 2 +- bot/handle_dir.go | 10 +++++----- bot/handle_file.go | 14 +++++++------- bot/handle_link.go | 20 ++++++++++---------- bot/handle_save.go | 14 +++++++------- bot/handle_silent.go | 6 +++--- bot/handle_start.go | 4 ++-- bot/handle_storage.go | 12 ++++++------ bot/handlers.go | 4 ++-- bot/utils.go | 15 +++++++-------- cmd/run.go | 21 ++++++++++----------- {logger => common}/logger.go | 13 ++++++------- common/os.go | 6 ++---- core/core.go | 26 +++++++++++++------------- core/download.go | 10 +++++----- core/utils.go | 13 ++++++------- dao/db.go | 18 +++++++++--------- storage/alist/alist.go | 22 +++++++++++----------- storage/alist/token.go | 8 ++++---- storage/local/local.go | 4 ++-- storage/minio/client.go | 4 ++-- storage/minio/stream.go | 8 ++++---- storage/storage.go | 8 ++++---- storage/webdav/stream.go | 4 ++-- storage/webdav/webdav.go | 10 +++++----- 27 files changed, 152 insertions(+), 158 deletions(-) rename {logger => common}/logger.go (87%) diff --git a/bot/bot.go b/bot/bot.go index 9e61c2d..9e2558e 100644 --- a/bot/bot.go +++ b/bot/bot.go @@ -11,8 +11,8 @@ import ( "github.com/glebarez/sqlite" "github.com/gotd/td/telegram/dcs" "github.com/gotd/td/tg" + "github.com/krau/SaveAny-Bot/common" "github.com/krau/SaveAny-Bot/config" - "github.com/krau/SaveAny-Bot/logger" "golang.org/x/net/proxy" ) @@ -27,7 +27,7 @@ func newProxyDialer(proxyUrl string) (proxy.Dialer, error) { } func Init() { - logger.L.Info("初始化 Telegram 客户端...") + common.Log.Info("初始化 Telegram 客户端...") ctx, cancel := context.WithTimeout(context.Background(), 60*time.Second) defer cancel() resultChan := make(chan struct { @@ -87,15 +87,15 @@ func Init() { select { case <-ctx.Done(): - logger.L.Fatal("初始化客户端失败: 超时") + common.Log.Fatal("初始化客户端失败: 超时") os.Exit(1) case result := <-resultChan: if result.err != nil { - logger.L.Fatalf("初始化客户端失败: %s", result.err) + common.Log.Fatalf("初始化客户端失败: %s", result.err) os.Exit(1) } Client = result.client RegisterHandlers(Client.Dispatcher) - logger.L.Info("客户端初始化完成") + common.Log.Info("客户端初始化完成") } } diff --git a/bot/handle_add_task.go b/bot/handle_add_task.go index 167caff..5f77d90 100644 --- a/bot/handle_add_task.go +++ b/bot/handle_add_task.go @@ -13,9 +13,9 @@ import ( "github.com/gotd/td/telegram/message/entity" "github.com/gotd/td/telegram/message/styling" "github.com/gotd/td/tg" + "github.com/krau/SaveAny-Bot/common" "github.com/krau/SaveAny-Bot/config" "github.com/krau/SaveAny-Bot/dao" - "github.com/krau/SaveAny-Bot/logger" "github.com/krau/SaveAny-Bot/queue" "github.com/krau/SaveAny-Bot/types" "gorm.io/gorm" @@ -37,7 +37,7 @@ func AddToQueue(ctx *ext.Context, update *ext.Update) error { cbDataId, _ := strconv.Atoi(args[1]) cbData, err := dao.GetCallbackData(uint(cbDataId)) if err != nil { - logger.L.Errorf("获取回调数据失败: %s", err) + common.Log.Errorf("获取回调数据失败: %s", err) ctx.AnswerCallback(&tg.MessagesSetBotCallbackAnswerRequest{ QueryID: update.CallbackQuery.QueryID, Alert: true, @@ -56,7 +56,7 @@ func AddToQueue(ctx *ext.Context, update *ext.Update) error { user, err := dao.GetUserByChatID(update.CallbackQuery.UserID) if err != nil { - logger.L.Errorf("获取用户失败: %s", err) + common.Log.Errorf("获取用户失败: %s", err) ctx.AnswerCallback(&tg.MessagesSetBotCallbackAnswerRequest{ QueryID: update.CallbackQuery.QueryID, Alert: true, @@ -69,7 +69,7 @@ func AddToQueue(ctx *ext.Context, update *ext.Update) error { if !addToDir { dirs, err := dao.GetDirsByUserIDAndStorageName(user.ID, storageName) if err != nil && !errors.Is(err, gorm.ErrRecordNotFound) { - logger.L.Errorf("获取路径失败: %s", err) + common.Log.Errorf("获取路径失败: %s", err) ctx.AnswerCallback(&tg.MessagesSetBotCallbackAnswerRequest{ QueryID: update.CallbackQuery.QueryID, Alert: true, @@ -81,7 +81,7 @@ func AddToQueue(ctx *ext.Context, update *ext.Update) error { if len(dirs) != 0 { markup, err := getSelectDirMarkup(fileChatID, fileMessageID, storageName, dirs) if err != nil { - logger.L.Errorf("获取路径失败: %s", err) + common.Log.Errorf("获取路径失败: %s", err) ctx.AnswerCallback(&tg.MessagesSetBotCallbackAnswerRequest{ QueryID: update.CallbackQuery.QueryID, Alert: true, @@ -96,16 +96,16 @@ func AddToQueue(ctx *ext.Context, update *ext.Update) error { ReplyMarkup: markup, }) if err != nil { - logger.L.Errorf("编辑消息失败: %s", err) + common.Log.Errorf("编辑消息失败: %s", err) } return dispatcher.EndGroups } } - logger.L.Tracef("Got add to queue: chatID: %d, messageID: %d, storage: %s", fileChatID, fileMessageID, storageName) + common.Log.Tracef("Got add to queue: chatID: %d, messageID: %d, storage: %s", fileChatID, fileMessageID, storageName) record, err := dao.GetReceivedFileByChatAndMessageID(int64(fileChatID), fileMessageID) if err != nil { - logger.L.Errorf("获取记录失败: %s", err) + common.Log.Errorf("获取记录失败: %s", err) ctx.AnswerCallback(&tg.MessagesSetBotCallbackAnswerRequest{ QueryID: update.CallbackQuery.QueryID, Alert: true, @@ -117,7 +117,7 @@ func AddToQueue(ctx *ext.Context, update *ext.Update) error { if update.CallbackQuery.MsgID != record.ReplyMessageID { record.ReplyMessageID = update.CallbackQuery.MsgID if err := dao.SaveReceivedFile(record); err != nil { - logger.L.Errorf("更新接收的文件失败: %s", err) + common.Log.Errorf("更新接收的文件失败: %s", err) } } @@ -125,7 +125,7 @@ func AddToQueue(ctx *ext.Context, update *ext.Update) error { if addToDir && dirId != 0 { dir, err = dao.GetDirByID(dirId) if err != nil { - logger.L.Errorf("获取路径失败: %s", err) + common.Log.Errorf("获取路径失败: %s", err) ctx.AnswerCallback(&tg.MessagesSetBotCallbackAnswerRequest{ QueryID: update.CallbackQuery.QueryID, Alert: true, @@ -138,7 +138,7 @@ func AddToQueue(ctx *ext.Context, update *ext.Update) error { file, err := FileFromMessage(ctx, record.ChatID, record.MessageID, record.FileName) if err != nil { - logger.L.Errorf("获取消息中的文件失败: %s", err) + common.Log.Errorf("获取消息中的文件失败: %s", err) ctx.AnswerCallback(&tg.MessagesSetBotCallbackAnswerRequest{ QueryID: update.CallbackQuery.QueryID, Alert: true, @@ -174,7 +174,7 @@ func AddToQueue(ctx *ext.Context, update *ext.Update) error { styling.Plain("\n当前排队任务数: "), styling.Bold(strconv.Itoa(queue.Len())), ); err != nil { - logger.L.Errorf("Failed to build entity: %s", err) + common.Log.Errorf("Failed to build entity: %s", err) } else { text, entities = entityBuilder.Complete() } diff --git a/bot/handle_conversation.go b/bot/handle_conversation.go index dc89862..72c4e30 100644 --- a/bot/handle_conversation.go +++ b/bot/handle_conversation.go @@ -69,7 +69,7 @@ func (c *ConversationState) SetData(key string, value interface{}) { // func handleConversationState(ctx *ext.Context, update *ext.Update, state *ConversationState) error { // switch state.conversationType { // default: -// logger.L.Errorf("Unknown conversation type: %s", state.conversationType) +// common.Log.Errorf("Unknown conversation type: %s", state.conversationType) // } // return dispatcher.EndGroups // } diff --git a/bot/handle_dir.go b/bot/handle_dir.go index e14f2c1..5b25e14 100644 --- a/bot/handle_dir.go +++ b/bot/handle_dir.go @@ -6,8 +6,8 @@ import ( "github.com/celestix/gotgproto/dispatcher" "github.com/celestix/gotgproto/ext" "github.com/gotd/td/telegram/message/styling" + "github.com/krau/SaveAny-Bot/common" "github.com/krau/SaveAny-Bot/dao" - "github.com/krau/SaveAny-Bot/logger" "github.com/krau/SaveAny-Bot/storage" ) @@ -16,7 +16,7 @@ func dirCmd(ctx *ext.Context, update *ext.Update) error { if len(args) < 3 { dirs, err := dao.GetUserDirsByChatID(update.GetUserChat().GetID()) if err != nil { - logger.L.Errorf("获取用户路径失败: %s", err) + common.Log.Errorf("获取用户路径失败: %s", err) ctx.Reply(update, ext.ReplyTextString("获取用户路径失败"), nil) return dispatcher.EndGroups } @@ -47,7 +47,7 @@ func dirCmd(ctx *ext.Context, update *ext.Update) error { } user, err := dao.GetUserByChatID(update.GetUserChat().GetID()) if err != nil { - logger.L.Errorf("获取用户失败: %s", err) + common.Log.Errorf("获取用户失败: %s", err) ctx.Reply(update, ext.ReplyTextString("获取用户失败"), nil) return dispatcher.EndGroups } @@ -69,7 +69,7 @@ func addDir(ctx *ext.Context, update *ext.Update, user *dao.User, storageName, p } if err := dao.CreateDirForUser(user.ID, storageName, path); err != nil { - logger.L.Errorf("创建路径失败: %s", err) + common.Log.Errorf("创建路径失败: %s", err) ctx.Reply(update, ext.ReplyTextString("创建路径失败"), nil) return dispatcher.EndGroups } @@ -79,7 +79,7 @@ func addDir(ctx *ext.Context, update *ext.Update, user *dao.User, storageName, p func delDir(ctx *ext.Context, update *ext.Update, user *dao.User, storageName, path string) error { if err := dao.DeleteDirForUser(user.ID, storageName, path); err != nil { - logger.L.Errorf("删除路径失败: %s", err) + common.Log.Errorf("删除路径失败: %s", err) ctx.Reply(update, ext.ReplyTextString("删除路径失败"), nil) return dispatcher.EndGroups } diff --git a/bot/handle_file.go b/bot/handle_file.go index 239f810..452141e 100644 --- a/bot/handle_file.go +++ b/bot/handle_file.go @@ -6,14 +6,14 @@ import ( "github.com/celestix/gotgproto/dispatcher" "github.com/celestix/gotgproto/ext" "github.com/gotd/td/tg" + "github.com/krau/SaveAny-Bot/common" "github.com/krau/SaveAny-Bot/dao" - "github.com/krau/SaveAny-Bot/logger" "github.com/krau/SaveAny-Bot/storage" "github.com/krau/SaveAny-Bot/types" ) func handleFileMessage(ctx *ext.Context, update *ext.Update) error { - logger.L.Trace("Got media: ", update.EffectiveMessage.Media.TypeName()) + common.Log.Trace("Got media: ", update.EffectiveMessage.Media.TypeName()) supported, err := supportedMediaFilter(update.EffectiveMessage.Message) if err != nil { return err @@ -24,7 +24,7 @@ func handleFileMessage(ctx *ext.Context, update *ext.Update) error { user, err := dao.GetUserByChatID(update.GetUserChat().GetID()) if err != nil { - logger.L.Errorf("获取用户失败: %s", err) + common.Log.Errorf("获取用户失败: %s", err) ctx.Reply(update, ext.ReplyTextString("获取用户失败"), nil) return dispatcher.EndGroups } @@ -36,13 +36,13 @@ func handleFileMessage(ctx *ext.Context, update *ext.Update) error { msg, err := ctx.Reply(update, ext.ReplyTextString("正在获取文件信息..."), nil) if err != nil { - logger.L.Errorf("回复失败: %s", err) + common.Log.Errorf("回复失败: %s", err) return dispatcher.EndGroups } media := update.EffectiveMessage.Media file, err := FileFromMedia(media, "") if err != nil { - logger.L.Errorf("获取文件失败: %s", err) + common.Log.Errorf("获取文件失败: %s", err) ctx.Reply(update, ext.ReplyTextString(fmt.Sprintf("获取文件失败: %s", err)), nil) return dispatcher.EndGroups } @@ -58,12 +58,12 @@ func handleFileMessage(ctx *ext.Context, update *ext.Update) error { ReplyMessageID: msg.ID, ReplyChatID: update.GetUserChat().GetID(), }); err != nil { - logger.L.Errorf("添加接收的文件失败: %s", err) + common.Log.Errorf("添加接收的文件失败: %s", err) if _, err := ctx.EditMessage(update.EffectiveChat().GetID(), &tg.MessagesEditMessageRequest{ Message: fmt.Sprintf("添加接收的文件失败: %s", err), ID: msg.ID, }); err != nil { - logger.L.Errorf("编辑消息失败: %s", err) + common.Log.Errorf("编辑消息失败: %s", err) } return dispatcher.EndGroups } diff --git a/bot/handle_link.go b/bot/handle_link.go index 767844d..ebe4cf6 100644 --- a/bot/handle_link.go +++ b/bot/handle_link.go @@ -9,8 +9,8 @@ import ( "github.com/celestix/gotgproto/dispatcher" "github.com/celestix/gotgproto/ext" "github.com/gotd/td/tg" + "github.com/krau/SaveAny-Bot/common" "github.com/krau/SaveAny-Bot/dao" - "github.com/krau/SaveAny-Bot/logger" "github.com/krau/SaveAny-Bot/storage" "github.com/krau/SaveAny-Bot/types" ) @@ -21,7 +21,7 @@ var ( ) func handleLinkMessage(ctx *ext.Context, update *ext.Update) error { - logger.L.Trace("Got link message") + common.Log.Trace("Got link message") link := linkRegex.FindString(update.EffectiveMessage.Text) if link == "" { return dispatcher.ContinueGroups @@ -32,25 +32,25 @@ func handleLinkMessage(ctx *ext.Context, update *ext.Update) error { } messageID, err := strconv.Atoi(strSlice[2]) if err != nil { - logger.L.Errorf("解析消息 ID 失败: %s", err) + common.Log.Errorf("解析消息 ID 失败: %s", err) ctx.Reply(update, ext.ReplyTextString("无法解析消息 ID"), nil) return dispatcher.EndGroups } chatUsername := strSlice[1] linkChat, err := ctx.ResolveUsername(chatUsername) if err != nil { - logger.L.Errorf("解析 Chat ID 失败: %s", err) + common.Log.Errorf("解析 Chat ID 失败: %s", err) ctx.Reply(update, ext.ReplyTextString("无法解析 Chat ID"), nil) return dispatcher.EndGroups } if linkChat == nil { - logger.L.Errorf("无法找到聊天: %s", chatUsername) + common.Log.Errorf("无法找到聊天: %s", chatUsername) ctx.Reply(update, ext.ReplyTextString("无法找到聊天"), nil) return dispatcher.EndGroups } user, err := dao.GetUserByChatID(update.GetUserChat().GetID()) if err != nil { - logger.L.Errorf("获取用户失败: %s", err) + common.Log.Errorf("获取用户失败: %s", err) ctx.Reply(update, ext.ReplyTextString("获取用户失败"), nil) return dispatcher.EndGroups } @@ -62,19 +62,19 @@ func handleLinkMessage(ctx *ext.Context, update *ext.Update) error { } replied, err := ctx.Reply(update, ext.ReplyTextString("正在获取文件..."), nil) if err != nil { - logger.L.Errorf("回复失败: %s", err) + common.Log.Errorf("回复失败: %s", err) return dispatcher.EndGroups } file, err := FileFromMessage(ctx, linkChat.GetID(), messageID, "") if err != nil { - logger.L.Errorf("获取文件失败: %s", err) + common.Log.Errorf("获取文件失败: %s", err) ctx.Reply(update, ext.ReplyTextString("获取文件失败: "+err.Error()), nil) return dispatcher.EndGroups } // TODO: Better file name if file.FileName == "" { - logger.L.Warnf("文件名为空,使用生成的名称") + common.Log.Warnf("文件名为空,使用生成的名称") file.FileName = fmt.Sprintf("%d_%d_%s", linkChat.GetID(), messageID, file.Hash()) } @@ -87,7 +87,7 @@ func handleLinkMessage(ctx *ext.Context, update *ext.Update) error { ReplyChatID: update.GetUserChat().GetID(), } if err := dao.SaveReceivedFile(receivedFile); err != nil { - logger.L.Errorf("保存接收的文件失败: %s", err) + common.Log.Errorf("保存接收的文件失败: %s", err) ctx.EditMessage(update.EffectiveChat().GetID(), &tg.MessagesEditMessageRequest{ Message: "无法保存文件: " + err.Error(), ID: replied.ID, diff --git a/bot/handle_save.go b/bot/handle_save.go index 6fe0770..432befd 100644 --- a/bot/handle_save.go +++ b/bot/handle_save.go @@ -7,8 +7,8 @@ import ( "github.com/celestix/gotgproto/dispatcher" "github.com/celestix/gotgproto/ext" "github.com/gotd/td/tg" + "github.com/krau/SaveAny-Bot/common" "github.com/krau/SaveAny-Bot/dao" - "github.com/krau/SaveAny-Bot/logger" "github.com/krau/SaveAny-Bot/storage" "github.com/krau/SaveAny-Bot/types" ) @@ -32,7 +32,7 @@ func saveCmd(ctx *ext.Context, update *ext.Update) error { user, err := dao.GetUserByChatID(update.GetUserChat().GetID()) if err != nil { - logger.L.Errorf("获取用户失败: %s", err) + common.Log.Errorf("获取用户失败: %s", err) ctx.Reply(update, ext.ReplyTextString("获取用户失败"), nil) return dispatcher.EndGroups } @@ -46,7 +46,7 @@ func saveCmd(ctx *ext.Context, update *ext.Update) error { msg, err := GetTGMessage(ctx, update.EffectiveChat().GetID(), replyToMsgID) if err != nil { - logger.L.Errorf("获取消息失败: %s", err) + common.Log.Errorf("获取消息失败: %s", err) ctx.Reply(update, ext.ReplyTextString("无法获取消息"), nil) return dispatcher.EndGroups } @@ -59,7 +59,7 @@ func saveCmd(ctx *ext.Context, update *ext.Update) error { replied, err := ctx.Reply(update, ext.ReplyTextString("正在获取文件信息..."), nil) if err != nil { - logger.L.Errorf("回复失败: %s", err) + common.Log.Errorf("回复失败: %s", err) return dispatcher.EndGroups } @@ -68,7 +68,7 @@ func saveCmd(ctx *ext.Context, update *ext.Update) error { file, err := FileFromMessage(ctx, update.EffectiveChat().GetID(), msg.ID, customFileName) if err != nil { - logger.L.Errorf("获取文件失败: %s", err) + common.Log.Errorf("获取文件失败: %s", err) ctx.EditMessage(update.EffectiveChat().GetID(), &tg.MessagesEditMessageRequest{ Message: fmt.Sprintf("获取文件失败: %s", err), ID: replied.ID, @@ -90,12 +90,12 @@ func saveCmd(ctx *ext.Context, update *ext.Update) error { } if err := dao.SaveReceivedFile(receivedFile); err != nil { - logger.L.Errorf("保存接收的文件失败: %s", err) + common.Log.Errorf("保存接收的文件失败: %s", err) if _, err := ctx.EditMessage(update.EffectiveChat().GetID(), &tg.MessagesEditMessageRequest{ Message: fmt.Sprintf("保存接收的文件失败: %s", err), ID: replied.ID, }); err != nil { - logger.L.Errorf("编辑消息失败: %s", err) + common.Log.Errorf("编辑消息失败: %s", err) } return dispatcher.EndGroups } diff --git a/bot/handle_silent.go b/bot/handle_silent.go index ea54bc4..eaeb1ee 100644 --- a/bot/handle_silent.go +++ b/bot/handle_silent.go @@ -5,14 +5,14 @@ import ( "github.com/celestix/gotgproto/dispatcher" "github.com/celestix/gotgproto/ext" + "github.com/krau/SaveAny-Bot/common" "github.com/krau/SaveAny-Bot/dao" - "github.com/krau/SaveAny-Bot/logger" ) func silent(ctx *ext.Context, update *ext.Update) error { user, err := dao.GetUserByChatID(update.GetUserChat().GetID()) if err != nil { - logger.L.Errorf("获取用户失败: %s", err) + common.Log.Errorf("获取用户失败: %s", err) return dispatcher.EndGroups } if !user.Silent && user.DefaultStorage == "" { @@ -21,7 +21,7 @@ func silent(ctx *ext.Context, update *ext.Update) error { } user.Silent = !user.Silent if err := dao.UpdateUser(user); err != nil { - logger.L.Errorf("更新用户失败: %s", err) + common.Log.Errorf("更新用户失败: %s", err) ctx.Reply(update, ext.ReplyTextString("更新用户失败"), nil) return dispatcher.EndGroups } diff --git a/bot/handle_start.go b/bot/handle_start.go index 946db71..74b433f 100644 --- a/bot/handle_start.go +++ b/bot/handle_start.go @@ -3,13 +3,13 @@ package bot import ( "github.com/celestix/gotgproto/dispatcher" "github.com/celestix/gotgproto/ext" + "github.com/krau/SaveAny-Bot/common" "github.com/krau/SaveAny-Bot/dao" - "github.com/krau/SaveAny-Bot/logger" ) func start(ctx *ext.Context, update *ext.Update) error { if err := dao.CreateUser(update.GetUserChat().GetID()); err != nil { - logger.L.Errorf("创建用户失败: %s", err) + common.Log.Errorf("创建用户失败: %s", err) return dispatcher.EndGroups } return help(ctx, update) diff --git a/bot/handle_storage.go b/bot/handle_storage.go index 2f1093c..13b314a 100644 --- a/bot/handle_storage.go +++ b/bot/handle_storage.go @@ -8,8 +8,8 @@ import ( "github.com/celestix/gotgproto/dispatcher" "github.com/celestix/gotgproto/ext" "github.com/gotd/td/tg" + "github.com/krau/SaveAny-Bot/common" "github.com/krau/SaveAny-Bot/dao" - "github.com/krau/SaveAny-Bot/logger" "github.com/krau/SaveAny-Bot/storage" ) @@ -22,7 +22,7 @@ func storageCmd(ctx *ext.Context, update *ext.Update) error { } markup, err := getSetDefaultStorageMarkup(userChatID, storages) if err != nil { - logger.L.Errorf("Failed to get markup: %s", err) + common.Log.Errorf("Failed to get markup: %s", err) ctx.Reply(update, ext.ReplyTextString("获取存储位置失败"), nil) return dispatcher.EndGroups } @@ -47,7 +47,7 @@ func setDefaultStorage(ctx *ext.Context, update *ext.Update) error { cbDataId, _ := strconv.Atoi(args[2]) storageName, err := dao.GetCallbackData(uint(cbDataId)) if err != nil { - logger.L.Errorf("获取回调数据失败: %s", err) + common.Log.Errorf("获取回调数据失败: %s", err) ctx.AnswerCallback(&tg.MessagesSetBotCallbackAnswerRequest{ QueryID: update.CallbackQuery.QueryID, Alert: true, @@ -60,7 +60,7 @@ func setDefaultStorage(ctx *ext.Context, update *ext.Update) error { selectedStorage, err := storage.GetStorageByName(storageName) if err != nil { - logger.L.Errorf("获取指定存储失败: %s", err) + common.Log.Errorf("获取指定存储失败: %s", err) ctx.AnswerCallback(&tg.MessagesSetBotCallbackAnswerRequest{ QueryID: update.CallbackQuery.QueryID, Alert: true, @@ -71,7 +71,7 @@ func setDefaultStorage(ctx *ext.Context, update *ext.Update) error { } user, err := dao.GetUserByChatID(int64(userID)) if err != nil { - logger.L.Errorf("Failed to get user: %s", err) + common.Log.Errorf("Failed to get user: %s", err) ctx.AnswerCallback(&tg.MessagesSetBotCallbackAnswerRequest{ QueryID: update.CallbackQuery.QueryID, Alert: true, @@ -82,7 +82,7 @@ func setDefaultStorage(ctx *ext.Context, update *ext.Update) error { } user.DefaultStorage = storageName if err := dao.UpdateUser(user); err != nil { - logger.L.Errorf("Failed to update user: %s", err) + common.Log.Errorf("Failed to update user: %s", err) ctx.AnswerCallback(&tg.MessagesSetBotCallbackAnswerRequest{ QueryID: update.CallbackQuery.QueryID, Alert: true, diff --git a/bot/handlers.go b/bot/handlers.go index 3631fa5..84beaf8 100644 --- a/bot/handlers.go +++ b/bot/handlers.go @@ -4,7 +4,7 @@ import ( "github.com/celestix/gotgproto/dispatcher" "github.com/celestix/gotgproto/dispatcher/handlers" "github.com/celestix/gotgproto/dispatcher/handlers/filters" - "github.com/krau/SaveAny-Bot/logger" + "github.com/krau/SaveAny-Bot/common" ) func RegisterHandlers(dispatcher dispatcher.Dispatcher) { @@ -17,7 +17,7 @@ func RegisterHandlers(dispatcher dispatcher.Dispatcher) { dispatcher.AddHandler(handlers.NewCommand("dir", dirCmd)) linkRegexFilter, err := filters.Message.Regex(linkRegexString) if err != nil { - logger.L.Panicf("创建正则表达式过滤器失败: %s", err) + common.Log.Panicf("创建正则表达式过滤器失败: %s", err) } dispatcher.AddHandler(handlers.NewMessage(linkRegexFilter, handleLinkMessage)) dispatcher.AddHandler(handlers.NewCallbackQuery(filters.CallbackQuery.Prefix("add"), AddToQueue)) diff --git a/bot/utils.go b/bot/utils.go index e008e9c..785fe97 100644 --- a/bot/utils.go +++ b/bot/utils.go @@ -12,7 +12,6 @@ import ( "github.com/gotd/td/tg" "github.com/krau/SaveAny-Bot/common" "github.com/krau/SaveAny-Bot/dao" - "github.com/krau/SaveAny-Bot/logger" "github.com/krau/SaveAny-Bot/queue" "github.com/krau/SaveAny-Bot/storage" "github.com/krau/SaveAny-Bot/types" @@ -178,7 +177,7 @@ func FileFromMedia(media tg.MessageMediaClass, customFileName string) (*types.Fi func FileFromMessage(ctx *ext.Context, chatID int64, messageID int, customFileName string) (*types.File, error) { key := fmt.Sprintf("file:%d:%d", chatID, messageID) - logger.L.Debugf("Getting file: %s", key) + common.Log.Debugf("Getting file: %s", key) var cachedFile types.File err := common.Cache.Get(key, &cachedFile) if err == nil { @@ -193,13 +192,13 @@ func FileFromMessage(ctx *ext.Context, chatID int64, messageID int, customFileNa return nil, err } if err := common.Cache.Set(key, file, 3600); err != nil { - logger.L.Errorf("Failed to cache file: %s", err) + common.Log.Errorf("Failed to cache file: %s", err) } return file, nil } func GetTGMessage(ctx *ext.Context, chatId int64, messageID int) (*tg.Message, error) { - logger.L.Debugf("Fetching message: %d", messageID) + common.Log.Debugf("Fetching message: %d", messageID) messages, err := ctx.GetMessages(chatId, []tg.InputMessageClass{&tg.InputMessageID{ID: messageID}}) if err != nil { return nil, err @@ -224,20 +223,20 @@ func ProvideSelectMessage(ctx *ext.Context, update *ext.Update, file *types.File styling.Code(file.FileName), styling.Plain("\n请选择存储位置"), ); err != nil { - logger.L.Errorf("Failed to build entity: %s", err) + common.Log.Errorf("Failed to build entity: %s", err) } else { text, entities = entityBuilder.Complete() } markup, err := getSelectStorageMarkup(update.GetUserChat().GetID(), int(chatID), fileMsgID) if errors.Is(err, ErrNoStorages) { - logger.L.Errorf("Failed to get select storage markup: %s", err) + common.Log.Errorf("Failed to get select storage markup: %s", err) ctx.EditMessage(update.EffectiveChat().GetID(), &tg.MessagesEditMessageRequest{ Message: "无可用存储", ID: toEditMsgID, }) return dispatcher.EndGroups } else if err != nil { - logger.L.Errorf("Failed to get select storage markup: %s", err) + common.Log.Errorf("Failed to get select storage markup: %s", err) ctx.EditMessage(update.EffectiveChat().GetID(), &tg.MessagesEditMessageRequest{ Message: "无法获取存储", ID: toEditMsgID, @@ -251,7 +250,7 @@ func ProvideSelectMessage(ctx *ext.Context, update *ext.Update, file *types.File ID: toEditMsgID, }) if err != nil { - logger.L.Errorf("Failed to reply: %s", err) + common.Log.Errorf("Failed to reply: %s", err) } return dispatcher.EndGroups } diff --git a/cmd/run.go b/cmd/run.go index 04e6c5c..699fb05 100644 --- a/cmd/run.go +++ b/cmd/run.go @@ -12,7 +12,6 @@ import ( "github.com/krau/SaveAny-Bot/config" "github.com/krau/SaveAny-Bot/core" "github.com/krau/SaveAny-Bot/dao" - "github.com/krau/SaveAny-Bot/logger" "github.com/krau/SaveAny-Bot/storage" "github.com/spf13/cobra" ) @@ -24,32 +23,32 @@ func Run(_ *cobra.Command, _ []string) { quit := make(chan os.Signal, 1) signal.Notify(quit, syscall.SIGINT, syscall.SIGTERM) sig := <-quit - logger.L.Info(sig, ", exitting...") - defer logger.L.Info("Bye!") + common.Log.Info(sig, ", exitting...") + defer common.Log.Info("Bye!") if config.Cfg.NoCleanCache { return } - if config.Cfg.Temp.BasePath != "" { + if config.Cfg.Temp.BasePath != "" && !config.Cfg.Stream { for _, path := range []string{"/", ".", "\\", ".."} { if filepath.Clean(config.Cfg.Temp.BasePath) == path { - logger.L.Error("Invalid cache dir: ", config.Cfg.Temp.BasePath) + common.Log.Error("无效的缓存文件夹: ", config.Cfg.Temp.BasePath) return } } currentDir, err := os.Getwd() if err != nil { - logger.L.Error("Failed to get current dir: ", err) + common.Log.Error("获取工作目录失败: ", err) return } cachePath := filepath.Join(currentDir, config.Cfg.Temp.BasePath) cachePath, err = filepath.Abs(cachePath) if err != nil { - logger.L.Error("Failed to get absolute path: ", err) + common.Log.Error("获取缓存绝对路径失败: ", err) return } - logger.L.Info("Cleaning cache dir: ", cachePath) + common.Log.Info("正在清理缓存文件夹: ", cachePath) if err := os.RemoveAll(cachePath); err != nil { - logger.L.Error("Failed to clean cache dir: ", err) + common.Log.Error("清理缓存失败: ", err) } } } @@ -59,8 +58,8 @@ func InitAll() { fmt.Println("加载配置文件失败: ", err) os.Exit(1) } - logger.InitLogger() - logger.L.Info("正在启动 SaveAny-Bot...") + common.InitLogger() + common.Log.Info("正在启动 SaveAny-Bot...") dao.Init() storage.LoadStorages() common.Init() diff --git a/logger/logger.go b/common/logger.go similarity index 87% rename from logger/logger.go rename to common/logger.go index 00c010a..d3ec266 100644 --- a/logger/logger.go +++ b/common/logger.go @@ -1,21 +1,20 @@ -package logger +package common import ( - "github.com/krau/SaveAny-Bot/config" - "github.com/gookit/slog" "github.com/gookit/slog/handler" "github.com/gookit/slog/rotatefile" + "github.com/krau/SaveAny-Bot/config" ) -var L *slog.Logger +var Log *slog.Logger func InitLogger() { - if L != nil { + if Log != nil { return } slog.DefaultChannelName = "SaveAnyBot" - L = slog.New() + Log = slog.New() logLevel := slog.LevelByName(config.Cfg.Log.Level) logFilePath := config.Cfg.Log.File logBackupNum := config.Cfg.Log.BackupCount @@ -36,5 +35,5 @@ func InitLogger() { if err != nil { panic(err) } - L.AddHandlers(consoleH, fileH) + Log.AddHandlers(consoleH, fileH) } diff --git a/common/os.go b/common/os.go index a9bbd3c..89e6cb9 100644 --- a/common/os.go +++ b/common/os.go @@ -5,8 +5,6 @@ import ( "os" "path/filepath" "time" - - "github.com/krau/SaveAny-Bot/logger" ) // 创建文件, 自动创建目录 @@ -31,10 +29,10 @@ func PurgeFile(path string) error { 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) + Log.Errorf("Failed to create timer for %s: %s", path, err) return } - logger.L.Debugf("Remove file after %s: %s", td, path) + Log.Debugf("Remove file after %s: %s", td, path) time.AfterFunc(td, func() { PurgeFile(path) }) diff --git a/core/core.go b/core/core.go index 4852d37..6620d4e 100644 --- a/core/core.go +++ b/core/core.go @@ -7,8 +7,8 @@ import ( "github.com/celestix/gotgproto/ext" "github.com/gotd/td/tg" + "github.com/krau/SaveAny-Bot/common" "github.com/krau/SaveAny-Bot/config" - "github.com/krau/SaveAny-Bot/logger" "github.com/krau/SaveAny-Bot/queue" "github.com/krau/SaveAny-Bot/types" ) @@ -17,17 +17,17 @@ func worker(queue *queue.TaskQueue, semaphore chan struct{}) { for { semaphore <- struct{}{} task := queue.GetTask() - logger.L.Debugf("Got task: %s", task.String()) + common.Log.Debugf("Got task: %s", task.String()) switch task.Status { case types.Pending: - logger.L.Infof("Processing task: %s", task.String()) + common.Log.Infof("Processing task: %s", task.String()) if err := processPendingTask(task); err != nil { task.Error = err if errors.Is(err, context.Canceled) { task.Status = types.Canceled } else { - logger.L.Errorf("Failed to do task: %s", err) + common.Log.Errorf("Failed to do task: %s", err) task.Status = types.Failed } } else { @@ -35,10 +35,10 @@ func worker(queue *queue.TaskQueue, semaphore chan struct{}) { } queue.AddTask(task) case types.Succeeded: - logger.L.Infof("Task succeeded: %s", task.String()) + common.Log.Infof("Task succeeded: %s", task.String()) extCtx, ok := task.Ctx.(*ext.Context) if !ok { - logger.L.Errorf("Context is not *ext.Context: %T", task.Ctx) + common.Log.Errorf("Context is not *ext.Context: %T", task.Ctx) } else { extCtx.EditMessage(task.ReplyChatID, &tg.MessagesEditMessageRequest{ Message: fmt.Sprintf("文件保存成功\n [%s]: %s", task.StorageName, task.StoragePath), @@ -46,10 +46,10 @@ func worker(queue *queue.TaskQueue, semaphore chan struct{}) { }) } case types.Failed: - logger.L.Errorf("Task failed: %s", task.String()) + common.Log.Errorf("Task failed: %s", task.String()) extCtx, ok := task.Ctx.(*ext.Context) if !ok { - logger.L.Errorf("Context is not *ext.Context: %T", task.Ctx) + common.Log.Errorf("Context is not *ext.Context: %T", task.Ctx) } else { extCtx.EditMessage(task.ReplyChatID, &tg.MessagesEditMessageRequest{ Message: "文件保存失败\n" + task.Error.Error(), @@ -57,10 +57,10 @@ func worker(queue *queue.TaskQueue, semaphore chan struct{}) { }) } case types.Canceled: - logger.L.Infof("Task canceled: %s", task.String()) + common.Log.Infof("Task canceled: %s", task.String()) extCtx, ok := task.Ctx.(*ext.Context) if !ok { - logger.L.Errorf("Context is not *ext.Context: %T", task.Ctx) + common.Log.Errorf("Context is not *ext.Context: %T", task.Ctx) } else { extCtx.EditMessage(task.ReplyChatID, &tg.MessagesEditMessageRequest{ Message: "任务已取消", @@ -68,16 +68,16 @@ func worker(queue *queue.TaskQueue, semaphore chan struct{}) { }) } default: - logger.L.Errorf("Unknown task status: %s", task.Status) + common.Log.Errorf("Unknown task status: %s", task.Status) } <-semaphore - logger.L.Debugf("Task done: %s; status: %s", task.String(), task.Status) + common.Log.Debugf("Task done: %s; status: %s", task.String(), task.Status) queue.DoneTask(task) } } func Run() { - logger.L.Info("Start processing tasks...") + common.Log.Info("Start processing tasks...") semaphore := make(chan struct{}, config.Cfg.Workers) for i := 0; i < config.Cfg.Workers; i++ { go worker(queue.Queue, semaphore) diff --git a/core/download.go b/core/download.go index 818ed4c..2271024 100644 --- a/core/download.go +++ b/core/download.go @@ -10,14 +10,14 @@ import ( "github.com/duke-git/lancet/v2/fileutil" "github.com/gotd/td/tg" "github.com/krau/SaveAny-Bot/bot" + "github.com/krau/SaveAny-Bot/common" "github.com/krau/SaveAny-Bot/config" - "github.com/krau/SaveAny-Bot/logger" "github.com/krau/SaveAny-Bot/storage" "github.com/krau/SaveAny-Bot/types" ) func processPendingTask(task *types.Task) error { - logger.L.Debugf("Start processing task: %s", task.String()) + common.Log.Debugf("Start processing task: %s", task.String()) if task.FileName() == "" { task.File.FileName = fmt.Sprintf("%d_%d_%s", task.FileChatID, task.FileMessageID, task.File.Hash()) } @@ -57,7 +57,7 @@ func processPendingTask(task *types.Task) error { taskStreamStorage, isStreamStorage := taskStorage.(storage.StreamStorage) if config.Cfg.Stream { if !isStreamStorage { - logger.L.Warnf("存储 %s 不支持流式上传", taskStorage.Name()) + common.Log.Warnf("存储 %s 不支持流式上传", taskStorage.Name()) } else { text, entities := buildProgressMessageEntity(task, 0, task.StartTime, 0) ctx.EditMessage(task.ReplyChatID, &tg.MessagesEditMessageRequest{ @@ -81,7 +81,7 @@ func processPendingTask(task *types.Task) error { if err != nil { return fmt.Errorf("下载文件失败: %w", err) } - logger.L.Infof("Uploaded file: %s", task.StoragePath) + common.Log.Infof("Uploaded file: %s", task.StoragePath) return nil } } @@ -109,7 +109,7 @@ func processPendingTask(task *types.Task) error { fixTaskFileExt(task, cacheDestPath) - logger.L.Infof("Downloaded file: %s", cacheDestPath) + common.Log.Infof("Downloaded file: %s", cacheDestPath) ctx.EditMessage(task.ReplyChatID, &tg.MessagesEditMessageRequest{ Message: fmt.Sprintf("下载完成: %s\n正在转存文件...", task.FileName()), ID: task.ReplyMessageID, diff --git a/core/utils.go b/core/utils.go index 0b6c90e..8a8130b 100644 --- a/core/utils.go +++ b/core/utils.go @@ -16,7 +16,6 @@ import ( "github.com/krau/SaveAny-Bot/bot" "github.com/krau/SaveAny-Bot/common" "github.com/krau/SaveAny-Bot/config" - "github.com/krau/SaveAny-Bot/logger" "github.com/krau/SaveAny-Bot/storage" "github.com/krau/SaveAny-Bot/types" ) @@ -30,7 +29,7 @@ func saveFileWithRetry(ctx context.Context, task *types.Task, taskStorage storag if i == config.Cfg.Retry { return fmt.Errorf("failed to save file: %w", err) } - logger.L.Errorf("Failed to save file: %s, retrying...", err) + common.Log.Errorf("Failed to save file: %s, retrying...", err) select { case <-ctx.Done(): return fmt.Errorf("context canceled during retry delay: %w", ctx.Err()) @@ -64,7 +63,7 @@ func processPhoto(task *types.Task, taskStorage storage.Storage, cachePath strin defer cleanCacheFile(cachePath) - logger.L.Infof("Downloaded file: %s", cachePath) + common.Log.Infof("Downloaded file: %s", cachePath) return saveFileWithRetry(task.Ctx, task, taskStorage, cachePath) } @@ -74,7 +73,7 @@ func cleanCacheFile(destPath string) { common.RmFileAfter(destPath, time.Duration(config.Cfg.Temp.CacheTTL)*time.Second) } else { if err := os.Remove(destPath); err != nil { - logger.L.Errorf("Failed to purge file: %s", err) + common.Log.Errorf("Failed to purge file: %s", err) } } } @@ -120,7 +119,7 @@ func buildProgressMessageEntity(task *types.Task, bytesRead int64, startTime tim styling.Plain("\n当前进度: "), styling.Bold(fmt.Sprintf("%.2f%%", progress)), ); err != nil { - logger.L.Errorf("Failed to build entities: %s", err) + common.Log.Errorf("Failed to build entities: %s", err) return text, entities } return entityBuilder.Complete() @@ -129,7 +128,7 @@ func buildProgressMessageEntity(task *types.Task, bytesRead int64, startTime tim func buildProgressCallback(ctx *ext.Context, task *types.Task, updateCount int) func(bytesRead, contentLength int64) { return func(bytesRead, contentLength int64) { progress := float64(bytesRead) / float64(contentLength) * 100 - logger.L.Tracef("Downloading %s: %.2f%%", task.String(), progress) + common.Log.Tracef("Downloading %s: %.2f%%", task.String(), progress) progressInt := int(progress) if task.File.FileSize < 1024*1024*50 || progressInt == 0 || progressInt%int(100/updateCount) != 0 { return @@ -154,7 +153,7 @@ func fixTaskFileExt(task *types.Task, localFilePath string) { if path.Ext(task.FileName()) == "" { mimeType, err := mimetype.DetectFile(localFilePath) if err != nil { - logger.L.Errorf("Failed to detect mime type: %s", err) + common.Log.Errorf("Failed to detect mime type: %s", err) } else { task.File.FileName = fmt.Sprintf("%s%s", task.FileName(), mimeType.Extension()) task.StoragePath = fmt.Sprintf("%s%s", task.StoragePath, mimeType.Extension()) diff --git a/dao/db.go b/dao/db.go index 030a654..230122d 100644 --- a/dao/db.go +++ b/dao/db.go @@ -7,8 +7,8 @@ import ( "time" "github.com/glebarez/sqlite" + "github.com/krau/SaveAny-Bot/common" "github.com/krau/SaveAny-Bot/config" - "github.com/krau/SaveAny-Bot/logger" "gorm.io/gorm" glogger "gorm.io/gorm/logger" ) @@ -17,12 +17,12 @@ var db *gorm.DB func Init() { if err := os.MkdirAll(filepath.Dir(config.Cfg.DB.Path), 0755); err != nil { - logger.L.Fatal("Failed to create data directory: ", err) + common.Log.Fatal("Failed to create data directory: ", err) os.Exit(1) } var err error db, err = gorm.Open(sqlite.Open(config.Cfg.DB.Path), &gorm.Config{ - Logger: glogger.New(logger.L, glogger.Config{ + Logger: glogger.New(common.Log, glogger.Config{ Colorful: true, SlowThreshold: time.Second * 5, LogLevel: glogger.Error, @@ -32,16 +32,16 @@ func Init() { PrepareStmt: true, }) if err != nil { - logger.L.Fatal("Failed to open database: ", err) + common.Log.Fatal("Failed to open database: ", err) os.Exit(1) } - logger.L.Debug("Database connected") + common.Log.Debug("Database connected") if err := db.AutoMigrate(&ReceivedFile{}, &User{}, &Dir{}, &CallbackData{}); err != nil { - logger.L.Fatal("迁移数据库失败, 如果您从旧版本升级, 建议手动删除数据库文件后重试: ", err) + common.Log.Fatal("迁移数据库失败, 如果您从旧版本升级, 建议手动删除数据库文件后重试: ", err) } if err := syncUsers(); err != nil { - logger.L.Fatal("Failed to sync users:", err) + common.Log.Fatal("Failed to sync users:", err) } } @@ -66,7 +66,7 @@ func syncUsers() error { if err := CreateUser(cfgID); err != nil { return fmt.Errorf("failed to create user %d: %w", cfgID, err) } - logger.L.Infof("创建用户: %d", cfgID) + common.Log.Infof("创建用户: %d", cfgID) } } @@ -75,7 +75,7 @@ func syncUsers() error { if err := DeleteUser(&dbUser); err != nil { return fmt.Errorf("failed to delete user %d: %w", dbID, err) } - logger.L.Infof("删除用户: %d", dbID) + common.Log.Infof("删除用户: %d", dbID) } } diff --git a/storage/alist/alist.go b/storage/alist/alist.go index ea0d3a9..cb84bb7 100644 --- a/storage/alist/alist.go +++ b/storage/alist/alist.go @@ -12,8 +12,8 @@ import ( "sync" "time" + "github.com/krau/SaveAny-Bot/common" config "github.com/krau/SaveAny-Bot/config/storage" - "github.com/krau/SaveAny-Bot/logger" "github.com/krau/SaveAny-Bot/types" ) @@ -43,36 +43,36 @@ func (a *Alist) Init(cfg config.StorageConfig) error { defer cancel() req, err := http.NewRequestWithContext(ctx, http.MethodGet, a.baseURL+"/api/me", nil) if err != nil { - logger.L.Fatalf("Failed to create request: %v", err) + common.Log.Fatalf("Failed to create request: %v", err) return err } req.Header.Set("Authorization", a.token) resp, err := a.client.Do(req) if err != nil { - logger.L.Fatalf("Failed to send request: %v", err) + common.Log.Fatalf("Failed to send request: %v", err) return err } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { - logger.L.Fatalf("Failed to get alist user info: %s", resp.Status) + common.Log.Fatalf("Failed to get alist user info: %s", resp.Status) return err } body, err := io.ReadAll(resp.Body) if err != nil { - logger.L.Fatalf("Failed to read response body: %v", err) + common.Log.Fatalf("Failed to read response body: %v", err) return err } var meResp meResponse if err := json.Unmarshal(body, &meResp); err != nil { - logger.L.Fatalf("Failed to unmarshal me response: %v", err) + common.Log.Fatalf("Failed to unmarshal me response: %v", err) return err } if meResp.Code != http.StatusOK { - logger.L.Fatalf("Failed to get alist user info: %s", meResp.Message) + common.Log.Fatalf("Failed to get alist user info: %s", meResp.Message) return err } - logger.L.Debugf("Logged in Alist as %s", meResp.Data.Username) + common.Log.Debugf("Logged in Alist as %s", meResp.Data.Username) return nil } a.loginInfo = &loginRequest{ @@ -81,10 +81,10 @@ func (a *Alist) Init(cfg config.StorageConfig) error { } if err := a.getToken(); err != nil { - logger.L.Fatalf("Failed to login to Alist: %v", err) + common.Log.Fatalf("Failed to login to Alist: %v", err) return err } - logger.L.Debug("Logged in to Alist") + common.Log.Debug("Logged in to Alist") go a.refreshToken(*alistConfig) return nil @@ -99,7 +99,7 @@ func (a *Alist) Name() string { } func (a *Alist) Save(ctx context.Context, filePath, storagePath string) error { - logger.L.Infof("Saving file %s to %s", filePath, storagePath) + common.Log.Infof("Saving file %s to %s", filePath, storagePath) file, err := os.Open(filePath) if err != nil { return fmt.Errorf("failed to open file: %w", err) diff --git a/storage/alist/token.go b/storage/alist/token.go index d517020..12a0bd0 100644 --- a/storage/alist/token.go +++ b/storage/alist/token.go @@ -8,8 +8,8 @@ import ( "net/http" "time" + "github.com/krau/SaveAny-Bot/common" config "github.com/krau/SaveAny-Bot/config/storage" - "github.com/krau/SaveAny-Bot/logger" ) func (a *Alist) getToken() error { @@ -51,15 +51,15 @@ func (a *Alist) getToken() error { func (a *Alist) refreshToken(cfg config.AlistStorageConfig) { tokenExp := cfg.TokenExp if tokenExp <= 0 { - logger.L.Warn("Invalid token expiration time, using default value") + common.Log.Warn("Invalid token expiration time, using default value") tokenExp = 3600 } for { time.Sleep(time.Duration(tokenExp) * time.Second) if err := a.getToken(); err != nil { - logger.L.Errorf("Failed to refresh jwt token: %v", err) + common.Log.Errorf("Failed to refresh jwt token: %v", err) continue } - logger.L.Info("Refreshed Alist jwt token") + common.Log.Info("Refreshed Alist jwt token") } } diff --git a/storage/local/local.go b/storage/local/local.go index f8ba4b4..721ef20 100644 --- a/storage/local/local.go +++ b/storage/local/local.go @@ -8,8 +8,8 @@ import ( "path/filepath" "github.com/duke-git/lancet/v2/fileutil" + "github.com/krau/SaveAny-Bot/common" config "github.com/krau/SaveAny-Bot/config/storage" - "github.com/krau/SaveAny-Bot/logger" "github.com/krau/SaveAny-Bot/types" ) @@ -42,7 +42,7 @@ func (l *Local) Name() string { } func (l *Local) Save(ctx context.Context, filePath, storagePath string) error { - logger.L.Infof("Saving file %s to %s", filePath, storagePath) + common.Log.Infof("Saving file %s to %s", filePath, storagePath) absPath, err := filepath.Abs(storagePath) if err != nil { return err diff --git a/storage/minio/client.go b/storage/minio/client.go index beb2da1..18e2c40 100644 --- a/storage/minio/client.go +++ b/storage/minio/client.go @@ -5,8 +5,8 @@ import ( "fmt" "path" + "github.com/krau/SaveAny-Bot/common" config "github.com/krau/SaveAny-Bot/config/storage" - "github.com/krau/SaveAny-Bot/logger" "github.com/krau/SaveAny-Bot/types" "github.com/minio/minio-go/v7" "github.com/minio/minio-go/v7/pkg/credentials" @@ -60,7 +60,7 @@ func (m *Minio) JoinStoragePath(task types.Task) string { } func (m *Minio) Save(ctx context.Context, localFilePath, storagePath string) error { - logger.L.Infof("Saving file %s to %s", localFilePath, storagePath) + common.Log.Infof("Saving file %s to %s", localFilePath, storagePath) _, err := m.client.FPutObject(ctx, m.config.BucketName, storagePath, localFilePath, minio.PutObjectOptions{}) if err != nil { diff --git a/storage/minio/stream.go b/storage/minio/stream.go index dbf7ff2..9aee05c 100644 --- a/storage/minio/stream.go +++ b/storage/minio/stream.go @@ -5,7 +5,7 @@ import ( "fmt" "io" - "github.com/krau/SaveAny-Bot/logger" + "github.com/krau/SaveAny-Bot/common" "github.com/minio/minio-go/v7" ) @@ -48,7 +48,7 @@ func (w *MinioWriter) Close() error { } func (m *Minio) NewUploadStream(ctx context.Context, storagePath string) (io.WriteCloser, error) { - logger.L.Infof("Creating upload stream for %s", storagePath) + common.Log.Infof("Creating upload stream for %s", storagePath) uploadCtx, cancel := context.WithCancel(ctx) pipeReader, pipeWriter := io.Pipe() @@ -73,12 +73,12 @@ func (m *Minio) NewUploadStream(ctx context.Context, storagePath string) (io.Wri ) if err != nil { - logger.L.Errorf("Failed to upload to %s: %v", storagePath, err) + common.Log.Errorf("Failed to upload to %s: %v", storagePath, err) done <- err return } - logger.L.Infof("uploaded %d bytes to %s", info.Size, storagePath) + common.Log.Infof("uploaded %d bytes to %s", info.Size, storagePath) done <- nil }() diff --git a/storage/storage.go b/storage/storage.go index 20cfd45..3b304b5 100644 --- a/storage/storage.go +++ b/storage/storage.go @@ -5,9 +5,9 @@ import ( "fmt" "io" + "github.com/krau/SaveAny-Bot/common" "github.com/krau/SaveAny-Bot/config" sc "github.com/krau/SaveAny-Bot/config/storage" - "github.com/krau/SaveAny-Bot/logger" "github.com/krau/SaveAny-Bot/storage/alist" "github.com/krau/SaveAny-Bot/storage/local" "github.com/krau/SaveAny-Bot/storage/minio" @@ -110,14 +110,14 @@ func NewStorage(cfg sc.StorageConfig) (Storage, error) { } func LoadStorages() { - logger.L.Info("加载存储...") + common.Log.Info("加载存储...") for _, storage := range config.Cfg.Storages { _, err := GetStorageByName(storage.GetName()) if err != nil { - logger.L.Errorf("加载存储 %s 失败: %v", storage.GetName(), err) + common.Log.Errorf("加载存储 %s 失败: %v", storage.GetName(), err) } } - logger.L.Infof("成功加载 %d 个存储", len(Storages)) + common.Log.Infof("成功加载 %d 个存储", len(Storages)) for user := range config.Cfg.GetUsersID() { UserStorages[int64(user)] = GetUserStorages(int64(user)) } diff --git a/storage/webdav/stream.go b/storage/webdav/stream.go index ac4604a..e8bbb0a 100644 --- a/storage/webdav/stream.go +++ b/storage/webdav/stream.go @@ -6,7 +6,7 @@ import ( "io" "path" - "github.com/krau/SaveAny-Bot/logger" + "github.com/krau/SaveAny-Bot/common" ) type WebdavWriter struct { @@ -32,7 +32,7 @@ func (w *WebdavWriter) Close() error { func (w *Webdav) NewUploadStream(ctx context.Context, storagePath string) (io.WriteCloser, error) { if err := w.client.MkDir(ctx, path.Dir(storagePath)); err != nil { - logger.L.Errorf("Failed to create directory %s: %v", path.Dir(storagePath), err) + common.Log.Errorf("Failed to create directory %s: %v", path.Dir(storagePath), err) return nil, ErrFailedToCreateDirectory } pipeReader, pipeWriter := io.Pipe() diff --git a/storage/webdav/webdav.go b/storage/webdav/webdav.go index daf61a5..d89e5f4 100644 --- a/storage/webdav/webdav.go +++ b/storage/webdav/webdav.go @@ -8,8 +8,8 @@ import ( "path" "time" + "github.com/krau/SaveAny-Bot/common" config "github.com/krau/SaveAny-Bot/config/storage" - "github.com/krau/SaveAny-Bot/logger" "github.com/krau/SaveAny-Bot/types" ) @@ -42,20 +42,20 @@ func (w *Webdav) Name() string { } func (w *Webdav) Save(ctx context.Context, filePath, storagePath string) error { - logger.L.Infof("Saving file %s to %s", filePath, storagePath) + common.Log.Infof("Saving file %s to %s", filePath, storagePath) if err := w.client.MkDir(ctx, path.Dir(storagePath)); err != nil { - logger.L.Errorf("Failed to create directory %s: %v", path.Dir(storagePath), err) + common.Log.Errorf("Failed to create directory %s: %v", path.Dir(storagePath), err) return ErrFailedToCreateDirectory } file, err := os.Open(filePath) if err != nil { - logger.L.Errorf("Failed to open file %s: %v", filePath, err) + common.Log.Errorf("Failed to open file %s: %v", filePath, err) return err } defer file.Close() if err := w.client.WriteFile(ctx, storagePath, file); err != nil { - logger.L.Errorf("Failed to write file %s: %v", storagePath, err) + common.Log.Errorf("Failed to write file %s: %v", storagePath, err) return ErrFailedToWriteFile } return nil