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

Method processReceivedPage

Telegram/SourceFiles/iv/iv_instance.cpp:1567–1601  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1565}
1566
1567Instance::ProcessReceivedPageResult Instance::processReceivedPage(
1568 not_null<Main::Session*> session,
1569 const QString &url,
1570 const MTPmessages_WebPage &result) {
1571 const auto &data = result.data();
1572 const auto owner = &session->data();
1573 owner->processUsers(data.vusers());
1574 owner->processChats(data.vchats());
1575 auto &requested = _fullRequested[session][url];
1576 auto processed = ProcessReceivedPageResult();
1577 const auto &mtp = data.vwebpage();
1578 mtp.match([&](const MTPDwebPageNotModified &data) {
1579 Q_UNUSED(data);
1580
1581 processed.page = requested.page;
1582 }, [&](const MTPDwebPage &data) {
1583 const auto oldPage = requested.page;
1584 const auto oldVersion = oldPage ? oldPage->version : 0;
1585 const auto oldIvHash = (oldPage && oldPage->iv)
1586 ? oldPage->iv->hash()
1587 : 0;
1588 requested.hash = data.vhash().v;
1589 processed.page = owner->processWebpage(data).get();
1590 requested.page = processed.page;
1591 processed.articleChanged = processed.page
1592 && processed.page->iv
1593 && (!oldPage
1594 || processed.page->version != oldVersion
1595 || processed.page->iv->hash() != oldIvHash);
1596 }, [&](const auto &) {
1597 processed.page = owner->processWebpage(mtp).get();
1598 requested.page = processed.page;
1599 });
1600 return processed;
1601}
1602
1603auto Instance::processReceivedRichMessage(
1604 not_null<Main::Session*> session,

Callers

nothing calls this directly

Calls 7

processUsersMethod · 0.80
processChatsMethod · 0.80
processWebpageMethod · 0.80
dataMethod · 0.45
hashMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected