Skip to content

Commit

Permalink
Merge pull request #870 from gotd/fix/telegram-channel-updates
Browse files Browse the repository at this point in the history
fix(telegram/updates): treat all messages from getChannelDifference as channel messages
  • Loading branch information
shadowspore committed Aug 30, 2022
2 parents 9558531 + 52a478c commit 7d721d1
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 15 deletions.
4 changes: 2 additions & 2 deletions telegram/updates/state.go
Expand Up @@ -374,7 +374,7 @@ func (s *state) getDifference() error {
if len(diff.NewMessages) > 0 || len(diff.NewEncryptedMessages) > 0 {
if err := s.handler.Handle(s.ctx, &tg.Updates{
Updates: append(
msgsToUpdates(diff.NewMessages),
msgsToUpdates(diff.NewMessages, false),
encryptedMsgsToUpdates(diff.NewEncryptedMessages)...,
),
Users: diff.Users,
Expand Down Expand Up @@ -413,7 +413,7 @@ func (s *state) getDifference() error {
if len(diff.NewMessages) > 0 || len(diff.NewEncryptedMessages) > 0 {
if err := s.handler.Handle(s.ctx, &tg.Updates{
Updates: append(
msgsToUpdates(diff.NewMessages),
msgsToUpdates(diff.NewMessages, false),
encryptedMsgsToUpdates(diff.NewEncryptedMessages)...,
),
Users: diff.Users,
Expand Down
2 changes: 1 addition & 1 deletion telegram/updates/state_channel.go
Expand Up @@ -259,7 +259,7 @@ func (s *channelState) getDifference() error {

if len(diff.NewMessages) > 0 {
if err := s.handler.Handle(s.ctx, &tg.Updates{
Updates: msgsToUpdates(diff.NewMessages),
Updates: msgsToUpdates(diff.NewMessages, true),
Users: diff.Users,
Chats: diff.Chats,
}); err != nil {
Expand Down
25 changes: 13 additions & 12 deletions telegram/updates/utils.go
Expand Up @@ -52,35 +52,36 @@ func getDialogPts(dialog tg.DialogClass) (int, error) {
return pts, nil
}

func msgsToUpdates(msgs []tg.MessageClass) []tg.UpdateClass {
var updates []tg.UpdateClass
func msgsToUpdates(msgs []tg.MessageClass, channel bool) []tg.UpdateClass {
updates := make([]tg.UpdateClass, 0, len(msgs))
for _, msg := range msgs {
if msg, ok := msg.(*tg.Message); ok {
if _, ok := msg.PeerID.(*tg.PeerChannel); ok {
updates = append(updates, &tg.UpdateNewChannelMessage{
Message: msg,
Pts: -1,
PtsCount: -1,
})
continue
}
if channel {
updates = append(updates, &tg.UpdateNewChannelMessage{
Message: msg,
Pts: -1,
PtsCount: -1,
})
continue
}

updates = append(updates, &tg.UpdateNewMessage{
Message: msg,
Pts: -1,
PtsCount: -1,
})
}

return updates
}

func encryptedMsgsToUpdates(msgs []tg.EncryptedMessageClass) []tg.UpdateClass {
var updates []tg.UpdateClass
updates := make([]tg.UpdateClass, 0, len(msgs))
for _, msg := range msgs {
updates = append(updates, &tg.UpdateNewEncryptedMessage{
Message: msg,
Qts: -1,
})
}

return updates
}

0 comments on commit 7d721d1

Please sign in to comment.