mirror of
https://github.com/krau/SaveAny-Bot.git
synced 2026-05-11 23:29:50 +08:00
- Updated silent.go to replace hardcoded strings with i18n keys for user feedback. - Enhanced telegraph.go to use i18n for error messages and prompts. - Modified update.go to implement i18n for version update notifications and errors. - Refactored dir.go to utilize i18n for help messages related to directory operations. - Updated parse.go to replace static text with i18n keys for parsed text entities. - Enhanced rule.go to use i18n for rule management help messages. - Refactored storage.go to implement i18n for storage selection prompts. - Updated task.go to utilize i18n for task addition notifications. - Added new i18n keys in keys.go for various messages. - Updated Chinese localization in zh-Hans.yaml to reflect new i18n keys and messages.
42 lines
1.4 KiB
Go
42 lines
1.4 KiB
Go
package msgelem
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/duke-git/lancet/v2/strutil"
|
|
"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/i18n"
|
|
"github.com/krau/SaveAny-Bot/common/i18n/i18nk"
|
|
"github.com/krau/SaveAny-Bot/pkg/parser"
|
|
)
|
|
|
|
func BuildParsedTextEntity(item parser.Item) (string, []tg.MessageEntityClass, error) {
|
|
eb := entity.Builder{}
|
|
if err := styling.Perform(&eb,
|
|
styling.Bold(fmt.Sprintf("[%s]%s", item.Site, item.Title)),
|
|
styling.Plain(i18n.T(i18nk.BotMsgParseInfoLinkPrefix, nil)),
|
|
styling.Code(item.URL),
|
|
styling.Plain(i18n.T(i18nk.BotMsgParseInfoAuthorPrefix, nil)),
|
|
styling.Code(item.Author),
|
|
styling.Plain(i18n.T(i18nk.BotMsgParseInfoDescriptionPrefix, nil)),
|
|
styling.Code(strutil.Ellipsis(item.Description, 233)),
|
|
styling.Plain(i18n.T(i18nk.BotMsgParseInfoFileCountPrefix, nil)),
|
|
styling.Code(fmt.Sprintf("%d", len(item.Resources))),
|
|
styling.Plain(i18n.T(i18nk.BotMsgParseInfoTotalSizePrefix, nil)),
|
|
styling.Code(fmt.Sprintf("%.2f MB", func() float64 {
|
|
var totalSize int64
|
|
for _, res := range item.Resources {
|
|
totalSize += res.Size
|
|
}
|
|
return float64(totalSize) / 1024 / 1024
|
|
}())),
|
|
styling.Plain(i18n.T(i18nk.BotMsgParseInfoPromptSelectStorage, nil)),
|
|
); err != nil {
|
|
return "", nil, fmt.Errorf("failed to build parsed text entity: %w", err)
|
|
}
|
|
text, entities := eb.Complete()
|
|
return text, entities, nil
|
|
}
|