mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-06-06 15:13:57 +02:00
Version 3.6.1: Fix video-from-webpage-preview download.
This commit is contained in:
parent
81f9d043d0
commit
eec2992be5
1 changed files with 25 additions and 3 deletions
|
@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
|
||||||
#include "data/data_photo.h"
|
#include "data/data_photo.h"
|
||||||
#include "data/data_document.h"
|
#include "data/data_document.h"
|
||||||
#include "data/data_document_media.h"
|
#include "data/data_document_media.h"
|
||||||
|
#include "data/data_web_page.h"
|
||||||
#include "data/data_changes.h"
|
#include "data/data_changes.h"
|
||||||
#include "data/data_user.h"
|
#include "data/data_user.h"
|
||||||
#include "data/data_channel.h"
|
#include "data/data_channel.h"
|
||||||
|
@ -63,6 +64,28 @@ constexpr auto ByDocument = [](const auto &entry) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[[nodiscard]] PhotoData *ItemPhoto(not_null<HistoryItem*> item) {
|
||||||
|
if (const auto media = item->media()) {
|
||||||
|
if (const auto page = media->webpage()) {
|
||||||
|
return page->document ? nullptr : page->photo;
|
||||||
|
} else if (const auto photo = media->photo()) {
|
||||||
|
return photo;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
[[nodiscard]] DocumentData *ItemDocument(not_null<HistoryItem*> item) {
|
||||||
|
if (const auto media = item->media()) {
|
||||||
|
if (const auto page = media->webpage()) {
|
||||||
|
return page->document;
|
||||||
|
} else if (const auto document = media->document()) {
|
||||||
|
return document;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
struct DocumentDescriptor {
|
struct DocumentDescriptor {
|
||||||
uint64 sessionUniqueId = 0;
|
uint64 sessionUniqueId = 0;
|
||||||
DocumentId documentId = 0;
|
DocumentId documentId = 0;
|
||||||
|
@ -219,9 +242,8 @@ void DownloadManager::check(
|
||||||
std::vector<DownloadingId>::iterator i) {
|
std::vector<DownloadingId>::iterator i) {
|
||||||
auto &entry = *i;
|
auto &entry = *i;
|
||||||
|
|
||||||
const auto media = entry.object.item->media();
|
const auto photo = ItemPhoto(entry.object.item);
|
||||||
const auto photo = media ? media->photo() : nullptr;
|
const auto document = ItemDocument(entry.object.item);
|
||||||
const auto document = media ? media->document() : nullptr;
|
|
||||||
if (entry.object.photo != photo || entry.object.document != document) {
|
if (entry.object.photo != photo || entry.object.document != document) {
|
||||||
cancel(data, i);
|
cancel(data, i);
|
||||||
return;
|
return;
|
||||||
|
|
Loading…
Add table
Reference in a new issue