Rename promoted chat to sponsored.

GitOrigin-RevId: e385126253199a46b55fba7d350e0c115a8c333e
This commit is contained in:
levlam 2018-06-14 00:07:24 +03:00
parent fe203b3d5c
commit 3a8c0f131e
4 changed files with 54 additions and 45 deletions

View File

@ -9620,32 +9620,40 @@ void MessagesManager::start_up() {
} }
LOG(INFO) << "Load last_database_server_dialog_date_ = " << last_database_server_dialog_date_; LOG(INFO) << "Load last_database_server_dialog_date_ = " << last_database_server_dialog_date_;
auto promoted_dialog_id_string = G()->td_db()->get_binlog_pmc()->get("promoted_dialog_id"); auto sponsored_dialog_id_string = G()->td_db()->get_binlog_pmc()->get("sponsored_dialog_id");
if (!promoted_dialog_id_string.empty()) { if (sponsored_dialog_id_string.empty()) {
auto r_dialog_id = to_integer_safe<int64>(promoted_dialog_id_string); sponsored_dialog_id_string = G()->td_db()->get_binlog_pmc()->get("promoted_dialog_id");
if (!sponsored_dialog_id_string.empty()) {
G()->td_db()->get_binlog_pmc()->erase("promoted_dialog_id");
G()->td_db()->get_binlog_pmc()->set("sponsored_dialog_id", sponsored_dialog_id_string);
}
}
if (!sponsored_dialog_id_string.empty()) {
auto r_dialog_id = to_integer_safe<int64>(sponsored_dialog_id_string);
if (r_dialog_id.is_error()) { if (r_dialog_id.is_error()) {
LOG(ERROR) << "Can't parse " << promoted_dialog_id_string; LOG(ERROR) << "Can't parse " << sponsored_dialog_id_string;
} else { } else {
promoted_dialog_id_ = DialogId(r_dialog_id.ok()); sponsored_dialog_id_ = DialogId(r_dialog_id.ok());
if (!promoted_dialog_id_.is_valid()) { if (!sponsored_dialog_id_.is_valid()) {
LOG(ERROR) << "Have invalid chat ID " << promoted_dialog_id_string; LOG(ERROR) << "Have invalid chat ID " << sponsored_dialog_id_string;
promoted_dialog_id_ = DialogId(); sponsored_dialog_id_ = DialogId();
} else { } else {
Dialog *d = get_dialog_force(promoted_dialog_id_); Dialog *d = get_dialog_force(sponsored_dialog_id_);
if (d == nullptr) { if (d == nullptr) {
LOG(ERROR) << "Can't load " << promoted_dialog_id_; LOG(ERROR) << "Can't load " << sponsored_dialog_id_;
promoted_dialog_id_ = DialogId(); sponsored_dialog_id_ = DialogId();
} }
} }
} }
} }
if (promoted_dialog_id_.is_valid()) { if (sponsored_dialog_id_.is_valid()) {
send_update_promoted_chat(); send_update_sponsored_chat();
} }
} else { } else {
G()->td_db()->get_binlog_pmc()->erase("last_server_dialog_date"); G()->td_db()->get_binlog_pmc()->erase("last_server_dialog_date");
G()->td_db()->get_binlog_pmc()->erase("unread_message_count"); G()->td_db()->get_binlog_pmc()->erase("unread_message_count");
G()->td_db()->get_binlog_pmc()->erase("promoted_dialog_id"); G()->td_db()->get_binlog_pmc()->erase("promoted_dialog_id");
G()->td_db()->get_binlog_pmc()->erase("sponsored_dialog_id");
} }
if (G()->parameters().use_message_db) { if (G()->parameters().use_message_db) {
@ -19165,10 +19173,10 @@ void MessagesManager::send_update_chat_unread_mention_count(const Dialog *d) {
} }
} }
void MessagesManager::send_update_promoted_chat() const { void MessagesManager::send_update_sponsored_chat() const {
if (!td_->auth_manager_->is_bot()) { if (!td_->auth_manager_->is_bot()) {
LOG(INFO) << "Update promoted chat to " << promoted_dialog_id_; LOG(INFO) << "Update sponsored chat to " << sponsored_dialog_id_;
send_closure(G()->td(), &Td::send_update, make_tl_object<td_api::updatePromotedChat>(promoted_dialog_id_.get())); send_closure(G()->td(), &Td::send_update, make_tl_object<td_api::updatePromotedChat>(sponsored_dialog_id_.get()));
} }
} }
@ -24354,13 +24362,13 @@ void MessagesManager::update_dialog_pos(Dialog *d, bool remove_from_dialog_list,
} }
} }
} }
if (d->dialog_id != promoted_dialog_id_ && new_order == DEFAULT_ORDER && !d->is_empty) { if (d->dialog_id != sponsored_dialog_id_ && new_order == DEFAULT_ORDER && !d->is_empty) {
// if there is no known messages in the dialog, just leave it where it is // if there is no known messages in the dialog, just leave it where it is
LOG(INFO) << "There is no known messages in the dialog"; LOG(INFO) << "There is no known messages in the dialog";
return; return;
} }
} }
if (new_order == DEFAULT_ORDER && d->dialog_id == promoted_dialog_id_) { if (new_order == DEFAULT_ORDER && d->dialog_id == sponsored_dialog_id_) {
new_order = static_cast<int64>(2147483647) << 32; new_order = static_cast<int64>(2147483647) << 32;
} }
@ -25971,51 +25979,51 @@ void MessagesManager::get_payment_receipt(FullMessageId full_message_id,
td::get_payment_receipt(message_id.get_server_message_id(), std::move(promise)); td::get_payment_receipt(message_id.get_server_message_id(), std::move(promise));
} }
void MessagesManager::on_get_promoted_dialog_id(tl_object_ptr<telegram_api::Peer> peer, void MessagesManager::on_get_sponsored_dialog_id(tl_object_ptr<telegram_api::Peer> peer,
vector<tl_object_ptr<telegram_api::User>> users, vector<tl_object_ptr<telegram_api::User>> users,
vector<tl_object_ptr<telegram_api::Chat>> chats) { vector<tl_object_ptr<telegram_api::Chat>> chats) {
if (peer == nullptr) { if (peer == nullptr) {
set_promoted_dialog_id(DialogId()); set_sponsored_dialog_id(DialogId());
return; return;
} }
td_->contacts_manager_->on_get_users(std::move(users)); td_->contacts_manager_->on_get_users(std::move(users));
td_->contacts_manager_->on_get_chats(std::move(chats)); td_->contacts_manager_->on_get_chats(std::move(chats));
set_promoted_dialog_id(DialogId(peer)); set_sponsored_dialog_id(DialogId(peer));
} }
void MessagesManager::set_promoted_dialog_id(DialogId dialog_id) { void MessagesManager::set_sponsored_dialog_id(DialogId dialog_id) {
if (promoted_dialog_id_ == dialog_id) { if (sponsored_dialog_id_ == dialog_id) {
return; return;
} }
if (promoted_dialog_id_.is_valid()) { if (sponsored_dialog_id_.is_valid()) {
Dialog *d = get_dialog(promoted_dialog_id_); Dialog *d = get_dialog(sponsored_dialog_id_);
CHECK(d != nullptr); CHECK(d != nullptr);
promoted_dialog_id_ = DialogId(); sponsored_dialog_id_ = DialogId();
update_dialog_pos(d, false, "delete_promoted_dialog_id"); update_dialog_pos(d, false, "delete_sponsored_dialog_id");
} }
if (dialog_id.is_valid()) { if (dialog_id.is_valid()) {
force_create_dialog(dialog_id, "set_promoted_dialog_id"); force_create_dialog(dialog_id, "set_sponsored_dialog_id");
Dialog *d = get_dialog(dialog_id); Dialog *d = get_dialog(dialog_id);
CHECK(d != nullptr); CHECK(d != nullptr);
promoted_dialog_id_ = dialog_id; sponsored_dialog_id_ = dialog_id;
update_dialog_pos(d, false, "set_promoted_dialog_id"); update_dialog_pos(d, false, "set_sponsored_dialog_id");
} }
if (G()->parameters().use_message_db) { if (G()->parameters().use_message_db) {
if (promoted_dialog_id_.is_valid()) { if (sponsored_dialog_id_.is_valid()) {
G()->td_db()->get_binlog_pmc()->set("promoted_dialog_id", to_string(promoted_dialog_id_.get())); G()->td_db()->get_binlog_pmc()->set("sponsored_dialog_id", to_string(sponsored_dialog_id_.get()));
} else { } else {
G()->td_db()->get_binlog_pmc()->erase("promoted_dialog_id"); G()->td_db()->get_binlog_pmc()->erase("sponsored_dialog_id");
} }
LOG(INFO) << "Save promoted " << promoted_dialog_id_; LOG(INFO) << "Save sponsored " << sponsored_dialog_id_;
} }
send_update_promoted_chat(); send_update_sponsored_chat();
} }
} // namespace td } // namespace td

View File

@ -1401,7 +1401,7 @@ class MessagesManager : public Actor {
void on_get_dialog_query_finished(DialogId dialog_id, Status &&status); void on_get_dialog_query_finished(DialogId dialog_id, Status &&status);
void on_get_promoted_dialog_id(tl_object_ptr<telegram_api::Peer> peer, void on_get_sponsored_dialog_id(tl_object_ptr<telegram_api::Peer> peer,
vector<tl_object_ptr<telegram_api::User>> users, vector<tl_object_ptr<telegram_api::User>> users,
vector<tl_object_ptr<telegram_api::Chat>> chats); vector<tl_object_ptr<telegram_api::Chat>> chats);
@ -2229,7 +2229,7 @@ class MessagesManager : public Actor {
void send_update_chat_unread_mention_count(const Dialog *d); void send_update_chat_unread_mention_count(const Dialog *d);
void send_update_promoted_chat() const; void send_update_sponsored_chat() const;
tl_object_ptr<td_api::message> get_message_object(DialogId dialog_id, const Message *message) const; tl_object_ptr<td_api::message> get_message_object(DialogId dialog_id, const Message *message) const;
@ -2612,7 +2612,7 @@ class MessagesManager : public Actor {
void on_upload_dialog_photo(FileId file_id, tl_object_ptr<telegram_api::InputFile> input_file); void on_upload_dialog_photo(FileId file_id, tl_object_ptr<telegram_api::InputFile> input_file);
void on_upload_dialog_photo_error(FileId file_id, Status status); void on_upload_dialog_photo_error(FileId file_id, Status status);
void set_promoted_dialog_id(DialogId dialog_id); void set_sponsored_dialog_id(DialogId dialog_id);
static uint64 get_sequence_dispatcher_id(DialogId dialog_id, int32 message_content_type); static uint64 get_sequence_dispatcher_id(DialogId dialog_id, int32 message_content_type);
@ -2904,7 +2904,7 @@ class MessagesManager : public Actor {
std::unordered_map<DialogId, NetQueryRef, DialogIdHash> set_typing_query_; std::unordered_map<DialogId, NetQueryRef, DialogIdHash> set_typing_query_;
DialogId promoted_dialog_id_; DialogId sponsored_dialog_id_;
Td *td_; Td *td_;
ActorShared<> parent_; ActorShared<> parent_;

View File

@ -306,6 +306,7 @@ Status TdDb::init_sqlite(int32 scheduler_id, const TdParameters &parameters, DbK
binlog_pmc.erase("unread_message_count"); binlog_pmc.erase("unread_message_count");
binlog_pmc.erase("last_server_dialog_date"); binlog_pmc.erase("last_server_dialog_date");
binlog_pmc.erase("promoted_dialog_id"); binlog_pmc.erase("promoted_dialog_id");
binlog_pmc.erase("sponsored_dialog_id");
} }
if (db_version == 0) { if (db_version == 0) {
binlog_pmc.erase_by_prefix("top_dialogs"); binlog_pmc.erase_by_prefix("top_dialogs");

View File

@ -1261,14 +1261,14 @@ void ConnectionCreator::on_get_proxy_info(telegram_api::object_ptr<telegram_api:
case telegram_api::help_proxyDataEmpty::ID: { case telegram_api::help_proxyDataEmpty::ID: {
auto proxy = telegram_api::move_object_as<telegram_api::help_proxyDataEmpty>(proxy_data_ptr); auto proxy = telegram_api::move_object_as<telegram_api::help_proxyDataEmpty>(proxy_data_ptr);
expires = proxy->expires_; expires = proxy->expires_;
send_closure(G()->messages_manager(), &MessagesManager::on_get_promoted_dialog_id, nullptr, send_closure(G()->messages_manager(), &MessagesManager::on_get_sponsored_dialog_id, nullptr,
vector<tl_object_ptr<telegram_api::User>>(), vector<tl_object_ptr<telegram_api::Chat>>()); vector<tl_object_ptr<telegram_api::User>>(), vector<tl_object_ptr<telegram_api::Chat>>());
break; break;
} }
case telegram_api::help_proxyDataPromo::ID: { case telegram_api::help_proxyDataPromo::ID: {
auto proxy = telegram_api::move_object_as<telegram_api::help_proxyDataPromo>(proxy_data_ptr); auto proxy = telegram_api::move_object_as<telegram_api::help_proxyDataPromo>(proxy_data_ptr);
expires = proxy->expires_; expires = proxy->expires_;
send_closure(G()->messages_manager(), &MessagesManager::on_get_promoted_dialog_id, std::move(proxy->peer_), send_closure(G()->messages_manager(), &MessagesManager::on_get_sponsored_dialog_id, std::move(proxy->peer_),
std::move(proxy->users_), std::move(proxy->chats_)); std::move(proxy->users_), std::move(proxy->chats_));
break; break;
} }