refactor: simplify GetMessagesRange function and improve error message formatting

This commit is contained in:
krau
2026-01-08 12:42:44 +08:00
parent 5352491c76
commit 6d315f7af2

View File

@@ -113,29 +113,28 @@ func InputMessageClassSliceFromInt(ids []int) []tg.InputMessageClass {
return result
}
func GetMessagesRange(ctx *ext.Context, chatID int64, minId, maxId int) ([]*tg.Message, error) {
if msg, err := getMessagesRange(ctx, chatID, minId, maxId); err == nil {
return msg, nil
func GetMessagesRange(ctx *ext.Context, chatID int64, minId, maxId int) (msg []*tg.Message, err error) {
if msg, err = getMessagesRange(ctx, chatID, minId, maxId); err == nil {
return
}
in := constant.TDLibPeerID(chatID)
plain := in.ToPlain()
var channel constant.TDLibPeerID
channel.Channel(plain)
if msg, err := getMessagesRange(ctx, int64(channel), minId, maxId); err == nil {
return msg, nil
if msg, err = getMessagesRange(ctx, int64(channel), minId, maxId); err == nil {
return
}
var userID constant.TDLibPeerID
userID.User(plain)
if msg, err := getMessagesRange(ctx, int64(userID), minId, maxId); err == nil {
return msg, nil
if msg, err = getMessagesRange(ctx, int64(userID), minId, maxId); err == nil {
return
}
var chat constant.TDLibPeerID
chat.Chat(plain)
if msg, err := getMessagesRange(ctx, int64(chat), minId, maxId); err == nil {
return msg, nil
if msg, err = getMessagesRange(ctx, int64(chat), minId, maxId); err == nil {
return
}
return nil, fmt.Errorf("failed to get messages range for chatID %d", chatID)
return nil, fmt.Errorf("failed to get messages range for chat %d: %w", chatID, err)
}
func getMessagesRange(ctx *ext.Context, chatID int64, minId, maxId int) ([]*tg.Message, error) {