diff --git a/td/telegram/MessageContent.cpp b/td/telegram/MessageContent.cpp index 5b98fd29a..f7afbe29a 100644 --- a/td/telegram/MessageContent.cpp +++ b/td/telegram/MessageContent.cpp @@ -2810,6 +2810,19 @@ void remove_message_content_web_page(MessageContent *content) { static_cast(content)->web_page_id = WebPageId(); } +bool can_message_content_have_media_timestamp(const MessageContent *content) { + CHECK(content != nullptr); + switch (content->get_type()) { + case MessageContentType::Audio: + case MessageContentType::Video: + case MessageContentType::VideoNote: + case MessageContentType::VoiceNote: + return true; + default: + return has_message_content_web_page(content); + } +} + void set_message_content_poll_answer(Td *td, const MessageContent *content, FullMessageId full_message_id, vector &&option_ids, Promise &&promise) { CHECK(content->get_type() == MessageContentType::Poll); diff --git a/td/telegram/MessageContent.h b/td/telegram/MessageContent.h index 401d091b3..fc564cab3 100644 --- a/td/telegram/MessageContent.h +++ b/td/telegram/MessageContent.h @@ -149,6 +149,8 @@ bool has_message_content_web_page(const MessageContent *content); void remove_message_content_web_page(MessageContent *content); +bool can_message_content_have_media_timestamp(const MessageContent *content); + void set_message_content_poll_answer(Td *td, const MessageContent *content, FullMessageId full_message_id, vector &&option_ids, Promise &&promise); diff --git a/td/telegram/MessageContentType.cpp b/td/telegram/MessageContentType.cpp index 036d3749b..a239b36bf 100644 --- a/td/telegram/MessageContentType.cpp +++ b/td/telegram/MessageContentType.cpp @@ -335,10 +335,4 @@ bool can_have_message_content_caption(MessageContentType content_type) { } } -bool can_have_media_timestamp(MessageContentType content_type) { - return content_type == MessageContentType::Audio || content_type == MessageContentType::Text || - content_type == MessageContentType::Video || content_type == MessageContentType::VideoNote || - content_type == MessageContentType::VoiceNote; -} - } // namespace td diff --git a/td/telegram/MessageContentType.h b/td/telegram/MessageContentType.h index 375499278..167ae39ce 100644 --- a/td/telegram/MessageContentType.h +++ b/td/telegram/MessageContentType.h @@ -75,8 +75,6 @@ bool is_service_message_content(MessageContentType content_type); bool can_have_message_content_caption(MessageContentType content_type); -bool can_have_media_timestamp(MessageContentType content_type); - struct MessageContentTypeHash { std::size_t operator()(MessageContentType content_type) const { return std::hash()(static_cast(content_type)); diff --git a/td/telegram/MessagesManager.cpp b/td/telegram/MessagesManager.cpp index 0a6f5950f..d4f69db8c 100644 --- a/td/telegram/MessagesManager.cpp +++ b/td/telegram/MessagesManager.cpp @@ -17318,7 +17318,7 @@ Result> MessagesManager::get_message_link(FullMessageId for_comment = false; } - if (media_timestamp <= 0 || !can_have_media_timestamp(m->content->get_type())) { + if (media_timestamp <= 0 || !can_message_content_have_media_timestamp(m->content.get())) { media_timestamp = 0; } if (media_timestamp != 0) { @@ -17581,7 +17581,7 @@ td_api::object_ptr MessagesManager::get_message_link_in message = get_message_object(dialog_id, m); for_album = !info.is_single && m->media_album_id != 0; for_comment = (info.comment_dialog_id.is_valid() || info.for_comment) && m->top_thread_message_id.is_valid(); - if (can_have_media_timestamp(m->content->get_type())) { + if (can_message_content_have_media_timestamp(m->content.get())) { auto duration = get_message_content_duration(m->content.get(), td_); if (duration == 0 || info.media_timestamp <= duration) { media_timestamp = info.media_timestamp;