From 85c2cc160debf08ee4ac14bd9711b9d85e2d7b68 Mon Sep 17 00:00:00 2001 From: levlam Date: Tue, 13 Mar 2018 00:17:29 +0300 Subject: [PATCH] Add textEntityTypePhoneNumber. GitOrigin-RevId: b8705ec13104848c5ae0597aee6cf4e6f41762db --- td/generate/scheme/td_api.tl | 3 +++ td/generate/scheme/td_api.tlo | Bin 112732 -> 112800 bytes td/telegram/MessageEntity.cpp | 19 +++++++++++++++++-- td/telegram/MessageEntity.h | 3 ++- td/telegram/MessagesManager.cpp | 6 ++++++ 5 files changed, 28 insertions(+), 3 deletions(-) diff --git a/td/generate/scheme/td_api.tl b/td/generate/scheme/td_api.tl index 3e8a3709..4f4c4244 100644 --- a/td/generate/scheme/td_api.tl +++ b/td/generate/scheme/td_api.tl @@ -957,6 +957,9 @@ textEntityTypeTextUrl url:string = TextEntityType; //@description A text shows instead of a raw mention of the user (e.g., when the user has no username) @user_id Identifier of the mentioned user textEntityTypeMentionName user_id:int32 = TextEntityType; +//@description A phone number +textEntityTypePhoneNumber = TextEntityType; + //@description A thumbnail to be sent along with a file; should be in JPEG or WEBP format for stickers, and less than 200 kB in size @thumbnail Thumbnail file to send. Sending thumbnails by file_id is currently not supported //@width Thumbnail width, usually shouldn't exceed 90. Use 0 if unknown @height Thumbnail height, usually shouldn't exceed 90. Use 0 if unknown diff --git a/td/generate/scheme/td_api.tlo b/td/generate/scheme/td_api.tlo index 849794bf34b6a845ff74d35dc4db6d92429b63d5..2fb97071d12f92e692caed441f0170501cc9c969 100644 GIT binary patch delta 479 zcmccffo;J@whdP#M7t*kZ|4h1ttfHLE6FUW45=(gW#F5v$SA%^atAZx|IIsPxF4~A z6iq(y&qe~oxOq&-hXDwRoY{0ZY}*ckC1w6=;FgTRCpqW84sM+f{;S}WoGQbJTj$gS zMm##_FyeOY)H`@|PM2WBCmX`Zr~wYF=?#pGCJ@#RnAqewsX7oL5hg|*PFPSfPA&}5 y_5krffeHdw<+x(BR^8ksS%MNR0U7yuseYxoNvTB)3^3gw^~e#iy@HAH$yNaMwy&lD delta 407 zcmZ4Rk?qb0whdP#L>F3i@$!YFR+PBrm1LGwhEx`$GVo4TWE9^dxr3SU-{ze%+>cm5 ziYA}K!~fr%N#6lMP{H)Bp$8^ae&o69{VuOl MessageEntity::get_text_entity_type_object return make_tl_object(user_id.get()); case MessageEntity::Type::Cashtag: return make_tl_object(); + case MessageEntity::Type::PhoneNumber: + return make_tl_object(); default: UNREACHABLE(); return nullptr; @@ -1068,6 +1073,8 @@ vector find_entities(Slice text, bool skip_bot_commands, bool onl entities.emplace_back(MessageEntity::Type::Cashtag, narrow_cast(cashtag.begin() - text.begin()), narrow_cast(cashtag.size())); } + + // TODO find_phone_numbers } auto urls = find_urls(text); @@ -1186,6 +1193,8 @@ string get_first_url(Slice text, const vector &entities) { break; case MessageEntity::Type::Cashtag: break; + case MessageEntity::Type::PhoneNumber: + break; default: UNREACHABLE(); } @@ -1605,6 +1614,7 @@ vector> get_input_message_entities(co case MessageEntity::Type::Url: case MessageEntity::Type::EmailAddress: case MessageEntity::Type::Cashtag: + case MessageEntity::Type::PhoneNumber: continue; case MessageEntity::Type::Bold: result.push_back(make_tl_object(entity.offset, entity.length)); @@ -1682,6 +1692,8 @@ vector> get_input_secret_message_entiti break; case MessageEntity::Type::MentionName: break; + case MessageEntity::Type::PhoneNumber: + break; default: UNREACHABLE(); } @@ -1705,6 +1717,7 @@ Result> get_message_entities(const ContactsManager *contac case td_api::textEntityTypeUrl::ID: case td_api::textEntityTypeEmailAddress::ID: case td_api::textEntityTypeCashtag::ID: + case td_api::textEntityTypePhoneNumber::ID: break; case td_api::textEntityTypeBold::ID: entities.emplace_back(MessageEntity::Type::Bold, entity->offset_, entity->length_); @@ -1780,9 +1793,11 @@ vector get_message_entities(const ContactsManager *contacts_manag entities.emplace_back(MessageEntity::Type::Cashtag, entity_cashtag->offset_, entity_cashtag->length_); break; } - case telegram_api::messageEntityPhone::ID: - // skip for now + case telegram_api::messageEntityPhone::ID: { + auto entity_phone = static_cast(entity.get()); + entities.emplace_back(MessageEntity::Type::PhoneNumber, entity_phone->offset_, entity_phone->length_); break; + } case telegram_api::messageEntityBotCommand::ID: { auto entity_bot_command = static_cast(entity.get()); entities.emplace_back(MessageEntity::Type::BotCommand, entity_bot_command->offset_, diff --git a/td/telegram/MessageEntity.h b/td/telegram/MessageEntity.h index c1ee6549..871af94f 100644 --- a/td/telegram/MessageEntity.h +++ b/td/telegram/MessageEntity.h @@ -43,7 +43,8 @@ class MessageEntity { PreCode, TextUrl, MentionName, - Cashtag + Cashtag, + PhoneNumber }; Type type; int32 offset; diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 86a233a5..96d1e716 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -22202,6 +22202,12 @@ bool MessagesManager::need_message_text_changed_warning(const Message *old_messa // server has deleted first entity and ltrim the message return false; } + for (auto &entity : new_content->entities) { + if (entity.type == MessageEntity::Type::PhoneNumber) { + // TODO remove after find_phone_numbers is implemented + return false; + } + } return true; }