Unify entity variable names.

This commit is contained in:
levlam 2021-12-28 18:50:11 +03:00
parent 99ac6428e9
commit 29e8df5113

View File

@ -3152,91 +3152,91 @@ Result<vector<MessageEntity>> get_message_entities(const ContactsManager *contac
bool allow_all) { bool allow_all) {
vector<MessageEntity> entities; vector<MessageEntity> entities;
entities.reserve(input_entities.size()); entities.reserve(input_entities.size());
for (auto &entity : input_entities) { for (auto &input_entity : input_entities) {
if (entity == nullptr || entity->type_ == nullptr) { if (input_entity == nullptr || input_entity->type_ == nullptr) {
continue; continue;
} }
switch (entity->type_->get_id()) { auto offset = input_entity->offset_;
auto length = input_entity->length_;
switch (input_entity->type_->get_id()) {
case td_api::textEntityTypeMention::ID: case td_api::textEntityTypeMention::ID:
entities.emplace_back(MessageEntity::Type::Mention, entity->offset_, entity->length_); entities.emplace_back(MessageEntity::Type::Mention, offset, length);
break; break;
case td_api::textEntityTypeHashtag::ID: case td_api::textEntityTypeHashtag::ID:
entities.emplace_back(MessageEntity::Type::Hashtag, entity->offset_, entity->length_); entities.emplace_back(MessageEntity::Type::Hashtag, offset, length);
break; break;
case td_api::textEntityTypeBotCommand::ID: case td_api::textEntityTypeBotCommand::ID:
entities.emplace_back(MessageEntity::Type::BotCommand, entity->offset_, entity->length_); entities.emplace_back(MessageEntity::Type::BotCommand, offset, length);
break; break;
case td_api::textEntityTypeUrl::ID: case td_api::textEntityTypeUrl::ID:
entities.emplace_back(MessageEntity::Type::Url, entity->offset_, entity->length_); entities.emplace_back(MessageEntity::Type::Url, offset, length);
break; break;
case td_api::textEntityTypeEmailAddress::ID: case td_api::textEntityTypeEmailAddress::ID:
entities.emplace_back(MessageEntity::Type::EmailAddress, entity->offset_, entity->length_); entities.emplace_back(MessageEntity::Type::EmailAddress, offset, length);
break; break;
case td_api::textEntityTypeCashtag::ID: case td_api::textEntityTypeCashtag::ID:
entities.emplace_back(MessageEntity::Type::Cashtag, entity->offset_, entity->length_); entities.emplace_back(MessageEntity::Type::Cashtag, offset, length);
break; break;
case td_api::textEntityTypePhoneNumber::ID: case td_api::textEntityTypePhoneNumber::ID:
entities.emplace_back(MessageEntity::Type::PhoneNumber, entity->offset_, entity->length_); entities.emplace_back(MessageEntity::Type::PhoneNumber, offset, length);
break; break;
case td_api::textEntityTypeBankCardNumber::ID: case td_api::textEntityTypeBankCardNumber::ID:
entities.emplace_back(MessageEntity::Type::BankCardNumber, entity->offset_, entity->length_); entities.emplace_back(MessageEntity::Type::BankCardNumber, offset, length);
break; break;
case td_api::textEntityTypeBold::ID: case td_api::textEntityTypeBold::ID:
entities.emplace_back(MessageEntity::Type::Bold, entity->offset_, entity->length_); entities.emplace_back(MessageEntity::Type::Bold, offset, length);
break; break;
case td_api::textEntityTypeItalic::ID: case td_api::textEntityTypeItalic::ID:
entities.emplace_back(MessageEntity::Type::Italic, entity->offset_, entity->length_); entities.emplace_back(MessageEntity::Type::Italic, offset, length);
break; break;
case td_api::textEntityTypeUnderline::ID: case td_api::textEntityTypeUnderline::ID:
entities.emplace_back(MessageEntity::Type::Underline, entity->offset_, entity->length_); entities.emplace_back(MessageEntity::Type::Underline, offset, length);
break; break;
case td_api::textEntityTypeStrikethrough::ID: case td_api::textEntityTypeStrikethrough::ID:
entities.emplace_back(MessageEntity::Type::Strikethrough, entity->offset_, entity->length_); entities.emplace_back(MessageEntity::Type::Strikethrough, offset, length);
break; break;
case td_api::textEntityTypeCode::ID: case td_api::textEntityTypeCode::ID:
entities.emplace_back(MessageEntity::Type::Code, entity->offset_, entity->length_); entities.emplace_back(MessageEntity::Type::Code, offset, length);
break; break;
case td_api::textEntityTypePre::ID: case td_api::textEntityTypePre::ID:
entities.emplace_back(MessageEntity::Type::Pre, entity->offset_, entity->length_); entities.emplace_back(MessageEntity::Type::Pre, offset, length);
break; break;
case td_api::textEntityTypePreCode::ID: { case td_api::textEntityTypePreCode::ID: {
auto entity_pre_code = static_cast<td_api::textEntityTypePreCode *>(entity->type_.get()); auto entity = static_cast<td_api::textEntityTypePreCode *>(input_entity->type_.get());
if (!clean_input_string(entity_pre_code->language_)) { if (!clean_input_string(entity->language_)) {
return Status::Error(400, "MessageEntityPreCode.language must be encoded in UTF-8"); return Status::Error(400, "MessageEntityPreCode.language must be encoded in UTF-8");
} }
entities.emplace_back(MessageEntity::Type::PreCode, entity->offset_, entity->length_, entities.emplace_back(MessageEntity::Type::PreCode, offset, length, entity->language_);
entity_pre_code->language_);
break; break;
} }
case td_api::textEntityTypeTextUrl::ID: { case td_api::textEntityTypeTextUrl::ID: {
auto entity_text_url = static_cast<td_api::textEntityTypeTextUrl *>(entity->type_.get()); auto entity = static_cast<td_api::textEntityTypeTextUrl *>(input_entity->type_.get());
if (!clean_input_string(entity_text_url->url_)) { if (!clean_input_string(entity->url_)) {
return Status::Error(400, "MessageEntityTextUrl.url must be encoded in UTF-8"); return Status::Error(400, "MessageEntityTextUrl.url must be encoded in UTF-8");
} }
auto r_url = LinkManager::check_link(entity_text_url->url_); auto r_url = LinkManager::check_link(entity->url_);
if (r_url.is_error()) { if (r_url.is_error()) {
return Status::Error(400, PSTRING() << "Wrong message entity: " << r_url.error().message()); return Status::Error(400, PSTRING() << "Wrong message input_entity: " << r_url.error().message());
} }
entities.emplace_back(MessageEntity::Type::TextUrl, entity->offset_, entity->length_, r_url.move_as_ok()); entities.emplace_back(MessageEntity::Type::TextUrl, offset, length, r_url.move_as_ok());
break; break;
} }
case td_api::textEntityTypeMentionName::ID: { case td_api::textEntityTypeMentionName::ID: {
auto entity_mention_name = static_cast<td_api::textEntityTypeMentionName *>(entity->type_.get()); auto entity = static_cast<td_api::textEntityTypeMentionName *>(input_entity->type_.get());
UserId user_id(entity_mention_name->user_id_); UserId user_id(entity->user_id_);
if (contacts_manager != nullptr && !contacts_manager->have_input_user(user_id)) { if (contacts_manager != nullptr && !contacts_manager->have_input_user(user_id)) {
return Status::Error(400, "Have no access to the user"); return Status::Error(400, "Have no access to the user");
} }
entities.emplace_back(entity->offset_, entity->length_, user_id); entities.emplace_back(offset, length, user_id);
break; break;
} }
case td_api::textEntityTypeMediaTimestamp::ID: { case td_api::textEntityTypeMediaTimestamp::ID: {
auto entity_media_timestamp = static_cast<td_api::textEntityTypeMediaTimestamp *>(entity->type_.get()); auto entity = static_cast<td_api::textEntityTypeMediaTimestamp *>(input_entity->type_.get());
if (entity_media_timestamp->media_timestamp_ < 0) { if (entity->media_timestamp_ < 0) {
return Status::Error(400, "Invalid media timestamp specified"); return Status::Error(400, "Invalid media timestamp specified");
} }
entities.emplace_back(MessageEntity::Type::MediaTimestamp, entity->offset_, entity->length_, entities.emplace_back(MessageEntity::Type::MediaTimestamp, offset, length, entity->media_timestamp_);
entity_media_timestamp->media_timestamp_);
break; break;
} }
default: default:
@ -3255,107 +3255,104 @@ vector<MessageEntity> get_message_entities(const ContactsManager *contacts_manag
const char *source) { const char *source) {
vector<MessageEntity> entities; vector<MessageEntity> entities;
entities.reserve(server_entities.size()); entities.reserve(server_entities.size());
for (auto &entity : server_entities) { for (auto &server_entity : server_entities) {
switch (entity->get_id()) { switch (server_entity->get_id()) {
case telegram_api::messageEntityUnknown::ID: case telegram_api::messageEntityUnknown::ID:
break; break;
case telegram_api::messageEntityMention::ID: { case telegram_api::messageEntityMention::ID: {
auto entity_mention = static_cast<const telegram_api::messageEntityMention *>(entity.get()); auto entity = static_cast<const telegram_api::messageEntityMention *>(server_entity.get());
entities.emplace_back(MessageEntity::Type::Mention, entity_mention->offset_, entity_mention->length_); entities.emplace_back(MessageEntity::Type::Mention, entity->offset_, entity->length_);
break; break;
} }
case telegram_api::messageEntityHashtag::ID: { case telegram_api::messageEntityHashtag::ID: {
auto entity_hashtag = static_cast<const telegram_api::messageEntityHashtag *>(entity.get()); auto entity = static_cast<const telegram_api::messageEntityHashtag *>(server_entity.get());
entities.emplace_back(MessageEntity::Type::Hashtag, entity_hashtag->offset_, entity_hashtag->length_); entities.emplace_back(MessageEntity::Type::Hashtag, entity->offset_, entity->length_);
break; break;
} }
case telegram_api::messageEntityCashtag::ID: { case telegram_api::messageEntityCashtag::ID: {
auto entity_cashtag = static_cast<const telegram_api::messageEntityCashtag *>(entity.get()); auto entity = static_cast<const telegram_api::messageEntityCashtag *>(server_entity.get());
entities.emplace_back(MessageEntity::Type::Cashtag, entity_cashtag->offset_, entity_cashtag->length_); entities.emplace_back(MessageEntity::Type::Cashtag, entity->offset_, entity->length_);
break; break;
} }
case telegram_api::messageEntityPhone::ID: { case telegram_api::messageEntityPhone::ID: {
auto entity_phone = static_cast<const telegram_api::messageEntityPhone *>(entity.get()); auto entity = static_cast<const telegram_api::messageEntityPhone *>(server_entity.get());
entities.emplace_back(MessageEntity::Type::PhoneNumber, entity_phone->offset_, entity_phone->length_); entities.emplace_back(MessageEntity::Type::PhoneNumber, entity->offset_, entity->length_);
break; break;
} }
case telegram_api::messageEntityBotCommand::ID: { case telegram_api::messageEntityBotCommand::ID: {
auto entity_bot_command = static_cast<const telegram_api::messageEntityBotCommand *>(entity.get()); auto entity = static_cast<const telegram_api::messageEntityBotCommand *>(server_entity.get());
entities.emplace_back(MessageEntity::Type::BotCommand, entity_bot_command->offset_, entities.emplace_back(MessageEntity::Type::BotCommand, entity->offset_, entity->length_);
entity_bot_command->length_);
break; break;
} }
case telegram_api::messageEntityBankCard::ID: { case telegram_api::messageEntityBankCard::ID: {
auto entity_bank_card = static_cast<const telegram_api::messageEntityBankCard *>(entity.get()); auto entity = static_cast<const telegram_api::messageEntityBankCard *>(server_entity.get());
entities.emplace_back(MessageEntity::Type::BankCardNumber, entity_bank_card->offset_, entities.emplace_back(MessageEntity::Type::BankCardNumber, entity->offset_, entity->length_);
entity_bank_card->length_);
break; break;
} }
case telegram_api::messageEntityUrl::ID: { case telegram_api::messageEntityUrl::ID: {
auto entity_url = static_cast<const telegram_api::messageEntityUrl *>(entity.get()); auto entity = static_cast<const telegram_api::messageEntityUrl *>(server_entity.get());
entities.emplace_back(MessageEntity::Type::Url, entity_url->offset_, entity_url->length_); entities.emplace_back(MessageEntity::Type::Url, entity->offset_, entity->length_);
break; break;
} }
case telegram_api::messageEntityEmail::ID: { case telegram_api::messageEntityEmail::ID: {
auto entity_email = static_cast<const telegram_api::messageEntityEmail *>(entity.get()); auto entity = static_cast<const telegram_api::messageEntityEmail *>(server_entity.get());
entities.emplace_back(MessageEntity::Type::EmailAddress, entity_email->offset_, entity_email->length_); entities.emplace_back(MessageEntity::Type::EmailAddress, entity->offset_, entity->length_);
break; break;
} }
case telegram_api::messageEntityBold::ID: { case telegram_api::messageEntityBold::ID: {
auto entity_bold = static_cast<const telegram_api::messageEntityBold *>(entity.get()); auto entity = static_cast<const telegram_api::messageEntityBold *>(server_entity.get());
entities.emplace_back(MessageEntity::Type::Bold, entity_bold->offset_, entity_bold->length_); entities.emplace_back(MessageEntity::Type::Bold, entity->offset_, entity->length_);
break; break;
} }
case telegram_api::messageEntityItalic::ID: { case telegram_api::messageEntityItalic::ID: {
auto entity_italic = static_cast<const telegram_api::messageEntityItalic *>(entity.get()); auto entity = static_cast<const telegram_api::messageEntityItalic *>(server_entity.get());
entities.emplace_back(MessageEntity::Type::Italic, entity_italic->offset_, entity_italic->length_); entities.emplace_back(MessageEntity::Type::Italic, entity->offset_, entity->length_);
break; break;
} }
case telegram_api::messageEntityUnderline::ID: { case telegram_api::messageEntityUnderline::ID: {
auto entity_bold = static_cast<const telegram_api::messageEntityUnderline *>(entity.get()); auto entity = static_cast<const telegram_api::messageEntityUnderline *>(server_entity.get());
entities.emplace_back(MessageEntity::Type::Underline, entity_bold->offset_, entity_bold->length_); entities.emplace_back(MessageEntity::Type::Underline, entity->offset_, entity->length_);
break; break;
} }
case telegram_api::messageEntityStrike::ID: { case telegram_api::messageEntityStrike::ID: {
auto entity_bold = static_cast<const telegram_api::messageEntityStrike *>(entity.get()); auto entity = static_cast<const telegram_api::messageEntityStrike *>(server_entity.get());
entities.emplace_back(MessageEntity::Type::Strikethrough, entity_bold->offset_, entity_bold->length_); entities.emplace_back(MessageEntity::Type::Strikethrough, entity->offset_, entity->length_);
break; break;
} }
case telegram_api::messageEntityBlockquote::ID: { case telegram_api::messageEntityBlockquote::ID: {
auto entity_bold = static_cast<const telegram_api::messageEntityBlockquote *>(entity.get()); auto entity = static_cast<const telegram_api::messageEntityBlockquote *>(server_entity.get());
entities.emplace_back(MessageEntity::Type::BlockQuote, entity_bold->offset_, entity_bold->length_); entities.emplace_back(MessageEntity::Type::BlockQuote, entity->offset_, entity->length_);
break; break;
} }
case telegram_api::messageEntityCode::ID: { case telegram_api::messageEntityCode::ID: {
auto entity_code = static_cast<const telegram_api::messageEntityCode *>(entity.get()); auto entity = static_cast<const telegram_api::messageEntityCode *>(server_entity.get());
entities.emplace_back(MessageEntity::Type::Code, entity_code->offset_, entity_code->length_); entities.emplace_back(MessageEntity::Type::Code, entity->offset_, entity->length_);
break; break;
} }
case telegram_api::messageEntityPre::ID: { case telegram_api::messageEntityPre::ID: {
auto entity_pre = static_cast<telegram_api::messageEntityPre *>(entity.get()); auto entity = static_cast<telegram_api::messageEntityPre *>(server_entity.get());
if (entity_pre->language_.empty()) { if (entity->language_.empty()) {
entities.emplace_back(MessageEntity::Type::Pre, entity_pre->offset_, entity_pre->length_); entities.emplace_back(MessageEntity::Type::Pre, entity->offset_, entity->length_);
} else { } else {
entities.emplace_back(MessageEntity::Type::PreCode, entity_pre->offset_, entity_pre->length_, entities.emplace_back(MessageEntity::Type::PreCode, entity->offset_, entity->length_,
std::move(entity_pre->language_)); std::move(entity->language_));
} }
break; break;
} }
case telegram_api::messageEntityTextUrl::ID: { case telegram_api::messageEntityTextUrl::ID: {
auto entity_text_url = static_cast<const telegram_api::messageEntityTextUrl *>(entity.get()); auto entity = static_cast<const telegram_api::messageEntityTextUrl *>(server_entity.get());
auto r_url = LinkManager::check_link(entity_text_url->url_); auto r_url = LinkManager::check_link(entity->url_);
if (r_url.is_error()) { if (r_url.is_error()) {
LOG(ERROR) << "Wrong URL entity: \"" << entity_text_url->url_ << "\": " << r_url.error().message() << " from " LOG(ERROR) << "Wrong URL entity: \"" << entity->url_ << "\": " << r_url.error().message() << " from "
<< source; << source;
continue; continue;
} }
entities.emplace_back(MessageEntity::Type::TextUrl, entity_text_url->offset_, entity_text_url->length_, entities.emplace_back(MessageEntity::Type::TextUrl, entity->offset_, entity->length_, r_url.move_as_ok());
r_url.move_as_ok());
break; break;
} }
case telegram_api::messageEntityMentionName::ID: { case telegram_api::messageEntityMentionName::ID: {
auto entity_mention_name = static_cast<const telegram_api::messageEntityMentionName *>(entity.get()); auto entity = static_cast<const telegram_api::messageEntityMentionName *>(server_entity.get());
UserId user_id(entity_mention_name->user_id_); UserId user_id(entity->user_id_);
if (!user_id.is_valid()) { if (!user_id.is_valid()) {
LOG(ERROR) << "Receive invalid " << user_id << " in MentionName from " << source; LOG(ERROR) << "Receive invalid " << user_id << " in MentionName from " << source;
continue; continue;
@ -3368,7 +3365,7 @@ vector<MessageEntity> get_message_entities(const ContactsManager *contacts_manag
LOG(ERROR) << "Receive inaccessible " << user_id << " in MentionName from " << source; LOG(ERROR) << "Receive inaccessible " << user_id << " in MentionName from " << source;
continue; continue;
} }
entities.emplace_back(entity_mention_name->offset_, entity_mention_name->length_, user_id); entities.emplace_back(entity->offset_, entity->length_, user_id);
break; break;
} }
default: default:
@ -3381,8 +3378,8 @@ vector<MessageEntity> get_message_entities(const ContactsManager *contacts_manag
vector<MessageEntity> get_message_entities(vector<tl_object_ptr<secret_api::MessageEntity>> &&secret_entities) { vector<MessageEntity> get_message_entities(vector<tl_object_ptr<secret_api::MessageEntity>> &&secret_entities) {
vector<MessageEntity> entities; vector<MessageEntity> entities;
entities.reserve(secret_entities.size()); entities.reserve(secret_entities.size());
for (auto &entity : secret_entities) { for (auto &secret_entity : secret_entities) {
switch (entity->get_id()) { switch (secret_entity->get_id()) {
case secret_api::messageEntityUnknown::ID: case secret_api::messageEntityUnknown::ID:
break; break;
case secret_api::messageEntityMention::ID: case secret_api::messageEntityMention::ID:
@ -3404,74 +3401,73 @@ vector<MessageEntity> get_message_entities(vector<tl_object_ptr<secret_api::Mess
// skip, will find it ourselves // skip, will find it ourselves
break; break;
case secret_api::messageEntityUrl::ID: { case secret_api::messageEntityUrl::ID: {
auto entity_url = static_cast<const secret_api::messageEntityUrl *>(entity.get()); auto entity = static_cast<const secret_api::messageEntityUrl *>(secret_entity.get());
// TODO skip URL when find_urls will be better // TODO skip URL when find_urls will be better
entities.emplace_back(MessageEntity::Type::Url, entity_url->offset_, entity_url->length_); entities.emplace_back(MessageEntity::Type::Url, entity->offset_, entity->length_);
break; break;
} }
case secret_api::messageEntityEmail::ID: { case secret_api::messageEntityEmail::ID: {
auto entity_email = static_cast<const secret_api::messageEntityEmail *>(entity.get()); auto entity = static_cast<const secret_api::messageEntityEmail *>(secret_entity.get());
// TODO skip emails when find_urls will be better // TODO skip emails when find_urls will be better
entities.emplace_back(MessageEntity::Type::EmailAddress, entity_email->offset_, entity_email->length_); entities.emplace_back(MessageEntity::Type::EmailAddress, entity->offset_, entity->length_);
break; break;
} }
case secret_api::messageEntityBold::ID: { case secret_api::messageEntityBold::ID: {
auto entity_bold = static_cast<const secret_api::messageEntityBold *>(entity.get()); auto entity = static_cast<const secret_api::messageEntityBold *>(secret_entity.get());
entities.emplace_back(MessageEntity::Type::Bold, entity_bold->offset_, entity_bold->length_); entities.emplace_back(MessageEntity::Type::Bold, entity->offset_, entity->length_);
break; break;
} }
case secret_api::messageEntityItalic::ID: { case secret_api::messageEntityItalic::ID: {
auto entity_italic = static_cast<const secret_api::messageEntityItalic *>(entity.get()); auto entity = static_cast<const secret_api::messageEntityItalic *>(secret_entity.get());
entities.emplace_back(MessageEntity::Type::Italic, entity_italic->offset_, entity_italic->length_); entities.emplace_back(MessageEntity::Type::Italic, entity->offset_, entity->length_);
break; break;
} }
case secret_api::messageEntityUnderline::ID: { case secret_api::messageEntityUnderline::ID: {
auto entity_bold = static_cast<const secret_api::messageEntityUnderline *>(entity.get()); auto entity = static_cast<const secret_api::messageEntityUnderline *>(secret_entity.get());
entities.emplace_back(MessageEntity::Type::Underline, entity_bold->offset_, entity_bold->length_); entities.emplace_back(MessageEntity::Type::Underline, entity->offset_, entity->length_);
break; break;
} }
case secret_api::messageEntityStrike::ID: { case secret_api::messageEntityStrike::ID: {
auto entity_bold = static_cast<const secret_api::messageEntityStrike *>(entity.get()); auto entity = static_cast<const secret_api::messageEntityStrike *>(secret_entity.get());
entities.emplace_back(MessageEntity::Type::Strikethrough, entity_bold->offset_, entity_bold->length_); entities.emplace_back(MessageEntity::Type::Strikethrough, entity->offset_, entity->length_);
break; break;
} }
case secret_api::messageEntityBlockquote::ID: { case secret_api::messageEntityBlockquote::ID: {
auto entity_bold = static_cast<const secret_api::messageEntityBlockquote *>(entity.get()); auto entity = static_cast<const secret_api::messageEntityBlockquote *>(secret_entity.get());
entities.emplace_back(MessageEntity::Type::BlockQuote, entity_bold->offset_, entity_bold->length_); entities.emplace_back(MessageEntity::Type::BlockQuote, entity->offset_, entity->length_);
break; break;
} }
case secret_api::messageEntityCode::ID: { case secret_api::messageEntityCode::ID: {
auto entity_code = static_cast<const secret_api::messageEntityCode *>(entity.get()); auto entity = static_cast<const secret_api::messageEntityCode *>(secret_entity.get());
entities.emplace_back(MessageEntity::Type::Code, entity_code->offset_, entity_code->length_); entities.emplace_back(MessageEntity::Type::Code, entity->offset_, entity->length_);
break; break;
} }
case secret_api::messageEntityPre::ID: { case secret_api::messageEntityPre::ID: {
auto entity_pre = static_cast<secret_api::messageEntityPre *>(entity.get()); auto entity = static_cast<secret_api::messageEntityPre *>(secret_entity.get());
if (!clean_input_string(entity_pre->language_)) { if (!clean_input_string(entity->language_)) {
LOG(WARNING) << "Wrong language in entity: \"" << entity_pre->language_ << '"'; LOG(WARNING) << "Wrong language in entity: \"" << entity->language_ << '"';
entity_pre->language_.clear(); entity->language_.clear();
} }
if (entity_pre->language_.empty()) { if (entity->language_.empty()) {
entities.emplace_back(MessageEntity::Type::Pre, entity_pre->offset_, entity_pre->length_); entities.emplace_back(MessageEntity::Type::Pre, entity->offset_, entity->length_);
} else { } else {
entities.emplace_back(MessageEntity::Type::PreCode, entity_pre->offset_, entity_pre->length_, entities.emplace_back(MessageEntity::Type::PreCode, entity->offset_, entity->length_,
std::move(entity_pre->language_)); std::move(entity->language_));
} }
break; break;
} }
case secret_api::messageEntityTextUrl::ID: { case secret_api::messageEntityTextUrl::ID: {
auto entity_text_url = static_cast<secret_api::messageEntityTextUrl *>(entity.get()); auto entity = static_cast<secret_api::messageEntityTextUrl *>(secret_entity.get());
if (!clean_input_string(entity_text_url->url_)) { if (!clean_input_string(entity->url_)) {
LOG(WARNING) << "Wrong URL entity: \"" << entity_text_url->url_ << '"'; LOG(WARNING) << "Wrong URL entity: \"" << entity->url_ << '"';
continue; continue;
} }
auto r_url = LinkManager::check_link(entity_text_url->url_); auto r_url = LinkManager::check_link(entity->url_);
if (r_url.is_error()) { if (r_url.is_error()) {
LOG(WARNING) << "Wrong URL entity: \"" << entity_text_url->url_ << "\": " << r_url.error().message(); LOG(WARNING) << "Wrong URL entity: \"" << entity->url_ << "\": " << r_url.error().message();
continue; continue;
} }
entities.emplace_back(MessageEntity::Type::TextUrl, entity_text_url->offset_, entity_text_url->length_, entities.emplace_back(MessageEntity::Type::TextUrl, entity->offset_, entity->length_, r_url.move_as_ok());
r_url.move_as_ok());
break; break;
} }
case secret_api::messageEntityMentionName::ID: case secret_api::messageEntityMentionName::ID: