Add and use "chat_filter_count_max" option.
This commit is contained in:
parent
d87cd52b68
commit
e336819ac8
@ -5205,7 +5205,7 @@ addChatToList chat_id:int53 chat_list:ChatList = Ok;
|
||||
//@description Returns information about a chat filter by its identifier @chat_filter_id Chat filter identifier
|
||||
getChatFilter chat_filter_id:int32 = ChatFilter;
|
||||
|
||||
//@description Creates new chat filter. Returns information about the created chat filter @filter Chat filter
|
||||
//@description Creates new chat filter. Returns information about the created chat filter. User can have up to GetOption("chat_filter_count_max") chat filters, but can increase the number with Teegram Premium @filter Chat filter
|
||||
createChatFilter filter:chatFilter = ChatFilterInfo;
|
||||
|
||||
//@description Edits existing chat filter. Returns information about the edited chat filter @chat_filter_id Chat filter identifier @filter The edited chat filter
|
||||
|
@ -1964,6 +1964,12 @@ void ConfigManager::process_app_config(tl_object_ptr<telegram_api::JSONValue> &c
|
||||
shared_config.set_option_integer("reactions_uniq_max", reactions_uniq_max);
|
||||
}
|
||||
|
||||
bool is_premium = shared_config.get_option_boolean("is_premium");
|
||||
|
||||
auto chat_filter_count_max = shared_config.get_option_integer(
|
||||
is_premium ? Slice("dialog_filters_limit_premium") : Slice("dialog_filters_limit_default"), is_premium ? 20 : 10);
|
||||
shared_config.set_option_integer("chat_filter_count_max", static_cast<int32>(chat_filter_count_max));
|
||||
|
||||
shared_config.set_option_string("premium_features", implode(premium_features, ','));
|
||||
|
||||
shared_config.set_option_empty("default_ton_blockchain_config");
|
||||
|
@ -19069,7 +19069,8 @@ Result<unique_ptr<DialogFilter>> MessagesManager::create_dialog_filter(DialogFil
|
||||
void MessagesManager::create_dialog_filter(td_api::object_ptr<td_api::chatFilter> filter,
|
||||
Promise<td_api::object_ptr<td_api::chatFilterInfo>> &&promise) {
|
||||
CHECK(!td_->auth_manager_->is_bot());
|
||||
if (dialog_filters_.size() >= MAX_DIALOG_FILTERS) {
|
||||
auto max_dialog_filters = G()->shared_config().get_option_integer("chat_filter_count_max");
|
||||
if (dialog_filters_.size() >= max_dialog_filters) {
|
||||
return promise.set_error(Status::Error(400, "The maximum number of chat folders exceeded"));
|
||||
}
|
||||
if (!is_update_chat_filters_sent_) {
|
||||
|
@ -1757,7 +1757,6 @@ class MessagesManager final : public Actor {
|
||||
static constexpr size_t MAX_DESCRIPTION_LENGTH = 255; // server side limit for chat description
|
||||
static constexpr size_t MAX_DIALOG_FILTER_TITLE_LENGTH = 12; // server side limit for dialog filter title
|
||||
static constexpr int32 MAX_PRIVATE_MESSAGE_TTL = 60; // server side limit
|
||||
static constexpr int32 MAX_DIALOG_FILTERS = 10; // server side limit
|
||||
static constexpr int32 DIALOG_FILTERS_CACHE_TIME = 86400;
|
||||
|
||||
static constexpr int64 SPONSORED_DIALOG_ORDER = static_cast<int64>(2147483647) << 32;
|
||||
|
@ -111,6 +111,9 @@ OptionManager::OptionManager(Td *td, ActorShared<> parent) : td_(td), parent_(st
|
||||
if (!G()->shared_config().have_option("notification_sound_count_max")) {
|
||||
G()->shared_config().set_option_integer("notification_sound_count_max", G()->is_test_dc() ? 5 : 100);
|
||||
}
|
||||
if (!G()->shared_config().have_option("chat_filter_count_max")) {
|
||||
G()->shared_config().set_option_integer("chat_filter_count_max", G()->is_test_dc() ? 3 : 10);
|
||||
}
|
||||
G()->shared_config().set_option_integer("utc_time_offset", Clocks::tz_offset());
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user