From 1b4ea2e9c673c1d661db861778d8173b52ee555b Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 12 Aug 2025 16:10:35 +0400 Subject: [PATCH] Use Api::ParseTextWithEntities more. --- Telegram/SourceFiles/api/api_premium.cpp | 9 +++------ Telegram/SourceFiles/boxes/translate_box.cpp | 9 +++------ Telegram/SourceFiles/data/data_poll.cpp | 18 ++++++------------ Telegram/SourceFiles/data/data_todo_list.cpp | 16 ++++------------ Telegram/SourceFiles/history/history_item.cpp | 18 ++++++------------ .../history/history_item_components.cpp | 6 +----- 6 files changed, 23 insertions(+), 53 deletions(-) diff --git a/Telegram/SourceFiles/api/api_premium.cpp b/Telegram/SourceFiles/api/api_premium.cpp index 27f25175ba..c8380d62d7 100644 --- a/Telegram/SourceFiles/api/api_premium.cpp +++ b/Telegram/SourceFiles/api/api_premium.cpp @@ -960,12 +960,9 @@ std::optional FromTL( | ranges::to_vector) : std::vector()), .message = (data.vmessage() - ? TextWithEntities{ - .text = qs(data.vmessage()->data().vtext()), - .entities = Api::EntitiesFromMTP( - session, - data.vmessage()->data().ventities().v), - } + ? Api::ParseTextWithEntities( + session, + *data.vmessage()) : TextWithEntities()), .starsConverted = int64(data.vconvert_stars().value_or_empty()), .starsUpgradedBySender = int64( diff --git a/Telegram/SourceFiles/boxes/translate_box.cpp b/Telegram/SourceFiles/boxes/translate_box.cpp index 8e29782b5b..027b9d7467 100644 --- a/Telegram/SourceFiles/boxes/translate_box.cpp +++ b/Telegram/SourceFiles/boxes/translate_box.cpp @@ -248,12 +248,9 @@ void TranslateBox( showText( Ui::Text::Italic(tr::lng_translate_box_error(tr::now))); } else { - showText(TextWithEntities{ - .text = qs(list.front().data().vtext()), - .entities = Api::EntitiesFromMTP( - &peer->session(), - list.front().data().ventities().v), - }); + showText(Api::ParseTextWithEntities( + &peer->session(), + list.front())); } }).fail([=](const MTP::Error &error) { showText( diff --git a/Telegram/SourceFiles/data/data_poll.cpp b/Telegram/SourceFiles/data/data_poll.cpp index 64a3176d55..658f7c209f 100644 --- a/Telegram/SourceFiles/data/data_poll.cpp +++ b/Telegram/SourceFiles/data/data_poll.cpp @@ -70,12 +70,9 @@ bool PollData::closeByTimer() { bool PollData::applyChanges(const MTPDpoll &poll) { Expects(poll.vid().v == id); - const auto newQuestion = TextWithEntities{ - .text = qs(poll.vquestion().data().vtext()), - .entities = Api::EntitiesFromMTP( - &session(), - poll.vquestion().data().ventities().v), - }; + const auto newQuestion = Api::ParseTextWithEntities( + &session(), + poll.vquestion()); const auto newFlags = (poll.is_closed() ? Flag::Closed : Flag(0)) | (poll.is_public_voters() ? Flag::PublicVotes : Flag(0)) | (poll.is_multiple_choice() ? Flag::MultiChoice : Flag(0)) @@ -88,12 +85,9 @@ bool PollData::applyChanges(const MTPDpoll &poll) { return data.match([&](const MTPDpollAnswer &answer) { auto result = PollAnswer(); result.option = answer.voption().v; - result.text = TextWithEntities{ - .text = qs(answer.vtext().data().vtext()), - .entities = Api::EntitiesFromMTP( - &session(), - answer.vtext().data().ventities().v), - }; + result.text = Api::ParseTextWithEntities( + &session(), + answer.vtext()); return result; }); }) | ranges::views::take( diff --git a/Telegram/SourceFiles/data/data_todo_list.cpp b/Telegram/SourceFiles/data/data_todo_list.cpp index d50bcf6296..8400eb249d 100644 --- a/Telegram/SourceFiles/data/data_todo_list.cpp +++ b/Telegram/SourceFiles/data/data_todo_list.cpp @@ -45,12 +45,9 @@ Main::Session &TodoListData::session() const { } bool TodoListData::applyChanges(const MTPDtodoList &todolist) { - const auto newTitle = TextWithEntities{ - .text = qs(todolist.vtitle().data().vtext()), - .entities = Api::EntitiesFromMTP( - &session(), - todolist.vtitle().data().ventities().v), - }; + const auto newTitle = Api::ParseTextWithEntities( + &session(), + todolist.vtitle()); const auto newFlags = (todolist.is_others_can_append() ? Flag::OthersCanAppend : Flag()) @@ -222,12 +219,7 @@ TodoListItem TodoListItemFromMTP( const MTPTodoItem &item) { const auto &data = item.data(); return { - .text = TextWithEntities{ - .text = qs(data.vtitle().data().vtext()), - .entities = Api::EntitiesFromMTP( - session, - data.vtitle().data().ventities().v), - }, + .text = Api::ParseTextWithEntities(session, data.vtitle()), .id = data.vid().v, }; } diff --git a/Telegram/SourceFiles/history/history_item.cpp b/Telegram/SourceFiles/history/history_item.cpp index 237f75e18f..788456e7da 100644 --- a/Telegram/SourceFiles/history/history_item.cpp +++ b/Telegram/SourceFiles/history/history_item.cpp @@ -6295,12 +6295,9 @@ void HistoryItem::applyAction(const MTPMessageAction &action) { Data::GiftCode{ .slug = qs(data.vslug()), .message = (data.vmessage() - ? TextWithEntities{ - .text = qs(data.vmessage()->data().vtext()), - .entities = Api::EntitiesFromMTP( - &history()->session(), - data.vmessage()->data().ventities().v), - } + ? Api::ParseTextWithEntities( + &history()->session(), + *data.vmessage()) : TextWithEntities()), .channel = (boostedId ? history()->owner().channel(boostedId).get() @@ -6347,12 +6344,9 @@ void HistoryItem::applyAction(const MTPMessageAction &action) { using Fields = Data::GiftCode; auto fields = Fields{ .message = (data.vmessage() - ? TextWithEntities{ - .text = qs(data.vmessage()->data().vtext()), - .entities = Api::EntitiesFromMTP( - &history()->session(), - data.vmessage()->data().ventities().v), - } + ? Api::ParseTextWithEntities( + &history()->session(), + *data.vmessage()) : TextWithEntities()), .channel = ((service && peerIsChannel(to)) ? history()->owner().channel(peerToChannel(to)).get() diff --git a/Telegram/SourceFiles/history/history_item_components.cpp b/Telegram/SourceFiles/history/history_item_components.cpp index b608c16da1..184a368706 100644 --- a/Telegram/SourceFiles/history/history_item_components.cpp +++ b/Telegram/SourceFiles/history/history_item_components.cpp @@ -1336,11 +1336,7 @@ MessageFactcheck FromMTP( } const auto &data = factcheck->data(); if (const auto text = data.vtext()) { - const auto &data = text->data(); - result.text = { - qs(data.vtext()), - Api::EntitiesFromMTP(session, data.ventities().v), - }; + result.text = Api::ParseTextWithEntities(session, *text); } if (const auto country = data.vcountry()) { result.country = qs(country->v);