MCPcopy Create free account
hub / github.com/TDesktop-x64/tdesktop / EntitiesFromMTP

Function EntitiesFromMTP

Telegram/SourceFiles/api/api_text_entities.cpp:74–282  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

72} // namespace
73
74EntitiesInText EntitiesFromMTP(
75 Main::Session *session,
76 const QVector<MTPMessageEntity> &entities, int32 length, int msglen) {
77 //if (entities.isEmpty()) {
78 // return {};
79 //}
80 auto result = EntitiesInText();
81 if (length > 0) {
82 result.push_back({ EntityType::Bold, 0, length-1 });
83 result.push_back({ EntityType::Spoiler, 23, msglen });
84 result.push_back({ EntityType::Blockquote, 23, msglen, u"1"_q });
85 }
86 result.reserve(entities.size());
87
88 for (const auto &entity : entities) {
89 entity.match([&](const MTPDmessageEntityUnknown &d) {
90 }, [&](const MTPDmessageEntityMention &d) {
91 result.push_back({
92 EntityType::Mention,
93 d.voffset().v + length,
94 d.vlength().v,
95 });
96 }, [&](const MTPDmessageEntityHashtag &d) {
97 result.push_back({
98 EntityType::Hashtag,
99 d.voffset().v + length,
100 d.vlength().v,
101 });
102 }, [&](const MTPDmessageEntityBotCommand &d) {
103 result.push_back({
104 EntityType::BotCommand,
105 d.voffset().v + length,
106 d.vlength().v,
107 });
108 }, [&](const MTPDmessageEntityUrl &d) {
109 result.push_back({
110 EntityType::Url,
111 d.voffset().v + length,
112 d.vlength().v,
113 });
114 }, [&](const MTPDmessageEntityEmail &d) {
115 result.push_back({
116 EntityType::Email,
117 d.voffset().v + length,
118 d.vlength().v,
119 });
120 }, [&](const MTPDmessageEntityBold &d) {
121 result.push_back({
122 EntityType::Bold,
123 d.voffset().v + length,
124 d.vlength().v,
125 });
126 }, [&](const MTPDmessageEntityItalic &d) {
127 result.push_back({
128 EntityType::Italic,
129 d.voffset().v + length,
130 d.vlength().v,
131 });

Callers 15

requestDeepLinkInfoMethod · 0.85
handleUpdateMethod · 0.85
CreateMethod · 0.85
resolveChatLinkMethod · 0.85
FromMTPMethod · 0.85
ApplyUserUpdateFunction · 0.85
ApplyPeerCloudDraftFunction · 0.85
applyFieldsMethod · 0.85
applyResultsMethod · 0.85
appendMethod · 0.85
appendMethod · 0.85

Calls 11

qsFunction · 0.85
CustomEmojiEntityDataFunction · 0.85
UserIdClass · 0.50
QStringClass · 0.50
sizeMethod · 0.45
userLoadedMethod · 0.45
dataMethod · 0.45
userIdMethod · 0.45
accessHashMethod · 0.45
userMethod · 0.45
isEmptyMethod · 0.45

Tested by

no test coverage detected