feat: add msgraw var to filename template and update i18n for fnamest display

This commit is contained in:
krau
2026-01-06 09:19:32 +08:00
parent e60e983229
commit 63aeabb39b
3 changed files with 25 additions and 11 deletions

View File

@@ -10,6 +10,7 @@ import (
"github.com/gotd/td/tg" "github.com/gotd/td/tg"
"github.com/krau/SaveAny-Bot/common/i18n" "github.com/krau/SaveAny-Bot/common/i18n"
"github.com/krau/SaveAny-Bot/common/i18n/i18nk" "github.com/krau/SaveAny-Bot/common/i18n/i18nk"
"github.com/krau/SaveAny-Bot/config"
"github.com/krau/SaveAny-Bot/database" "github.com/krau/SaveAny-Bot/database"
"github.com/krau/SaveAny-Bot/pkg/enums/fnamest" "github.com/krau/SaveAny-Bot/pkg/enums/fnamest"
"github.com/krau/SaveAny-Bot/pkg/tcbdata" "github.com/krau/SaveAny-Bot/pkg/tcbdata"
@@ -73,9 +74,9 @@ func handleConfigFnameSTCallback(ctx *ext.Context, update *ext.Update) error {
return err return err
} }
ctx.EditMessage(userID, &tg.MessagesEditMessageRequest{ ctx.EditMessage(userID, &tg.MessagesEditMessageRequest{
ID: update.CallbackQuery.GetMsgID(), ID: update.CallbackQuery.GetMsgID(),
Message: i18n.T(i18nk.BotMsgConfigInfoFilenameStrategySet, map[string]any{ Message: i18n.T(i18nk.BotMsgConfigInfoFilenameStrategySet, map[string]any{
"Strategy": fnamest.FnameSTDisplay[st], "Strategy": fnamest.GetDisplay(st, config.C().Lang),
}), }),
}) })
return dispatcher.EndGroups return dispatcher.EndGroups
@@ -84,7 +85,7 @@ func handleConfigFnameSTCallback(ctx *ext.Context, update *ext.Update) error {
buttons := make([]tg.KeyboardButtonClass, 0, len(opts)) buttons := make([]tg.KeyboardButtonClass, 0, len(opts))
for _, opt := range opts { for _, opt := range opts {
buttons = append(buttons, &tg.KeyboardButtonCallback{ buttons = append(buttons, &tg.KeyboardButtonCallback{
Text: fnamest.FnameSTDisplay[opt], Text: fnamest.GetDisplay(opt, config.C().Lang),
Data: fmt.Appendf(nil, "%s %s %s", tcbdata.TypeConfig, "fnamest", opt), Data: fmt.Appendf(nil, "%s %s %s", tcbdata.TypeConfig, "fnamest", opt),
}) })
} }
@@ -100,9 +101,9 @@ func handleConfigFnameSTCallback(ctx *ext.Context, update *ext.Update) error {
currentSt = fnamest.Default currentSt = fnamest.Default
} }
ctx.EditMessage(userID, &tg.MessagesEditMessageRequest{ ctx.EditMessage(userID, &tg.MessagesEditMessageRequest{
ID: update.CallbackQuery.GetMsgID(), ID: update.CallbackQuery.GetMsgID(),
Message: i18n.T(i18nk.BotMsgConfigPromptSelectFilenameStrategy, map[string]any{ Message: i18n.T(i18nk.BotMsgConfigPromptSelectFilenameStrategy, map[string]any{
"Strategy": fnamest.FnameSTDisplay[currentSt], "Strategy": fnamest.GetDisplay(currentSt, config.C().Lang),
}), }),
ReplyMarkup: markup, ReplyMarkup: markup,
}) })

View File

@@ -30,6 +30,7 @@ type FilenameTemplateData struct {
MsgTags string `json:"msgtags,omitempty"` MsgTags string `json:"msgtags,omitempty"`
MsgGen string `json:"msggen,omitempty"` MsgGen string `json:"msggen,omitempty"`
MsgDate string `json:"msgdate,omitempty"` MsgDate string `json:"msgdate,omitempty"`
MsgRaw string `json:"msgraw,omitempty"`
OrigName string `json:"origname,omitempty"` OrigName string `json:"origname,omitempty"`
ChatID string `json:"chatid,omitempty"` ChatID string `json:"chatid,omitempty"`
} }
@@ -39,6 +40,7 @@ func (f FilenameTemplateData) ToMap() map[string]string {
"msgid": f.MsgID, "msgid": f.MsgID,
"msgtags": f.MsgTags, "msgtags": f.MsgTags,
"msggen": f.MsgGen, "msggen": f.MsgGen,
"msgraw": f.MsgRaw,
"msgdate": f.MsgDate, "msgdate": f.MsgDate,
"origname": f.OrigName, "origname": f.OrigName,
"chatid": f.ChatID, "chatid": f.ChatID,
@@ -108,8 +110,10 @@ func BuildFilenameTemplateData(message *tg.Message) map[string]string {
t := time.Unix(int64(date), 0) t := time.Unix(int64(date), 0)
return t.Format("2006-01-02_15-04-05") return t.Format("2006-01-02_15-04-05")
}(), }(),
MsgRaw: message.GetMessage(),
ChatID: func() string { ChatID: func() string {
// 如果消息是频道的(从消息链接中fetch的) 直接使用其chat id, 无论它是否是从其他来源转发的 // 如果消息是频道的(从消息链接中fetch的) 直接使用其chat id,
// 无论它是否是从其他来源转发的
if message.GetPost() { if message.GetPost() {
peer := message.GetPeerID() peer := message.GetPeerID()
switch p := peer.(type) { switch p := peer.(type) {

View File

@@ -8,8 +8,17 @@ default, message, template
) */ ) */
type FnameST string type FnameST string
var FnameSTDisplay = map[FnameST]string{ var fnameSTDisplay = map[FnameST]map[string]string{
Default: "默认", Default: {"zh-CN": "默认", "en": "Default"},
Message: "优先从消息生成", Message: {"zh-CN": "优先从消息生成", "en": "Gen From Msg First"},
Template: "自定义模板", Template: {"zh-CN": "自定义模板", "en": "Template"},
}
func GetDisplay(st FnameST, lang string) string {
if display, ok := fnameSTDisplay[st]; ok {
if str, ok := display[lang]; ok {
return str
}
}
return fnameSTDisplay[st]["en"]
} }