feat: sync ephemeral transient messages
Sync telesrv 570ccf8 (feat(ephemeral): implement Layer 228 transient messages). Skipped telesrv docs changes per public sync rules; normalized the public appearance seed label.
This commit is contained in:
parent
3f78eaa2c6
commit
f49c817def
53 changed files with 5793 additions and 112 deletions
|
|
@ -45,6 +45,12 @@ func (r *Router) enrichUpdateEventsWithPeerCache(ctx context.Context, viewerUser
|
|||
addDomainPeerRef(peer, 0, userIDs, channelIDs)
|
||||
}
|
||||
collectMessagePeerRefs(out[i].Message, 0, userIDs, channelIDs)
|
||||
if message := out[i].EphemeralMessage; message != nil {
|
||||
collectEphemeralMessagePeerRefs(*message, userIDs, channelIDs)
|
||||
if message.BotAPIReply != nil {
|
||||
collectEphemeralMessagePeerRefs(*message.BotAPIReply, userIDs, channelIDs)
|
||||
}
|
||||
}
|
||||
if out[i].BotCallbackQuery != nil && out[i].BotCallbackQuery.UserID != 0 {
|
||||
userIDs[out[i].BotCallbackQuery.UserID] = struct{}{}
|
||||
}
|
||||
|
|
@ -66,6 +72,24 @@ func (r *Router) enrichUpdateEventsWithPeerCache(ctx context.Context, viewerUser
|
|||
return out
|
||||
}
|
||||
|
||||
func collectEphemeralMessagePeerRefs(message domain.EphemeralMessage, userIDs, channelIDs map[int64]struct{}) {
|
||||
if message.SenderUserID != 0 {
|
||||
userIDs[message.SenderUserID] = struct{}{}
|
||||
}
|
||||
if message.ReceiverUserID != 0 {
|
||||
userIDs[message.ReceiverUserID] = struct{}{}
|
||||
}
|
||||
addDomainPeerRef(message.Peer, 0, userIDs, channelIDs)
|
||||
for _, entity := range message.Content.Entities {
|
||||
if entity.UserID != 0 {
|
||||
userIDs[entity.UserID] = struct{}{}
|
||||
}
|
||||
}
|
||||
if message.Content.Media != nil && message.Content.Media.Contact != nil && message.Content.Media.Contact.UserID != 0 {
|
||||
userIDs[message.Content.Media.Contact.UserID] = struct{}{}
|
||||
}
|
||||
}
|
||||
|
||||
type updateEventPeerRefs struct {
|
||||
userIDs map[int64]struct{}
|
||||
channelIDs map[int64]struct{}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue