From b85949fd3d1e1c2051928d8a42ed3f62f6c608b1 Mon Sep 17 00:00:00 2001 From: fluffur Date: Wed, 17 Jun 2026 14:46:18 +0500 Subject: [PATCH] feat: add chat member tag field --- chat_member.go | 2 ++ convert_member.go | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/chat_member.go b/chat_member.go index ccb6b93..8f188dd 100644 --- a/chat_member.go +++ b/chat_member.go @@ -41,6 +41,7 @@ type ChatMemberMember struct { Status ChatMemberStatus `json:"status"` User User `json:"user"` UntilDate int `json:"until_date,omitempty"` + Tag string `json:"tag,omitempty"` } // ChatMemberRestricted is a member subject to restrictions. @@ -57,6 +58,7 @@ type ChatMemberRestricted struct { CanInviteUsers bool `json:"can_invite_users,omitempty"` CanPinMessages bool `json:"can_pin_messages,omitempty"` UntilDate int `json:"until_date,omitempty"` + Tag string `json:"tag,omitempty"` } // ChatMemberLeft is a user who is not and was not a member of the chat. diff --git a/convert_member.go b/convert_member.go index b92ed28..ab3f9bd 100644 --- a/convert_member.go +++ b/convert_member.go @@ -46,9 +46,9 @@ func chatMemberFromParticipant(p tg.ChannelParticipantClass, users map[int64]*tg CustomTitle: v.Rank, } case *tg.ChannelParticipantSelf: - return &ChatMemberMember{Status: StatusMember, User: user(v.UserID)} + return &ChatMemberMember{Status: StatusMember, User: user(v.UserID), Tag: v.Rank} case *tg.ChannelParticipant: - return &ChatMemberMember{Status: StatusMember, User: user(v.UserID)} + return &ChatMemberMember{Status: StatusMember, User: user(v.UserID), Tag: v.Rank} case *tg.ChannelParticipantBanned: uid := peerUserID(v.Peer) if v.Left { @@ -78,6 +78,7 @@ func chatMemberFromParticipant(p tg.ChannelParticipantClass, users map[int64]*tg CanChangeInfo: !br.ChangeInfo, CanInviteUsers: !br.InviteUsers, CanPinMessages: !br.PinMessages, + Tag: v.Rank, UntilDate: br.UntilDate, } case *tg.ChannelParticipantLeft: