diff --git a/.gitignore b/.gitignore index 282cabc..a2c10db 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,5 @@ **/.*.swp **/.DS_Store bin/ -vcpkg/ \ No newline at end of file +vcpkg/ +/.idea/ diff --git a/README.md b/README.md index 6185e84..1764cdf 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,8 @@ TDLight Telegram Bot API is 100% compatible with the official version. ### TDLib replaced with TDLight [TDLight](https://github.com/tdlight-team/tdlight) provides constant memory usage, unlike tdlib that must be restarted to reduce the heap size. +### Command `optimize_memory` +Calling `optimize_memory` will remove old data from the in-memory cache and give the freed memory back to the os ----- diff --git a/telegram-bot-api/Client.cpp b/telegram-bot-api/Client.cpp index 83f88ae..490d9d9 100644 --- a/telegram-bot-api/Client.cpp +++ b/telegram-bot-api/Client.cpp @@ -227,6 +227,7 @@ bool Client::init_methods() { methods_.emplace("getchatadministrators", &Client::process_get_chat_administrators_query); methods_.emplace("getchatmembercount", &Client::process_get_chat_member_count_query); methods_.emplace("getchatmemberscount", &Client::process_get_chat_member_count_query); + methods_.emplace("optimizememory", &Client::process_optimize_memory_query); methods_.emplace("leavechat", &Client::process_leave_chat_query); methods_.emplace("promotechatmember", &Client::process_promote_chat_member_query); methods_.emplace("setchatadministratorcustomtitle", &Client::process_set_chat_administrator_custom_title_query); @@ -3782,14 +3783,44 @@ void Client::on_update_authorization_state() { send_request(make_object("disable_time_adjustment_protection", make_object(true)), std::make_unique()); + send_request(make_object("disable_minithumbnails", + make_object(true)), + std::make_unique()); + send_request(make_object("disable_document_filenames", + make_object(true)), + std::make_unique()); + send_request(make_object("disable_notifications", + make_object(true)), + std::make_unique()); + send_request(make_object("ignore_update_chat_last_message", + make_object(true)), + std::make_unique()); + send_request(make_object("ignore_update_chat_read_inbox", + make_object(true)), + std::make_unique()); + send_request(make_object("ignore_update_user_chat_action", + make_object(true)), + std::make_unique()); + send_request(make_object("ignore_server_deletes_and_reads", + make_object(true)), + std::make_unique()); + send_request(make_object("delete_chat_reference_after_seconds", + make_object(3600)), + std::make_unique()); + send_request(make_object("delete_user_reference_after_seconds", + make_object(3600)), + std::make_unique()); + send_request(make_object("delete_file_reference_after_seconds", + make_object(3600)), + std::make_unique()); auto parameters = make_object(); parameters->use_test_dc_ = is_test_dc_; parameters->database_directory_ = dir_; - //parameters->use_file_database_ = false; - //parameters->use_chat_info_database_ = false; - //parameters->use_secret_chats_ = false; + parameters->use_file_database_ = false; + parameters->use_chat_info_database_ = false; + parameters->use_secret_chats_ = false; parameters->use_message_database_ = USE_MESSAGE_DATABASE; parameters->api_id_ = parameters_->api_id_; parameters->api_hash_ = parameters_->api_hash_; @@ -6872,6 +6903,11 @@ td::Status Client::process_get_chat_member_count_query(PromisedQueryPtr &query) return Status::OK(); } +td::Status Client::process_optimize_memory_query(PromisedQueryPtr &query) { + send_request(make_object(), std::make_unique(std::move(query))); + return Status::OK(); +} + td::Status Client::process_leave_chat_query(PromisedQueryPtr &query) { auto chat_id = query->arg("chat_id"); diff --git a/telegram-bot-api/Client.h b/telegram-bot-api/Client.h index 2abf934..174efca 100644 --- a/telegram-bot-api/Client.h +++ b/telegram-bot-api/Client.h @@ -453,6 +453,7 @@ class Client : public WebhookActor::Callback { Status process_get_chat_member_query(PromisedQueryPtr &query); Status process_get_chat_administrators_query(PromisedQueryPtr &query); Status process_get_chat_member_count_query(PromisedQueryPtr &query); + Status process_optimize_memory_query(PromisedQueryPtr &query); Status process_leave_chat_query(PromisedQueryPtr &query); Status process_promote_chat_member_query(PromisedQueryPtr &query); Status process_set_chat_administrator_custom_title_query(PromisedQueryPtr &query);