aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorlevlam <levlam@telegram.org>2026-07-10 23:02:29 +0300
committerlevlam <levlam@telegram.org>2026-07-10 23:02:29 +0300
commit9b9bb4ceb1cd6a5159cb2329fc016b4d2cd8221f (patch)
tree05f71a81c9ea490c8bb0e9d13edd70b9f26bdbce
parent40a79c8367eaa64385b0a9a05d4949edd181bcba (diff)
Add Message.community_chat_added/removed.
-rw-r--r--telegram-bot-api/Client.cpp40
-rw-r--r--telegram-bot-api/Client.h2
2 files changed, 39 insertions, 3 deletions
diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp
index d7ed0d0..66759f7 100644
--- a/telegram-bot-api/Client.cpp
+++ b/telegram-bot-api/Client.cpp
@@ -461,6 +461,23 @@ class Client::JsonDatedFiles final : public td::Jsonable {
const Client *client_;
};
+class Client::JsonCommunity final : public td::Jsonable {
+ public:
+ JsonCommunity(int64 community_id, const Client *client) : community_id_(community_id), client_(client) {
+ }
+ void store(td::JsonValueScope *scope) const {
+ auto object = scope->enter_object();
+ auto community_info = client_->get_community_info(community_id_);
+ CHECK(community_info != nullptr);
+ object("id", community_id_);
+ object("name", community_info->name);
+ }
+
+ private:
+ int64 community_id_;
+ const Client *client_;
+};
+
class Client::JsonUser final : public td::Jsonable {
public:
JsonUser(int64 user_id, const Client *client, bool full_bot_info = false)
@@ -3902,6 +3919,21 @@ class Client::JsonManagedBotUpdated final : public td::Jsonable {
const Client *client_;
};
+class Client::JsonCommunityChatAdded final : public td::Jsonable {
+ public:
+ JsonCommunityChatAdded(const td_api::messageChatAddedToCommunity *chat_added_to_community, const Client *client)
+ : chat_added_to_community_(chat_added_to_community), client_(client) {
+ }
+ void store(td::JsonValueScope *scope) const {
+ auto object = scope->enter_object();
+ object("community", JsonCommunity(chat_added_to_community_->community_id_, client_));
+ }
+
+ private:
+ const td_api::messageChatAddedToCommunity *chat_added_to_community_;
+ const Client *client_;
+};
+
class Client::JsonGiveawayCreated final : public td::Jsonable {
public:
explicit JsonGiveawayCreated(const td_api::messageGiveawayCreated *giveaway_created)
@@ -5289,9 +5321,13 @@ void Client::JsonMessage::store(td::JsonValueScope *scope) const {
object("rich_message", JsonRichMessage(content->message_.get(), client_));
break;
}
- case td_api::messageChatAddedToCommunity::ID:
+ case td_api::messageChatAddedToCommunity::ID: {
+ auto content = static_cast<const td_api::messageChatAddedToCommunity *>(message_->content.get());
+ object("community_chat_added", JsonCommunityChatAdded(content, client_));
break;
+ }
case td_api::messageChatRemovedFromCommunity::ID:
+ object("community_chat_removed", JsonEmptyObject());
break;
default:
UNREACHABLE();
@@ -18561,8 +18597,6 @@ bool Client::need_skip_update_message(int64 chat_id, const MessageInfo *message_
case td_api::messageUpgradedGiftPurchaseOfferRejected::ID:
case td_api::messageChatHasProtectedContentToggled::ID:
case td_api::messageChatHasProtectedContentDisableRequested::ID:
- case td_api::messageChatAddedToCommunity::ID:
- case td_api::messageChatRemovedFromCommunity::ID:
return true;
default:
break;
diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h
index e0b00ad..7825fe3 100644
--- a/telegram-bot-api/Client.h
+++ b/telegram-bot-api/Client.h
@@ -90,6 +90,7 @@ class Client final : public WebhookActor::Callback {
class JsonFile;
class JsonDatedFile;
class JsonDatedFiles;
+ class JsonCommunity;
class JsonUser;
class JsonUsers;
class JsonReactionType;
@@ -245,6 +246,7 @@ class Client final : public WebhookActor::Callback {
class JsonChatShared;
class JsonManagedBotCreated;
class JsonManagedBotUpdated;
+ class JsonCommunityChatAdded;
class JsonGiveawayCreated;
class JsonGiveaway;
class JsonGiveawayWinners;