Support pageBlockCaption.
GitOrigin-RevId: 7f53b8a1cb63c2d78ca7ce58a6466daa1b818abe
This commit is contained in:
parent
3ed7d4ec34
commit
fb3239d183
@ -696,7 +696,7 @@ richTextMarked text:RichText = RichText;
|
||||
//@description A rich text phone number @text Text @phone_number Phone number
|
||||
richTextPhoneNumber text:RichText phone_number:string = RichText;
|
||||
|
||||
//@description A rich text inline image @document The image represented as a document
|
||||
//@description A rich text inline image @document The image represented as a document. The image can be in GIF, JPEG or PNG format
|
||||
//@width Width of a bounding box in which the image should be shown, 0 if unknown
|
||||
//@height Height of a bounding box in which the image should be shown, 0 if unknown
|
||||
richTextInlineImage document:document width:int32 height:int32 = RichText;
|
||||
@ -705,6 +705,10 @@ richTextInlineImage document:document width:int32 height:int32 = RichText;
|
||||
richTexts texts:vector<RichText> = RichText;
|
||||
|
||||
|
||||
//@description Contains a caption of an instant view web page block, consisting of a text and a trailing credit @text Content of the caption @credit Block credit (like HTML tag <cite>)
|
||||
pageBlockCaption text:RichText credit:RichText = PageBlockCaption;
|
||||
|
||||
|
||||
//@class PageBlock @description Describes a block of an instant view web page
|
||||
|
||||
//@description The title of a page @title Title
|
||||
@ -740,38 +744,38 @@ pageBlockAnchor name:string = PageBlock;
|
||||
//@description A list of texts @items Texts @is_ordered True, if the items should be marked with numbers
|
||||
pageBlockList items:vector<RichText> is_ordered:Bool = PageBlock;
|
||||
|
||||
//@description A block quote @text Quote text @caption Quote caption
|
||||
pageBlockBlockQuote text:RichText caption:RichText = PageBlock;
|
||||
//@description A block quote @text Quote text @credit Quote credit
|
||||
pageBlockBlockQuote text:RichText credit:RichText = PageBlock;
|
||||
|
||||
//@description A pull quote @text Quote text @caption Quote caption
|
||||
pageBlockPullQuote text:RichText caption:RichText = PageBlock;
|
||||
//@description A pull quote @text Quote text @credit Quote credit
|
||||
pageBlockPullQuote text:RichText credit:RichText = PageBlock;
|
||||
|
||||
//@description An animation @animation Animation file; may be null @caption Animation caption @need_autoplay True, if the animation should be played automatically
|
||||
pageBlockAnimation animation:animation caption:RichText need_autoplay:Bool = PageBlock;
|
||||
pageBlockAnimation animation:animation caption:pageBlockCaption need_autoplay:Bool = PageBlock;
|
||||
|
||||
//@description An audio file @audio Audio file; may be null @caption Audio file caption
|
||||
pageBlockAudio audio:audio caption:RichText = PageBlock;
|
||||
pageBlockAudio audio:audio caption:pageBlockCaption = PageBlock;
|
||||
|
||||
//@description A photo @photo Photo file; may be null @caption Photo caption
|
||||
pageBlockPhoto photo:photo caption:RichText = PageBlock;
|
||||
pageBlockPhoto photo:photo caption:pageBlockCaption = PageBlock;
|
||||
|
||||
//@description A video @video Video file; may be null @caption Video caption @need_autoplay True, if the video should be played automatically @is_looped True, if the video should be looped
|
||||
pageBlockVideo video:video caption:RichText need_autoplay:Bool is_looped:Bool = PageBlock;
|
||||
pageBlockVideo video:video caption:pageBlockCaption need_autoplay:Bool is_looped:Bool = PageBlock;
|
||||
|
||||
//@description A page cover @cover Cover
|
||||
pageBlockCover cover:PageBlock = PageBlock;
|
||||
|
||||
//@description An embedded web page @url Web page URL, if available @html HTML-markup of the embedded page @poster_photo Poster photo, if available; may be null @width Block width @height Block height @caption Block caption @is_full_width True, if the block should be full width @allow_scrolling True, if scrolling should be allowed
|
||||
pageBlockEmbedded url:string html:string poster_photo:photo width:int32 height:int32 caption:RichText is_full_width:Bool allow_scrolling:Bool = PageBlock;
|
||||
pageBlockEmbedded url:string html:string poster_photo:photo width:int32 height:int32 caption:pageBlockCaption is_full_width:Bool allow_scrolling:Bool = PageBlock;
|
||||
|
||||
//@description An embedded post @url Web page URL @author Post author @author_photo Post author photo @date Point in time (Unix timestamp) when the post was created; 0 if unknown @page_blocks Post content @caption Post caption
|
||||
pageBlockEmbeddedPost url:string author:string author_photo:photo date:int32 page_blocks:vector<PageBlock> caption:RichText = PageBlock;
|
||||
pageBlockEmbeddedPost url:string author:string author_photo:photo date:int32 page_blocks:vector<PageBlock> caption:pageBlockCaption = PageBlock;
|
||||
|
||||
//@description A collage @page_blocks Collage item contents @caption Block caption
|
||||
pageBlockCollage page_blocks:vector<PageBlock> caption:RichText = PageBlock;
|
||||
pageBlockCollage page_blocks:vector<PageBlock> caption:pageBlockCaption = PageBlock;
|
||||
|
||||
//@description A slideshow @page_blocks Slideshow item contents @caption Block caption
|
||||
pageBlockSlideshow page_blocks:vector<PageBlock> caption:RichText = PageBlock;
|
||||
pageBlockSlideshow page_blocks:vector<PageBlock> caption:pageBlockCaption = PageBlock;
|
||||
|
||||
//@description A link to a chat @title Chat title @photo Chat photo; may be null @username Chat username, by which all other information about the chat should be resolved
|
||||
pageBlockChatLink title:string photo:chatPhoto username:string = PageBlock;
|
||||
|
Binary file not shown.
@ -27,6 +27,7 @@ enum class Version : int32 {
|
||||
AddTermsOfService,
|
||||
AddContactVcard,
|
||||
AddMessageUnsupportedVersion,
|
||||
InstantView2_0Support,
|
||||
Next
|
||||
};
|
||||
|
||||
|
@ -453,6 +453,30 @@ class WebPagesManager::RichText {
|
||||
}
|
||||
};
|
||||
|
||||
class WebPagesManager::PageBlockCaption {
|
||||
public:
|
||||
RichText text;
|
||||
RichText credit;
|
||||
|
||||
template <class T>
|
||||
void store(T &storer) const {
|
||||
using ::td::store;
|
||||
store(text, storer);
|
||||
store(credit, storer);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void parse(T &parser) {
|
||||
using ::td::parse;
|
||||
parse(text, parser);
|
||||
if (parser.version() >= static_cast<int32>(Version::InstantView2_0Support)) {
|
||||
parse(credit, parser);
|
||||
} else {
|
||||
credit = RichText();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
class WebPagesManager::PageBlock {
|
||||
public:
|
||||
enum class Type : int32 {
|
||||
@ -849,11 +873,11 @@ class WebPagesManager::PageBlockList : public PageBlock {
|
||||
|
||||
class WebPagesManager::PageBlockBlockQuote : public PageBlock {
|
||||
RichText text;
|
||||
RichText caption;
|
||||
RichText credit;
|
||||
|
||||
public:
|
||||
PageBlockBlockQuote() = default;
|
||||
PageBlockBlockQuote(RichText &&text, RichText &&caption) : text(std::move(text)), caption(std::move(caption)) {
|
||||
PageBlockBlockQuote(RichText &&text, RichText &&credit) : text(std::move(text)), credit(std::move(credit)) {
|
||||
}
|
||||
|
||||
Type get_type() const override {
|
||||
@ -861,31 +885,31 @@ class WebPagesManager::PageBlockBlockQuote : public PageBlock {
|
||||
}
|
||||
|
||||
tl_object_ptr<td_api::PageBlock> get_page_block_object() const override {
|
||||
return make_tl_object<td_api::pageBlockBlockQuote>(get_rich_text_object(text), get_rich_text_object(caption));
|
||||
return make_tl_object<td_api::pageBlockBlockQuote>(get_rich_text_object(text), get_rich_text_object(credit));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void store(T &storer) const {
|
||||
using ::td::store;
|
||||
store(text, storer);
|
||||
store(caption, storer);
|
||||
store(credit, storer);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void parse(T &parser) {
|
||||
using ::td::parse;
|
||||
parse(text, parser);
|
||||
parse(caption, parser);
|
||||
parse(credit, parser);
|
||||
}
|
||||
};
|
||||
|
||||
class WebPagesManager::PageBlockPullQuote : public PageBlock {
|
||||
RichText text;
|
||||
RichText caption;
|
||||
RichText credit;
|
||||
|
||||
public:
|
||||
PageBlockPullQuote() = default;
|
||||
PageBlockPullQuote(RichText &&text, RichText &&caption) : text(std::move(text)), caption(std::move(caption)) {
|
||||
PageBlockPullQuote(RichText &&text, RichText &&credit) : text(std::move(text)), credit(std::move(credit)) {
|
||||
}
|
||||
|
||||
Type get_type() const override {
|
||||
@ -893,32 +917,32 @@ class WebPagesManager::PageBlockPullQuote : public PageBlock {
|
||||
}
|
||||
|
||||
tl_object_ptr<td_api::PageBlock> get_page_block_object() const override {
|
||||
return make_tl_object<td_api::pageBlockPullQuote>(get_rich_text_object(text), get_rich_text_object(caption));
|
||||
return make_tl_object<td_api::pageBlockPullQuote>(get_rich_text_object(text), get_rich_text_object(credit));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void store(T &storer) const {
|
||||
using ::td::store;
|
||||
store(text, storer);
|
||||
store(caption, storer);
|
||||
store(credit, storer);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
void parse(T &parser) {
|
||||
using ::td::parse;
|
||||
parse(text, parser);
|
||||
parse(caption, parser);
|
||||
parse(credit, parser);
|
||||
}
|
||||
};
|
||||
|
||||
class WebPagesManager::PageBlockAnimation : public PageBlock {
|
||||
FileId animation_file_id;
|
||||
RichText caption;
|
||||
PageBlockCaption caption;
|
||||
bool need_autoplay = false;
|
||||
|
||||
public:
|
||||
PageBlockAnimation() = default;
|
||||
PageBlockAnimation(FileId animation_file_id, RichText &&caption, bool need_autoplay)
|
||||
PageBlockAnimation(FileId animation_file_id, PageBlockCaption &&caption, bool need_autoplay)
|
||||
: animation_file_id(animation_file_id), caption(std::move(caption)), need_autoplay(need_autoplay) {
|
||||
}
|
||||
|
||||
@ -943,7 +967,7 @@ class WebPagesManager::PageBlockAnimation : public PageBlock {
|
||||
return make_tl_object<td_api::pageBlockAnimation>(
|
||||
G()->td().get_actor_unsafe()->animations_manager_->get_animation_object(animation_file_id,
|
||||
"get_page_block_object"),
|
||||
get_rich_text_object(caption), need_autoplay);
|
||||
get_page_block_caption_object(caption), need_autoplay);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
@ -988,11 +1012,11 @@ class WebPagesManager::PageBlockAnimation : public PageBlock {
|
||||
|
||||
class WebPagesManager::PageBlockPhoto : public PageBlock {
|
||||
Photo photo;
|
||||
RichText caption;
|
||||
PageBlockCaption caption;
|
||||
|
||||
public:
|
||||
PageBlockPhoto() = default;
|
||||
PageBlockPhoto(Photo photo, RichText &&caption) : photo(std::move(photo)), caption(std::move(caption)) {
|
||||
PageBlockPhoto(Photo photo, PageBlockCaption &&caption) : photo(std::move(photo)), caption(std::move(caption)) {
|
||||
}
|
||||
|
||||
Type get_type() const override {
|
||||
@ -1005,7 +1029,8 @@ class WebPagesManager::PageBlockPhoto : public PageBlock {
|
||||
|
||||
tl_object_ptr<td_api::PageBlock> get_page_block_object() const override {
|
||||
return make_tl_object<td_api::pageBlockPhoto>(
|
||||
get_photo_object(G()->td().get_actor_unsafe()->file_manager_.get(), &photo), get_rich_text_object(caption));
|
||||
get_photo_object(G()->td().get_actor_unsafe()->file_manager_.get(), &photo),
|
||||
get_page_block_caption_object(caption));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
@ -1025,13 +1050,13 @@ class WebPagesManager::PageBlockPhoto : public PageBlock {
|
||||
|
||||
class WebPagesManager::PageBlockVideo : public PageBlock {
|
||||
FileId video_file_id;
|
||||
RichText caption;
|
||||
PageBlockCaption caption;
|
||||
bool need_autoplay = false;
|
||||
bool is_looped = false;
|
||||
|
||||
public:
|
||||
PageBlockVideo() = default;
|
||||
PageBlockVideo(FileId video_file_id, RichText &&caption, bool need_autoplay, bool is_looped)
|
||||
PageBlockVideo(FileId video_file_id, PageBlockCaption &&caption, bool need_autoplay, bool is_looped)
|
||||
: video_file_id(video_file_id), caption(std::move(caption)), need_autoplay(need_autoplay), is_looped(is_looped) {
|
||||
}
|
||||
|
||||
@ -1054,8 +1079,8 @@ class WebPagesManager::PageBlockVideo : public PageBlock {
|
||||
|
||||
tl_object_ptr<td_api::PageBlock> get_page_block_object() const override {
|
||||
return make_tl_object<td_api::pageBlockVideo>(
|
||||
G()->td().get_actor_unsafe()->videos_manager_->get_video_object(video_file_id), get_rich_text_object(caption),
|
||||
need_autoplay, is_looped);
|
||||
G()->td().get_actor_unsafe()->videos_manager_->get_video_object(video_file_id),
|
||||
get_page_block_caption_object(caption), need_autoplay, is_looped);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
@ -1138,13 +1163,13 @@ class WebPagesManager::PageBlockEmbedded : public PageBlock {
|
||||
string html;
|
||||
Photo poster_photo;
|
||||
Dimensions dimensions;
|
||||
RichText caption;
|
||||
PageBlockCaption caption;
|
||||
bool is_full_width;
|
||||
bool allow_scrolling;
|
||||
|
||||
public:
|
||||
PageBlockEmbedded() = default;
|
||||
PageBlockEmbedded(string url, string html, Photo poster_photo, Dimensions dimensions, RichText &&caption,
|
||||
PageBlockEmbedded(string url, string html, Photo poster_photo, Dimensions dimensions, PageBlockCaption &&caption,
|
||||
bool is_full_width, bool allow_scrolling)
|
||||
: url(std::move(url))
|
||||
, html(std::move(html))
|
||||
@ -1166,7 +1191,7 @@ class WebPagesManager::PageBlockEmbedded : public PageBlock {
|
||||
tl_object_ptr<td_api::PageBlock> get_page_block_object() const override {
|
||||
return make_tl_object<td_api::pageBlockEmbedded>(
|
||||
url, html, get_photo_object(G()->td().get_actor_unsafe()->file_manager_.get(), &poster_photo), dimensions.width,
|
||||
dimensions.height, get_rich_text_object(caption), is_full_width, allow_scrolling);
|
||||
dimensions.height, get_page_block_caption_object(caption), is_full_width, allow_scrolling);
|
||||
}
|
||||
|
||||
template <class T>
|
||||
@ -1206,12 +1231,12 @@ class WebPagesManager::PageBlockEmbeddedPost : public PageBlock {
|
||||
Photo author_photo;
|
||||
int32 date;
|
||||
vector<unique_ptr<PageBlock>> page_blocks;
|
||||
RichText caption;
|
||||
PageBlockCaption caption;
|
||||
|
||||
public:
|
||||
PageBlockEmbeddedPost() = default;
|
||||
PageBlockEmbeddedPost(string url, string author, Photo author_photo, int32 date,
|
||||
vector<unique_ptr<PageBlock>> &&page_blocks, RichText &&caption)
|
||||
vector<unique_ptr<PageBlock>> &&page_blocks, PageBlockCaption &&caption)
|
||||
: url(std::move(url))
|
||||
, author(std::move(author))
|
||||
, author_photo(std::move(author_photo))
|
||||
@ -1235,7 +1260,7 @@ class WebPagesManager::PageBlockEmbeddedPost : public PageBlock {
|
||||
tl_object_ptr<td_api::PageBlock> get_page_block_object() const override {
|
||||
return make_tl_object<td_api::pageBlockEmbeddedPost>(
|
||||
url, author, get_photo_object(G()->td().get_actor_unsafe()->file_manager_.get(), &author_photo), date,
|
||||
get_page_block_objects(page_blocks), get_rich_text_object(caption));
|
||||
get_page_block_objects(page_blocks), get_page_block_caption_object(caption));
|
||||
}
|
||||
template <class T>
|
||||
void store(T &storer) const {
|
||||
@ -1262,11 +1287,11 @@ class WebPagesManager::PageBlockEmbeddedPost : public PageBlock {
|
||||
|
||||
class WebPagesManager::PageBlockCollage : public PageBlock {
|
||||
vector<unique_ptr<PageBlock>> page_blocks;
|
||||
RichText caption;
|
||||
PageBlockCaption caption;
|
||||
|
||||
public:
|
||||
PageBlockCollage() = default;
|
||||
PageBlockCollage(vector<unique_ptr<PageBlock>> &&page_blocks, RichText &&caption)
|
||||
PageBlockCollage(vector<unique_ptr<PageBlock>> &&page_blocks, PageBlockCaption &&caption)
|
||||
: page_blocks(std::move(page_blocks)), caption(std::move(caption)) {
|
||||
}
|
||||
|
||||
@ -1283,7 +1308,8 @@ class WebPagesManager::PageBlockCollage : public PageBlock {
|
||||
}
|
||||
|
||||
tl_object_ptr<td_api::PageBlock> get_page_block_object() const override {
|
||||
return make_tl_object<td_api::pageBlockCollage>(get_page_block_objects(page_blocks), get_rich_text_object(caption));
|
||||
return make_tl_object<td_api::pageBlockCollage>(get_page_block_objects(page_blocks),
|
||||
get_page_block_caption_object(caption));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
@ -1303,11 +1329,11 @@ class WebPagesManager::PageBlockCollage : public PageBlock {
|
||||
|
||||
class WebPagesManager::PageBlockSlideshow : public PageBlock {
|
||||
vector<unique_ptr<PageBlock>> page_blocks;
|
||||
RichText caption;
|
||||
PageBlockCaption caption;
|
||||
|
||||
public:
|
||||
PageBlockSlideshow() = default;
|
||||
PageBlockSlideshow(vector<unique_ptr<PageBlock>> &&page_blocks, RichText &&caption)
|
||||
PageBlockSlideshow(vector<unique_ptr<PageBlock>> &&page_blocks, PageBlockCaption &&caption)
|
||||
: page_blocks(std::move(page_blocks)), caption(std::move(caption)) {
|
||||
}
|
||||
|
||||
@ -1325,7 +1351,7 @@ class WebPagesManager::PageBlockSlideshow : public PageBlock {
|
||||
|
||||
tl_object_ptr<td_api::PageBlock> get_page_block_object() const override {
|
||||
return make_tl_object<td_api::pageBlockSlideshow>(get_page_block_objects(page_blocks),
|
||||
get_rich_text_object(caption));
|
||||
get_page_block_caption_object(caption));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
@ -1386,11 +1412,12 @@ class WebPagesManager::PageBlockChatLink : public PageBlock {
|
||||
|
||||
class WebPagesManager::PageBlockAudio : public PageBlock {
|
||||
FileId audio_file_id;
|
||||
RichText caption;
|
||||
PageBlockCaption caption;
|
||||
|
||||
public:
|
||||
PageBlockAudio() = default;
|
||||
PageBlockAudio(FileId audio_file_id, RichText &&caption) : audio_file_id(audio_file_id), caption(std::move(caption)) {
|
||||
PageBlockAudio(FileId audio_file_id, PageBlockCaption &&caption)
|
||||
: audio_file_id(audio_file_id), caption(std::move(caption)) {
|
||||
}
|
||||
|
||||
Type get_type() const override {
|
||||
@ -1412,7 +1439,8 @@ class WebPagesManager::PageBlockAudio : public PageBlock {
|
||||
|
||||
tl_object_ptr<td_api::PageBlock> get_page_block_object() const override {
|
||||
return make_tl_object<td_api::pageBlockAudio>(
|
||||
G()->td().get_actor_unsafe()->audios_manager_->get_audio_object(audio_file_id), get_rich_text_object(caption));
|
||||
G()->td().get_actor_unsafe()->audios_manager_->get_audio_object(audio_file_id),
|
||||
get_page_block_caption_object(caption));
|
||||
}
|
||||
|
||||
template <class T>
|
||||
@ -2487,6 +2515,21 @@ vector<tl_object_ptr<td_api::RichText>> WebPagesManager::get_rich_text_objects(c
|
||||
return transform(rich_texts, [](const RichText &rich_text) { return get_rich_text_object(rich_text); });
|
||||
}
|
||||
|
||||
WebPagesManager::PageBlockCaption WebPagesManager::get_page_block_caption(
|
||||
tl_object_ptr<telegram_api::pageCaption> &&page_caption, const std::unordered_map<int64, FileId> &documents) {
|
||||
CHECK(page_caption != nullptr);
|
||||
PageBlockCaption result;
|
||||
result.text = get_rich_text(std::move(page_caption->text_), documents);
|
||||
result.credit = get_rich_text(std::move(page_caption->credit_), documents);
|
||||
return result;
|
||||
}
|
||||
|
||||
td_api::object_ptr<td_api::pageBlockCaption> WebPagesManager::get_page_block_caption_object(
|
||||
const PageBlockCaption &caption) {
|
||||
return td_api::make_object<td_api::pageBlockCaption>(get_rich_text_object(caption.text),
|
||||
get_rich_text_object(caption.credit));
|
||||
}
|
||||
|
||||
vector<tl_object_ptr<td_api::PageBlock>> WebPagesManager::get_page_block_objects(
|
||||
const vector<unique_ptr<PageBlock>> &page_blocks) {
|
||||
return transform(page_blocks,
|
||||
@ -2566,7 +2609,7 @@ unique_ptr<WebPagesManager::PageBlock> WebPagesManager::get_page_block(
|
||||
photo = it->second;
|
||||
}
|
||||
return make_unique<PageBlockPhoto>(std::move(photo),
|
||||
get_rich_text(std::move(page_block->caption_->text_), documents));
|
||||
get_page_block_caption(std::move(page_block->caption_), documents));
|
||||
}
|
||||
case telegram_api::pageBlockVideo::ID: {
|
||||
auto page_block = move_tl_object_as<telegram_api::pageBlockVideo>(page_block_ptr);
|
||||
@ -2576,7 +2619,7 @@ unique_ptr<WebPagesManager::PageBlock> WebPagesManager::get_page_block(
|
||||
if (animations_it != animations.end()) {
|
||||
LOG_IF(ERROR, !is_looped) << "Receive non-looped animation";
|
||||
return make_unique<PageBlockAnimation>(
|
||||
animations_it->second, get_rich_text(std::move(page_block->caption_->text_), documents), need_autoplay);
|
||||
animations_it->second, get_page_block_caption(std::move(page_block->caption_), documents), need_autoplay);
|
||||
}
|
||||
|
||||
auto it = videos.find(page_block->video_id_);
|
||||
@ -2585,7 +2628,7 @@ unique_ptr<WebPagesManager::PageBlock> WebPagesManager::get_page_block(
|
||||
video_file_id = it->second;
|
||||
}
|
||||
return make_unique<PageBlockVideo>(
|
||||
video_file_id, get_rich_text(std::move(page_block->caption_->text_), documents), need_autoplay, is_looped);
|
||||
video_file_id, get_page_block_caption(std::move(page_block->caption_), documents), need_autoplay, is_looped);
|
||||
}
|
||||
case telegram_api::pageBlockCover::ID: {
|
||||
auto page_block = move_tl_object_as<telegram_api::pageBlockCover>(page_block_ptr);
|
||||
@ -2610,7 +2653,7 @@ unique_ptr<WebPagesManager::PageBlock> WebPagesManager::get_page_block(
|
||||
}
|
||||
return td::make_unique<PageBlockEmbedded>(std::move(page_block->url_), std::move(page_block->html_),
|
||||
std::move(poster_photo), get_dimensions(page_block->w_, page_block->h_),
|
||||
get_rich_text(std::move(page_block->caption_->text_), documents),
|
||||
get_page_block_caption(std::move(page_block->caption_), documents),
|
||||
is_full_width, allow_scrolling);
|
||||
}
|
||||
case telegram_api::pageBlockEmbedPost::ID: {
|
||||
@ -2625,19 +2668,19 @@ unique_ptr<WebPagesManager::PageBlock> WebPagesManager::get_page_block(
|
||||
return td::make_unique<PageBlockEmbeddedPost>(
|
||||
std::move(page_block->url_), std::move(page_block->author_), std::move(author_photo), page_block->date_,
|
||||
get_page_blocks(std::move(page_block->blocks_), animations, audios, documents, photos, videos),
|
||||
get_rich_text(std::move(page_block->caption_->text_), documents));
|
||||
get_page_block_caption(std::move(page_block->caption_), documents));
|
||||
}
|
||||
case telegram_api::pageBlockCollage::ID: {
|
||||
auto page_block = move_tl_object_as<telegram_api::pageBlockCollage>(page_block_ptr);
|
||||
return td::make_unique<PageBlockCollage>(
|
||||
get_page_blocks(std::move(page_block->items_), animations, audios, documents, photos, videos),
|
||||
get_rich_text(std::move(page_block->caption_->text_), documents));
|
||||
get_page_block_caption(std::move(page_block->caption_), documents));
|
||||
}
|
||||
case telegram_api::pageBlockSlideshow::ID: {
|
||||
auto page_block = move_tl_object_as<telegram_api::pageBlockSlideshow>(page_block_ptr);
|
||||
return td::make_unique<PageBlockSlideshow>(
|
||||
get_page_blocks(std::move(page_block->items_), animations, audios, documents, photos, videos),
|
||||
get_rich_text(std::move(page_block->caption_->text_), documents));
|
||||
get_page_block_caption(std::move(page_block->caption_), documents));
|
||||
}
|
||||
case telegram_api::pageBlockChannel::ID: {
|
||||
auto page_block = move_tl_object_as<telegram_api::pageBlockChannel>(page_block_ptr);
|
||||
@ -2674,7 +2717,7 @@ unique_ptr<WebPagesManager::PageBlock> WebPagesManager::get_page_block(
|
||||
audio_file_id = it->second;
|
||||
}
|
||||
return make_unique<PageBlockAudio>(audio_file_id,
|
||||
get_rich_text(std::move(page_block->caption_->text_), documents));
|
||||
get_page_block_caption(std::move(page_block->caption_), documents));
|
||||
}
|
||||
default:
|
||||
UNREACHABLE();
|
||||
|
@ -100,6 +100,8 @@ class WebPagesManager : public Actor {
|
||||
|
||||
class RichText;
|
||||
|
||||
class PageBlockCaption;
|
||||
|
||||
class PageBlock;
|
||||
class PageBlockTitle;
|
||||
class PageBlockSubtitle;
|
||||
@ -170,6 +172,11 @@ class WebPagesManager : public Actor {
|
||||
|
||||
static vector<tl_object_ptr<td_api::RichText>> get_rich_text_objects(const vector<RichText> &rich_texts);
|
||||
|
||||
static PageBlockCaption get_page_block_caption(tl_object_ptr<telegram_api::pageCaption> &&page_caption,
|
||||
const std::unordered_map<int64, FileId> &documents);
|
||||
|
||||
static td_api::object_ptr<td_api::pageBlockCaption> get_page_block_caption_object(const PageBlockCaption &caption);
|
||||
|
||||
static vector<tl_object_ptr<td_api::PageBlock>> get_page_block_objects(
|
||||
const vector<unique_ptr<PageBlock>> &page_blocks);
|
||||
|
||||
|
Reference in New Issue
Block a user