38 lines
829 B
Go
38 lines
829 B
Go
package telegram
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"github.com/TelegramExchange/tgex-parser/internal/domain"
|
|
"github.com/gotd/td/tg"
|
|
)
|
|
|
|
func (t *Telegram) UpdatePostsViews(ctx context.Context, channel domain.Channel, posts []domain.Post) error {
|
|
ids := make([]int, len(posts))
|
|
for i, p := range posts {
|
|
ids[i] = p.MessageID
|
|
}
|
|
|
|
req := &tg.MessagesGetMessagesViewsRequest{
|
|
Peer: &tg.InputPeerChannel{
|
|
ChannelID: channel.ChannelID(),
|
|
AccessHash: channel.AccessHash,
|
|
},
|
|
ID: ids,
|
|
Increment: false,
|
|
}
|
|
|
|
resp, err := t.API().MessagesGetMessagesViews(ctx, req)
|
|
if err != nil {
|
|
return fmt.Errorf("get messages views: %w", err)
|
|
}
|
|
|
|
// Telegram гарантирует, что resp.Views соответствует порядку ids
|
|
for i, v := range resp.Views {
|
|
posts[i].Views = v.Views
|
|
}
|
|
|
|
return nil
|
|
}
|