89 lines
2.2 KiB
C
89 lines
2.2 KiB
C
|
/*
|
||
|
This file is part of Telegram Desktop,
|
||
|
the official desktop version of Telegram messaging app, see https://telegram.org
|
||
|
|
||
|
Telegram Desktop is free software: you can redistribute it and/or modify
|
||
|
it under the terms of the GNU General Public License as published by
|
||
|
the Free Software Foundation, either version 3 of the License, or
|
||
|
(at your option) any later version.
|
||
|
|
||
|
It is distributed in the hope that it will be useful,
|
||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
|
GNU General Public License for more details.
|
||
|
|
||
|
In addition, as a special exception, the copyright holders give permission
|
||
|
to link the code of portions of this program with the OpenSSL library.
|
||
|
|
||
|
Full license: https://github.com/telegramdesktop/tdesktop/blob/master/LICENSE
|
||
|
Copyright (c) 2014-2017 John Preston, https://desktop.telegram.org
|
||
|
*/
|
||
|
#pragma once
|
||
|
|
||
|
#include "data/data_photo.h"
|
||
|
#include "data/data_document.h"
|
||
|
|
||
|
enum WebPageType {
|
||
|
WebPagePhoto,
|
||
|
WebPageVideo,
|
||
|
WebPageProfile,
|
||
|
WebPageArticle
|
||
|
};
|
||
|
|
||
|
inline WebPageType toWebPageType(const QString &type) {
|
||
|
if (type == qstr("photo")) return WebPagePhoto;
|
||
|
if (type == qstr("video")) return WebPageVideo;
|
||
|
if (type == qstr("profile")) return WebPageProfile;
|
||
|
return WebPageArticle;
|
||
|
}
|
||
|
|
||
|
struct WebPageData {
|
||
|
WebPageData(const WebPageId &id) : id(id) {
|
||
|
}
|
||
|
WebPageData(
|
||
|
const WebPageId &id,
|
||
|
WebPageType type,
|
||
|
const QString &url,
|
||
|
const QString &displayUrl,
|
||
|
const QString &siteName,
|
||
|
const QString &title,
|
||
|
const TextWithEntities &description,
|
||
|
DocumentData *document,
|
||
|
PhotoData *photo,
|
||
|
int32 duration,
|
||
|
const QString &author,
|
||
|
int32 pendingTill)
|
||
|
: id(id)
|
||
|
, type(type)
|
||
|
, url(url)
|
||
|
, displayUrl(displayUrl)
|
||
|
, siteName(siteName)
|
||
|
, title(title)
|
||
|
, description(description)
|
||
|
, duration(duration)
|
||
|
, author(author)
|
||
|
, photo(photo)
|
||
|
, document(document)
|
||
|
, pendingTill(pendingTill) {
|
||
|
}
|
||
|
|
||
|
void forget() {
|
||
|
if (document) document->forget();
|
||
|
if (photo) photo->forget();
|
||
|
}
|
||
|
|
||
|
WebPageId id = 0;
|
||
|
WebPageType type = WebPageArticle;
|
||
|
QString url;
|
||
|
QString displayUrl;
|
||
|
QString siteName;
|
||
|
QString title;
|
||
|
TextWithEntities description;
|
||
|
int32 duration = 0;
|
||
|
QString author;
|
||
|
PhotoData *photo = nullptr;
|
||
|
DocumentData *document = nullptr;
|
||
|
int32 pendingTill = 0;
|
||
|
|
||
|
};
|