fix: set filedbid for silent mode task, close #67

This commit is contained in:
krau
2025-05-29 21:55:04 +08:00
parent 71844deab1
commit 015539c009
6 changed files with 18 additions and 9 deletions

View File

@@ -115,7 +115,7 @@ func AddToQueue(ctx *ext.Context, update *ext.Update) error {
} }
if update.CallbackQuery.MsgID != record.ReplyMessageID { if update.CallbackQuery.MsgID != record.ReplyMessageID {
record.ReplyMessageID = update.CallbackQuery.MsgID record.ReplyMessageID = update.CallbackQuery.MsgID
if err := dao.SaveReceivedFile(record); err != nil { if _, err := dao.SaveReceivedFile(record); err != nil {
common.Log.Errorf("更新记录失败: %s", err) common.Log.Errorf("更新记录失败: %s", err)
} }
} }

View File

@@ -49,14 +49,15 @@ func handleFileMessage(ctx *ext.Context, update *ext.Update) error {
file.FileName = GenFileNameFromMessage(*update.EffectiveMessage.Message, file) file.FileName = GenFileNameFromMessage(*update.EffectiveMessage.Message, file)
} }
if err := dao.SaveReceivedFile(&dao.ReceivedFile{ record, err := dao.SaveReceivedFile(&dao.ReceivedFile{
Processing: false, Processing: false,
FileName: file.FileName, FileName: file.FileName,
ChatID: update.EffectiveChat().GetID(), ChatID: update.EffectiveChat().GetID(),
MessageID: update.EffectiveMessage.ID, MessageID: update.EffectiveMessage.ID,
ReplyMessageID: msg.ID, ReplyMessageID: msg.ID,
ReplyChatID: update.GetUserChat().GetID(), ReplyChatID: update.GetUserChat().GetID(),
}); err != nil { })
if err != nil {
common.Log.Errorf("添加接收的文件失败: %s", err) common.Log.Errorf("添加接收的文件失败: %s", err)
if _, err := ctx.EditMessage(update.EffectiveChat().GetID(), &tg.MessagesEditMessageRequest{ if _, err := ctx.EditMessage(update.EffectiveChat().GetID(), &tg.MessagesEditMessageRequest{
Message: fmt.Sprintf("添加接收的文件失败: %s", err), Message: fmt.Sprintf("添加接收的文件失败: %s", err),
@@ -73,6 +74,7 @@ func handleFileMessage(ctx *ext.Context, update *ext.Update) error {
return HandleSilentAddTask(ctx, update, user, &types.Task{ return HandleSilentAddTask(ctx, update, user, &types.Task{
Ctx: ctx, Ctx: ctx,
Status: types.Pending, Status: types.Pending,
FileDBID: record.ID,
File: file, File: file,
StorageName: user.DefaultStorage, StorageName: user.DefaultStorage,
FileChatID: update.EffectiveChat().GetID(), FileChatID: update.EffectiveChat().GetID(),

View File

@@ -100,7 +100,8 @@ func handleLinkMessage(ctx *ext.Context, update *ext.Update) error {
ReplyMessageID: replied.ID, ReplyMessageID: replied.ID,
ReplyChatID: update.GetUserChat().GetID(), ReplyChatID: update.GetUserChat().GetID(),
} }
if err := dao.SaveReceivedFile(receivedFile); err != nil { record, err := dao.SaveReceivedFile(receivedFile)
if err != nil {
common.Log.Errorf("保存接收的文件失败: %s", err) common.Log.Errorf("保存接收的文件失败: %s", err)
ctx.EditMessage(update.EffectiveChat().GetID(), &tg.MessagesEditMessageRequest{ ctx.EditMessage(update.EffectiveChat().GetID(), &tg.MessagesEditMessageRequest{
Message: "无法保存文件: " + err.Error(), Message: "无法保存文件: " + err.Error(),
@@ -114,6 +115,7 @@ func handleLinkMessage(ctx *ext.Context, update *ext.Update) error {
return HandleSilentAddTask(ctx, update, user, &types.Task{ return HandleSilentAddTask(ctx, update, user, &types.Task{
Ctx: ctx, Ctx: ctx,
Status: types.Pending, Status: types.Pending,
FileDBID: record.ID,
File: file, File: file,
StorageName: user.DefaultStorage, StorageName: user.DefaultStorage,
UserID: user.ChatID, UserID: user.ChatID,

View File

@@ -113,7 +113,8 @@ func saveCmd(ctx *ext.Context, update *ext.Update) error {
ReplyChatID: update.GetUserChat().GetID(), ReplyChatID: update.GetUserChat().GetID(),
} }
if err := dao.SaveReceivedFile(receivedFile); err != nil { record, err := dao.SaveReceivedFile(receivedFile)
if err != nil {
common.Log.Errorf("保存接收的文件失败: %s", err) common.Log.Errorf("保存接收的文件失败: %s", err)
if _, err := ctx.EditMessage(update.EffectiveChat().GetID(), &tg.MessagesEditMessageRequest{ if _, err := ctx.EditMessage(update.EffectiveChat().GetID(), &tg.MessagesEditMessageRequest{
Message: fmt.Sprintf("保存接收的文件失败: %s", err), Message: fmt.Sprintf("保存接收的文件失败: %s", err),
@@ -129,6 +130,7 @@ func saveCmd(ctx *ext.Context, update *ext.Update) error {
return HandleSilentAddTask(ctx, update, user, &types.Task{ return HandleSilentAddTask(ctx, update, user, &types.Task{
Ctx: ctx, Ctx: ctx,
Status: types.Pending, Status: types.Pending,
FileDBID: record.ID,
File: file, File: file,
StorageName: user.DefaultStorage, StorageName: user.DefaultStorage,
FileChatID: update.EffectiveChat().GetID(), FileChatID: update.EffectiveChat().GetID(),
@@ -235,7 +237,8 @@ func handleBatchSave(ctx *ext.Context, update *ext.Update, args []string) error
ReplyChatID: update.GetUserChat().GetID(), ReplyChatID: update.GetUserChat().GetID(),
ReplyMessageID: 0, ReplyMessageID: 0,
} }
if err := dao.SaveReceivedFile(receivedFile); err != nil { record, err := dao.SaveReceivedFile(receivedFile)
if err != nil {
common.Log.Errorf("保存接收的文件失败: %s", err) common.Log.Errorf("保存接收的文件失败: %s", err)
failedSaveDB++ failedSaveDB++
continue continue
@@ -243,6 +246,7 @@ func handleBatchSave(ctx *ext.Context, update *ext.Update, args []string) error
task := &types.Task{ task := &types.Task{
Ctx: ctx, Ctx: ctx,
Status: types.Pending, Status: types.Pending,
FileDBID: record.ID,
File: file, File: file,
StorageName: user.DefaultStorage, StorageName: user.DefaultStorage,
FileChatID: chatID, FileChatID: chatID,

View File

@@ -89,7 +89,7 @@ func handleTelegraph(ctx *ext.Context, update *ext.Update) error {
IsTelegraph: true, IsTelegraph: true,
TelegraphURL: tgphUrl, TelegraphURL: tgphUrl,
} }
if err := dao.SaveReceivedFile(record); err != nil { if _, err := dao.SaveReceivedFile(record); err != nil {
common.Log.Errorf("保存接收的文件失败: %s", err) common.Log.Errorf("保存接收的文件失败: %s", err)
ctx.EditMessage(update.EffectiveChat().GetID(), &tg.MessagesEditMessageRequest{ ctx.EditMessage(update.EffectiveChat().GetID(), &tg.MessagesEditMessageRequest{
Message: "无法保存文件: " + err.Error(), Message: "无法保存文件: " + err.Error(),

View File

@@ -1,11 +1,12 @@
package dao package dao
func SaveReceivedFile(receivedFile *ReceivedFile) error { func SaveReceivedFile(receivedFile *ReceivedFile) (*ReceivedFile, error) {
record, err := GetReceivedFileByChatAndMessageID(receivedFile.ChatID, receivedFile.MessageID) record, err := GetReceivedFileByChatAndMessageID(receivedFile.ChatID, receivedFile.MessageID)
if err == nil { if err == nil {
receivedFile.ID = record.ID receivedFile.ID = record.ID
} }
return db.Save(receivedFile).Error db.Save(receivedFile)
return receivedFile, db.Error
} }
func GetReceivedFileByChatAndMessageID(chatID int64, messageID int) (*ReceivedFile, error) { func GetReceivedFileByChatAndMessageID(chatID int64, messageID int) (*ReceivedFile, error) {