package handlers import ( "github.com/celestix/gotgproto/dispatcher" "github.com/celestix/gotgproto/ext" "github.com/charmbracelet/log" "github.com/krau/SaveAny-Bot/client/bot/handlers/utils/msgelem" "github.com/krau/SaveAny-Bot/client/bot/handlers/utils/shortcut" "github.com/krau/SaveAny-Bot/storage" ) func handleMediaMessage(ctx *ext.Context, update *ext.Update) error { logger := log.FromContext(ctx) message := update.EffectiveMessage.Message logger.Debugf("Got media: %s", message.Media.TypeName()) msg, file, err := shortcut.GetFileFromMessageWithReply(ctx, update, message) if err != nil { return err } userId := update.GetUserChat().GetID() stors := storage.GetUserStorages(ctx, userId) req, err := msgelem.BuildAddOneSelectStorageMessage(ctx, stors, file, msg.ID) if err != nil { logger.Errorf("构建存储选择消息失败: %s", err) ctx.Reply(update, ext.ReplyTextString("构建存储选择消息失败: "+err.Error()), nil) return dispatcher.EndGroups } ctx.EditMessage(update.EffectiveChat().GetID(), req) return dispatcher.EndGroups } func handleSilentSaveMedia(ctx *ext.Context, update *ext.Update) error { logger := log.FromContext(ctx) stor := storage.FromContext(ctx) if stor == nil { logger.Warn("Context storage is nil") ctx.Reply(update, ext.ReplyTextString("未找到存储"), nil) return dispatcher.EndGroups } message := update.EffectiveMessage.Message logger.Debugf("Got media: %s", message.Media.TypeName()) userID := update.GetUserChat().GetID() msg, file, err := shortcut.GetFileFromMessageWithReply(ctx, update, message) if err != nil { return err } return shortcut.CreateAndAddTGFileTaskWithEdit(ctx, userID, stor, "", file, msg.ID) }