2
0
mirror of https://github.com/telegramdesktop/tdesktop synced 2025-09-01 06:55:58 +00:00

Use getters in MTP classes.

This commit is contained in:
John Preston
2019-07-05 15:38:38 +02:00
parent 3ca28c0cf9
commit 567bf60644
100 changed files with 2807 additions and 2672 deletions

View File

@@ -62,18 +62,18 @@ WebPageCollage ExtractCollage(
result.items.reserve(count);
for (const auto &item : items) {
const auto good = item.match([&](const MTPDpageBlockPhoto &data) {
const auto photo = storage.photo(data.vphoto_id.v);
const auto photo = storage.photo(data.vphoto_id().v);
if (photo->isNull()) {
return false;
}
result.items.push_back(photo);
result.items.emplace_back(photo);
return true;
}, [&](const MTPDpageBlockVideo &data) {
const auto document = storage.document(data.vvideo_id.v);
const auto document = storage.document(data.vvideo_id().v);
if (!document->isVideoFile()) {
return false;
}
result.items.push_back(document);
result.items.emplace_back(document);
return true;
}, [](const auto &) -> bool {
Unexpected("Type of block in Collage.");
@@ -86,19 +86,20 @@ WebPageCollage ExtractCollage(
}
WebPageCollage ExtractCollage(const MTPDwebPage &data) {
if (!data.has_cached_page()) {
const auto page = data.vcached_page();
if (!page) {
return {};
}
const auto processMedia = [&] {
if (data.has_photo()) {
Auth().data().processPhoto(data.vphoto);
if (const auto photo = data.vphoto()) {
Auth().data().processPhoto(*photo);
}
if (data.has_document()) {
Auth().data().processDocument(data.vdocument);
if (const auto document = data.vdocument()) {
Auth().data().processDocument(*document);
}
};
return data.vcached_page.match([&](const auto &page) {
for (const auto &block : page.vblocks.v) {
return page->match([&](const auto &page) {
for (const auto &block : page.vblocks().v) {
switch (block.type()) {
case mtpc_pageBlockPhoto:
case mtpc_pageBlockVideo:
@@ -110,15 +111,15 @@ WebPageCollage ExtractCollage(const MTPDwebPage &data) {
case mtpc_pageBlockSlideshow:
processMedia();
return ExtractCollage(
block.c_pageBlockSlideshow().vitems.v,
page.vphotos.v,
page.vdocuments.v);
block.c_pageBlockSlideshow().vitems().v,
page.vphotos().v,
page.vdocuments().v);
case mtpc_pageBlockCollage:
processMedia();
return ExtractCollage(
block.c_pageBlockCollage().vitems.v,
page.vphotos.v,
page.vdocuments.v);
block.c_pageBlockCollage().vitems().v,
page.vphotos().v,
page.vdocuments().v);
default: break;
}
}
@@ -129,8 +130,8 @@ WebPageCollage ExtractCollage(const MTPDwebPage &data) {
} // namespace
WebPageType ParseWebPageType(const MTPDwebPage &page) {
const auto type = page.has_type() ? qs(page.vtype) : QString();
if (type == qstr("video") || page.has_embed_url()) {
const auto type = qs(page.vtype().value_or_empty());
if (type == qstr("video") || page.vembed_url()) {
return WebPageType::Video;
} else if (type == qstr("photo")) {
return WebPageType::Photo;
@@ -138,7 +139,7 @@ WebPageType ParseWebPageType(const MTPDwebPage &page) {
return WebPageType::Profile;
} else if (type == qstr("telegram_background")) {
return WebPageType::WallPaper;
} else if (page.has_cached_page()) {
} else if (page.vcached_page()) {
return WebPageType::ArticleWithIV;
} else {
return WebPageType::Article;