diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index f591a43..2da91d1 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -6254,6 +6254,18 @@ class Client::TdOnCheckForumTopicCallback final : public TdQueryCallback { auto forum_topic = move_object_as(result); CHECK(forum_topic->info_->chat_id_ == chat_id_); CHECK(forum_topic->info_->forum_topic_id_ == forum_topic_id_); + auto message_id = as_tdlib_message_id(forum_topic_id_); + if (client_->get_chat_type(chat_id_) == ChatType::Supergroup && + client_->get_message(chat_id_, message_id, false) == nullptr) { + auto on_check_message = [forum_topic_id = forum_topic_id_, on_success = std::move(on_success_)]( + int64 chat_id, int64 message_id, PromisedQueryPtr query) mutable { + on_success(chat_id, make_object(forum_topic_id), std::move(query)); + }; + return client_->send_request(make_object(chat_id_, message_id), + td::make_unique>( + client_, chat_id_, message_id, true, "top forum topic message", + std::move(query_), std::move(on_check_message))); + } on_success_(chat_id_, make_object(forum_topic_id_), std::move(query_)); } diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h index 5568296..5b8ce84 100644 --- a/telegram-bot-api/Client.h +++ b/telegram-bot-api/Client.h @@ -1214,8 +1214,11 @@ class Client final : public WebhookActor::Callback { }; MessageFullId add_message(object_ptr &&message, bool force_update_content = false); + void init_message(MessageInfo *message_info, object_ptr &&message, bool force_update_content); + const MessageInfo *get_message(int64 chat_id, int64 message_id, bool force_cache) const; + MessageInfo *get_message_editable(int64 chat_id, int64 message_id); td::unique_ptr create_business_message(td::string business_connection_id,