fix: sync Android channel compatibility fixes

This commit is contained in:
A 2026-07-04 14:17:49 +08:00
parent b1f74185f0
commit 7fa721a25e
16 changed files with 566 additions and 32 deletions

View file

@ -363,6 +363,21 @@ func (r *Router) registerMessages(d *tg.ServerDispatcher) {
if isLegacyInputPeerChat(req.Peer) {
return &tg.MessagesMessages{}, nil
}
if messagesSearchFilterChatPhotos(req.Filter) {
view, err := r.resolveInputPeerChannelView(ctx, userID, req.Peer, filter.Peer.ID)
if err != nil {
return nil, channelInvalidErr(err)
}
out := &tg.MessagesChannelMessages{
Pts: view.Channel.Pts,
Count: 0,
Messages: []tg.MessageClass{},
Chats: []tg.ChatClass{tgChannelChatForView(userID, view)},
Users: []tg.UserClass{},
}
r.applyStoryMaxIDsToMessages(ctx, userID, out)
return out, nil
}
if searchFilterNeedsMediaStore(req.Filter) {
if mediaSearchCountOnlyRequest(req) {
view, err := r.resolveInputPeerChannelView(ctx, userID, req.Peer, filter.Peer.ID)
@ -445,6 +460,12 @@ func (r *Router) registerMessages(d *tg.ServerDispatcher) {
}
return r.tgMessagesMessages(ctx, userID, r.enrichMessageList(ctx, userID, list)), nil
}
if messagesSearchFilterChatPhotos(req.Filter) {
if _, err := r.checkedDomainPeerFromInputPeer(ctx, userID, req.Peer); err != nil {
return nil, err
}
return r.tgMessagesMessages(ctx, userID, domain.MessageList{}), nil
}
if r.deps.Messages == nil {
return messagesNotModifiedOrEmpty(req.Hash), nil
}