@@ -1731,17 +1731,33 @@ td_api::object_ptr<td_api::LinkPreviewType> WebPagesManager::get_link_preview_ty
17311731 }
17321732 }
17331733 if (!web_page->embed_type_ .empty () || !web_page->embed_url_ .empty ()) {
1734+ if (web_page->type_ == " gif" ) {
1735+ LOG_IF (ERROR, web_page->document_ .type != Document::Type::Unknown &&
1736+ web_page->document_ .type != Document::Type::Animation)
1737+ << " Receive wrong document for " << web_page->url_ ;
1738+ auto animation = web_page->document_ .type == Document::Type::Animation
1739+ ? td_->animations_manager_ ->get_animation_object (web_page->document_ .file_id )
1740+ : nullptr ;
1741+ if (web_page->embed_type_ == " iframe" ) {
1742+ return td_api::make_object<td_api::linkPreviewTypeEmbeddedAnimationPlayer>(
1743+ web_page->embed_url_ , std::move (animation), get_photo_object (td_->file_manager_ .get (), web_page->photo_ ),
1744+ web_page->duration_ , web_page->embed_dimensions_ .width , web_page->embed_dimensions_ .height );
1745+ } else if (animation != nullptr ) {
1746+ return td_api::make_object<td_api::linkPreviewTypeAnimation>(std::move (animation));
1747+ } else {
1748+ if (!web_page->photo_ .is_empty ()) {
1749+ return td_api::make_object<td_api::linkPreviewTypePhoto>(
1750+ get_photo_object (td_->file_manager_ .get (), web_page->photo_ ));
1751+ }
1752+ return td_api::make_object<td_api::linkPreviewTypeUnsupported>();
1753+ }
1754+ }
17341755 if (web_page->embed_type_ == " iframe" ) {
17351756 if (web_page->type_ == " audio" ) {
17361757 return td_api::make_object<td_api::linkPreviewTypeEmbeddedAudioPlayer>(
17371758 web_page->embed_url_ , get_photo_object (td_->file_manager_ .get (), web_page->photo_ ), web_page->duration_ ,
17381759 web_page->embed_dimensions_ .width , web_page->embed_dimensions_ .height );
17391760 }
1740- if (web_page->type_ == " gif" ) {
1741- return td_api::make_object<td_api::linkPreviewTypeEmbeddedAnimationPlayer>(
1742- web_page->embed_url_ , get_photo_object (td_->file_manager_ .get (), web_page->photo_ ), web_page->duration_ ,
1743- web_page->embed_dimensions_ .width , web_page->embed_dimensions_ .height );
1744- }
17451761 if (web_page->type_ == " video" ) {
17461762 return td_api::make_object<td_api::linkPreviewTypeEmbeddedVideoPlayer>(
17471763 web_page->embed_url_ , get_photo_object (td_->file_manager_ .get (), web_page->photo_ ), web_page->duration_ ,
@@ -1769,23 +1785,6 @@ td_api::object_ptr<td_api::LinkPreviewType> WebPagesManager::get_link_preview_ty
17691785 return td_api::make_object<td_api::linkPreviewTypeUnsupported>();
17701786 }
17711787 }
1772- if (web_page->type_ == " gif" ) {
1773- LOG_IF (ERROR, web_page->document_ .type != Document::Type::Unknown &&
1774- web_page->document_ .type != Document::Type::Animation)
1775- << " Receive wrong document for " << web_page->url_ ;
1776- auto animation = web_page->document_ .type == Document::Type::Animation
1777- ? td_->animations_manager_ ->get_animation_object (web_page->document_ .file_id )
1778- : nullptr ;
1779- if (animation != nullptr ) {
1780- return td_api::make_object<td_api::linkPreviewTypeAnimation>(std::move (animation));
1781- } else {
1782- if (!web_page->photo_ .is_empty ()) {
1783- return td_api::make_object<td_api::linkPreviewTypePhoto>(
1784- get_photo_object (td_->file_manager_ .get (), web_page->photo_ ));
1785- }
1786- return td_api::make_object<td_api::linkPreviewTypeUnsupported>();
1787- }
1788- }
17891788 if (web_page->type_ == " video" ) {
17901789 LOG_IF (ERROR,
17911790 web_page->document_ .type != Document::Type::Unknown && web_page->document_ .type != Document::Type::Video)
0 commit comments