rpc: fix channel pinned search for Android

(cherry picked from commit 70978db98c3af3fe72100fa6646780c7a5a13daa)
This commit is contained in:
A 2026-06-08 22:56:36 +08:00
parent b4e47c894f
commit 3642e37cfe
8 changed files with 97 additions and 16 deletions

View file

@ -378,7 +378,7 @@ Redis miss 恢复来源:
- 阶段外高级发送/转发 flags 不再返回 `NOT_IMPLEMENTED`quick reply、effect、paid、suggested post、monoforum/todo/poll/story reply 分别映射到 `SHORTCUT_INVALID``EFFECT_ID_INVALID``PAYMENT_UNSUPPORTED`/`STARS_AMOUNT_INVALID``SUGGESTED_POST_PEER_INVALID``REPLY_TO_MONOFORUM_PEER_INVALID``REPLY_MESSAGE_ID_INVALID``POLL_OPTION_INVALID``STORY_ID_INVALID`;后续接入对应模型前不伪造成功 update。
- 已实现 linked discussion/comment 基础闭环broadcast post 写入单份 source message 时同步在 linked megagroup 写一条 forwarded root messagesource message 保存 discussion ref 并在 `messageReplies``comments/channel_id/replies_pts/max_id/read_max_id``messages.getDiscussionMessage` 返回 root、`messages.getReplies` 读 linked group thread`messages.readDiscussion` 推进 linked group read watermark。
- 已实现文本转发的 channel 路径channel→channel、channel→user、user→channel目的 channel 仍按单份消息写入并生成 channel pts请求携带的目标会话 `reply_to` 会正常校验和持久化TDesktop 转发到 forum topic 时发送的 `top_msg_id` 会映射为 topic-only reply 并更新 topic top message但源消息自身 reply 不继承RPC 响应、账号级 difference/outbox 与 channel difference 都会为 `fwd_from/reply_to` 中可解析的 user/channel peer 补齐 users/chats避免 TDesktop 因 header peer 未加载而延迟 apply。
- 已实现 `messages.search(InputPeerChannel)`:支持 channel/supergroup 单份消息文本搜索、`from_id` 用户过滤、`min_date/max_date``offset_id/max_id/min_id` 与 limit cap结果附带当前 channel 与消息 sender/forward/reply 所需 users/chats。
- 已实现 `messages.search(InputPeerChannel)`:支持 channel/supergroup 单份消息文本搜索、`from_id` 用户过滤、`min_date/max_date``offset_id/max_id/min_id` 与 limit cap结果附带当前 channel 与消息 sender/forward/reply 所需 users/chats`inputMessagesFilterPinned` 按当前单置顶模型只返回 `channels.pinned_message_id` 对应消息,并只给该消息设置 TL `message.pinned`
- 已实现 `messages.searchGlobal` 的 channel/supergroup 分支TDesktop 主搜索的 Channels/Groups tab 会按当前账号 active membership 搜索单份 channel message支持 `broadcasts_only/groups_only/users_only``offset_rate+offset_peer+offset_id` seek、folder_id=0/1 下推与 limit cap=50未加入/left/kicked/view_messages banned 的频道不暴露media filter 在 media store 接入前返回空结果。
- 已实现 `messages.getMessageReadParticipants(InputPeerChannel)`:基于小 megagroup 成员读水位返回 `readParticipantDate`,含 50 人阈值、7 天过期窗口、`available_min_id` 可见性过滤与 PG 索引。
- 已实现 `messages.getMessageEditData`:私聊与 channel peer 都做 message/peer/作者或管理员编辑权限校验;当前文本-only 编辑没有媒体 caption 状态,返回 `caption=false`