From eb3abeff3bcb6a291de361d21cfbe93df626e1a0 Mon Sep 17 00:00:00 2001 From: shoce Date: Sat, 8 Jun 2024 04:53:36 +0530 Subject: [PATCH] TgUpdate.ChatMemberUpdated --- tgzebot.go | 38 +++++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/tgzebot.go b/tgzebot.go index b7d9941..2e4e5ff 100644 --- a/tgzebot.go +++ b/tgzebot.go @@ -230,12 +230,22 @@ type TgGetUpdatesResponse struct { Result []TgUpdate `json:"result"` } +type TgChatMemberUpdated struct { + Chat TgChat `json:"chat"` + From TgUser `json:"from"` + OldChatMember TgChatMember `json:"old_chat_member"` + NewChatMember TgChatMember `json:"new_chat_member"` + ViaJoinRequest bool `json:"via_join_request"` + ViaChatFolderInviteLink bool `json:"via_chat_folder_invite_link"` +} + type TgUpdate struct { - UpdateId int64 `json:"update_id"` - Message TgMessage `json:"message"` - EditedMessage TgMessage `json:"edited_message"` - ChannelPost TgMessage `json:"channel_post"` - EditedChannelPost TgMessage `json:"edited_channel_post"` + UpdateId int64 `json:"update_id"` + Message TgMessage `json:"message"` + EditedMessage TgMessage `json:"edited_message"` + ChannelPost TgMessage `json:"channel_post"` + EditedChannelPost TgMessage `json:"edited_channel_post"` + ChatMemberUpdated TgChatMemberUpdated `json:"my_chat_member"` } type TgGetChatResponse struct { @@ -954,6 +964,24 @@ func main() { m = u.EditedChannelPost ischannelpost = true iseditmessage = true + } else if u.ChatMemberUpdated.Chat.Id != 0 { + cmu := u.ChatMemberUpdated + report := fmt.Sprintf( + "*MyChatMemberUpdated*"+NL+ + "from: \\@%s id:%d"+NL+ + "chat: id:%d type:%s title:%s"+NL+ + "old member: \\@%s id:%d status:%s"+NL+ + "new member: \\@%s id:%d status:%s"+NL+ + "", + cmu.From.Username, cmu.From.Id, + cmu.Chat.Id, cmu.Chat.Type, cmu.Chat.Title, + cmu.OldChatMember.User.Username, cmu.OldChatMember.User.Id, cmu.OldChatMember.Status, + cmu.NewChatMember.User.Username, cmu.NewChatMember.User.Id, cmu.NewChatMember.Status, + ) + _, err = tgsendMessage(report, TgZeChatId, "MarkdownV2", 0) + if err != nil { + log("tgsendMessage: %v", err) + } } else { log("Unsupported type of update received:"+NL+"%s", respjson) _, err = tgsendMessage(fmt.Sprintf("Unsupported type of update received:"+NL+"```"+NL+"%s"+NL+"```", respjson), TgZeChatId, "MarkdownV2", 0)