mirror of
https://github.com/krau/SaveAny-Bot.git
synced 2026-09-05 15:46:37 +08:00
Merge pull request #204 from Rain-kl/feat/save-strategy
新增功能: 重名文件时选择保存策略 - 重命名,覆盖,跳过
This commit is contained in:
@@ -38,6 +38,8 @@ func BuildAddSelectStorageKeyboard(stors []storage.Storage, adddata tcbdata.Add)
|
||||
data := tcbdata.Add{
|
||||
TaskType: taskType,
|
||||
SelectedStorName: storage.Name(),
|
||||
SelectedDirPath: adddata.SelectedDirPath,
|
||||
ConflictStrategy: adddata.ConflictStrategy,
|
||||
|
||||
Files: adddata.Files,
|
||||
AsBatch: len(adddata.Files) > 1,
|
||||
@@ -109,6 +111,38 @@ func BuildAddOneSelectStorageMessage(ctx context.Context, stors []storage.Storag
|
||||
}, nil
|
||||
}
|
||||
|
||||
func BuildConflictStrategyMarkup(adddata tcbdata.Add) (*tg.ReplyInlineMarkup, error) {
|
||||
type option struct {
|
||||
text string
|
||||
strategy string
|
||||
}
|
||||
options := []option{
|
||||
{text: i18n.T(i18nk.BotMsgCommonButtonConflictRename, nil), strategy: tcbdata.ConflictStrategyRename},
|
||||
{text: i18n.T(i18nk.BotMsgCommonButtonConflictOverwrite, nil), strategy: tcbdata.ConflictStrategyOverwrite},
|
||||
{text: i18n.T(i18nk.BotMsgCommonButtonConflictSkip, nil), strategy: tcbdata.ConflictStrategySkip},
|
||||
}
|
||||
buttons := make([]tg.KeyboardButtonClass, 0, len(options))
|
||||
for _, opt := range options {
|
||||
data := adddata
|
||||
data.ConflictStrategy = opt.strategy
|
||||
dataid := xid.New().String()
|
||||
if err := cache.Set(dataid, data); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
buttons = append(buttons, &tg.KeyboardButtonCallback{
|
||||
Text: opt.text,
|
||||
Data: fmt.Appendf(nil, "%s %s", tcbdata.TypeAdd, dataid),
|
||||
})
|
||||
}
|
||||
rows := make([]tg.KeyboardButtonRow, 0, len(buttons))
|
||||
for _, button := range buttons {
|
||||
rows = append(rows, tg.KeyboardButtonRow{
|
||||
Buttons: []tg.KeyboardButtonClass{button},
|
||||
})
|
||||
}
|
||||
return &tg.ReplyInlineMarkup{Rows: rows}, nil
|
||||
}
|
||||
|
||||
// Builds the inline keyboard for setting default storage
|
||||
func BuildSetDefaultStorageMarkup(
|
||||
ctx context.Context,
|
||||
|
||||
Reference in New Issue
Block a user