feat(messages): sync saved message tags
This commit is contained in:
parent
a785ae7491
commit
6b3eba6c5d
42 changed files with 1581 additions and 551 deletions
|
|
@ -802,8 +802,11 @@ type ChannelMessagePeerReaction struct {
|
|||
// ChannelMessageReactions is the read model carried by channel messages and reaction updates.
|
||||
type ChannelMessageReactions struct {
|
||||
CanSeeList bool
|
||||
Results []ChannelMessageReactionCount
|
||||
Recent []ChannelMessagePeerReaction
|
||||
// AsTags marks reactions on Saved Messages as private message tags.
|
||||
// It is never set for ordinary private/channel reactions.
|
||||
AsTags bool
|
||||
Results []ChannelMessageReactionCount
|
||||
Recent []ChannelMessagePeerReaction
|
||||
// Paid 是付费 reaction(Stars)聚合(nil = 无);读路径从 channel_message_paid_reactions
|
||||
// 填充、tg 转换注入 ReactionPaid 计数 + top reactors。与普通 reaction 分表存储。
|
||||
Paid *ChannelMessagePaidReactions
|
||||
|
|
@ -923,6 +926,14 @@ type SavedReactionTag struct {
|
|||
Count int
|
||||
}
|
||||
|
||||
// SavedReactionTagsRequest lists account-level Saved Messages tags. SavedPeer
|
||||
// is zero for the global list and non-zero for one Saved Messages sub-dialog.
|
||||
type SavedReactionTagsRequest struct {
|
||||
UserID int64
|
||||
SavedPeer Peer
|
||||
Limit int
|
||||
}
|
||||
|
||||
// ChannelDiscussionRef links a broadcast post to its discussion megagroup root message.
|
||||
type ChannelDiscussionRef struct {
|
||||
ChannelID int64
|
||||
|
|
|
|||
|
|
@ -232,6 +232,8 @@ type MessageFilter struct {
|
|||
Query string
|
||||
OffsetID int
|
||||
OffsetDate int
|
||||
MinDate int
|
||||
MaxDate int
|
||||
AddOffset int
|
||||
Limit int
|
||||
MaxID int
|
||||
|
|
@ -245,6 +247,9 @@ type MessageFilter struct {
|
|||
// SavedPeer 非零时仅返回 self-chat 中该 saved 子会话的消息
|
||||
// (messages.getSavedHistory);Peer 必须同时是 self。
|
||||
SavedPeer Peer
|
||||
// SavedReactions 非空时仅返回至少带其中一个 tag 的 Saved Messages。
|
||||
// 仅 messages.search(peer=self) 使用;普通私聊 reaction 不参与匹配。
|
||||
SavedReactions []MessageReaction
|
||||
// PeerIDs restricts a global private search to these user peers. Empty is a
|
||||
// valid restricted set, so RestrictPeerIDs carries presence separately.
|
||||
PeerIDs []int64
|
||||
|
|
|
|||
|
|
@ -18,11 +18,10 @@ const (
|
|||
// UpdateEventWebPage 映射 updateWebPage:异步解析完成后把消息里的 pending 链接预览
|
||||
// 占位就地替换为已解析卡片。携带账号 pts(非 LacksWirePts),消息快照经 box JOIN 重建,
|
||||
// 故 difference/dispatch 与 edit_message 同走通用消息事件路径,仅 tg 投影构造器不同。
|
||||
UpdateEventWebPage UpdateEventType = "web_page"
|
||||
UpdateEventMessageReactions UpdateEventType = "message_reactions"
|
||||
UpdateEventWebPage UpdateEventType = "web_page"
|
||||
// UpdateEventMessagePoll 映射 updateMessagePoll(投票/关闭后 poll 状态变化;
|
||||
// Message 为该 owner 视角消息,media 在 difference 重放时按 viewer 重新 enrich)。
|
||||
// 与 reaction 同款:占账号 pts 但 TL 构造器无 pts,见 LacksWirePts。
|
||||
// 当前历史实现仍将 poll 作为待复核的 LacksWirePts 事件。
|
||||
UpdateEventMessagePoll UpdateEventType = "message_poll"
|
||||
UpdateEventContactsReset UpdateEventType = "contacts_reset"
|
||||
UpdateEventDialogPinned UpdateEventType = "dialog_pinned"
|
||||
|
|
@ -126,8 +125,7 @@ type UpdateEvent struct {
|
|||
// 下一条真正带 pts 的更新会被判为空洞。
|
||||
func (e UpdateEvent) LacksWirePts() bool {
|
||||
switch e.Type {
|
||||
case UpdateEventMessageReactions,
|
||||
UpdateEventMessagePoll,
|
||||
case UpdateEventMessagePoll,
|
||||
UpdateEventDraftMessage,
|
||||
UpdateEventChannelState,
|
||||
UpdateEventContactsReset,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue