Add textEntityTypeMediaTimestamp.
This commit is contained in:
parent
6766eb81c3
commit
ab71d6a200
@ -1852,6 +1852,9 @@ textEntityTypeTextUrl url:string = TextEntityType;
|
||||
//@description A text shows instead of a raw mention of the user (e.g., when the user has no username) @user_id Identifier of the mentioned user
|
||||
textEntityTypeMentionName user_id:int32 = TextEntityType;
|
||||
|
||||
//@description A media timestamp @media_timestamp Timestamp from which a video/audio/video note/voice note playing should start, in seconds. The media can be in the content or the web page preview of the current message, or in the same places in the replied message
|
||||
textEntityTypeMediaTimestamp media_timestamp:int32 = TextEntityType;
|
||||
|
||||
|
||||
//@description A thumbnail to be sent along with a file; must be in JPEG or WEBP format for stickers, and less than 200 KB in size @thumbnail Thumbnail file to send. Sending thumbnails by file_id is currently not supported
|
||||
//@width Thumbnail width, usually shouldn't exceed 320. Use 0 if unknown @height Thumbnail height, usually shouldn't exceed 320. Use 0 if unknown
|
||||
@ -3119,7 +3122,7 @@ messageLink link:string is_public:Bool = MessageLink;
|
||||
//@is_public True, if the link is a public link for a message in a chat
|
||||
//@chat_id If found, identifier of the chat to which the message belongs, 0 otherwise
|
||||
//@message If found, the linked message; may be null
|
||||
//@media_timestamp Timestamp from which the video/audio/video note/voice note playing should start, in seconds; 0 if not specified. The media can be in the message content or in its link preview
|
||||
//@media_timestamp Timestamp from which the video/audio/video note/voice note playing should start, in seconds; 0 if not specified. The media can be in the message content or in its web page preview
|
||||
//@for_album True, if the whole media album to which the message belongs is linked
|
||||
//@for_comment True, if the message is linked as a channel post comment or from a message thread
|
||||
messageLinkInfo is_public:Bool chat_id:int53 message:message media_timestamp:int32 for_album:Bool for_comment:Bool = MessageLinkInfo;
|
||||
@ -4172,7 +4175,7 @@ removeNotificationGroup notification_group_id:int32 max_notification_id:int32 =
|
||||
//@description Returns an HTTPS link to a message in a chat. Available only for already sent messages in supergroups and channels. This is an offline request
|
||||
//@chat_id Identifier of the chat to which the message belongs
|
||||
//@message_id Identifier of the message
|
||||
//@media_timestamp If not 0, timestamp from which the video/audio/video note/voice note playing should start, in seconds. The media can be in the message content or in its link preview
|
||||
//@media_timestamp If not 0, timestamp from which the video/audio/video note/voice note playing should start, in seconds. The media can be in the message content or in its web page preview
|
||||
//@for_album Pass true to create a link for the whole media album
|
||||
//@for_comment Pass true to create a link to the message as a channel post comment, or from a message thread
|
||||
getMessageLink chat_id:int53 message_id:int53 media_timestamp:int32 for_album:Bool for_comment:Bool = MessageLink;
|
||||
@ -4425,7 +4428,7 @@ openMessageContent chat_id:int53 message_id:int53 = Ok;
|
||||
//@description Returns information about the type of an internal link. Returns a 404 error if the link is not internal. Can be called before authorization @link The link
|
||||
getInternalLinkType link:string = InternalLinkType;
|
||||
|
||||
//@description Returns information about an action to be done when the current user clicks an external link. Don't use this method for links from secret chats if link preview is disabled in secret chats @link The link
|
||||
//@description Returns information about an action to be done when the current user clicks an external link. Don't use this method for links from secret chats if web page preview is disabled in secret chats @link The link
|
||||
getExternalLinkInfo link:string = LoginUrlInfo;
|
||||
|
||||
//@description Returns an HTTP URL which can be used to automatically authorize the current user on a website after clicking an HTTP link. Use the method getExternalLinkInfo to find whether a prior user confirmation is needed
|
||||
|
@ -29,7 +29,7 @@
|
||||
namespace td {
|
||||
|
||||
int MessageEntity::get_type_priority(Type type) {
|
||||
static const int types[] = {50, 50, 50, 50, 50, 90, 91, 20, 11, 10, 49, 49, 50, 50, 92, 93, 0, 50};
|
||||
static const int types[] = {50, 50, 50, 50, 50, 90, 91, 20, 11, 10, 49, 49, 50, 50, 92, 93, 0, 50, 50};
|
||||
static_assert(sizeof(types) / sizeof(types[0]) == static_cast<size_t>(MessageEntity::Type::Size), "");
|
||||
return types[static_cast<int32>(type)];
|
||||
}
|
||||
@ -72,6 +72,8 @@ StringBuilder &operator<<(StringBuilder &string_builder, const MessageEntity::Ty
|
||||
return string_builder << "PhoneNumber";
|
||||
case MessageEntity::Type::BankCardNumber:
|
||||
return string_builder << "BankCardNumber";
|
||||
case MessageEntity::Type::MediaTimestamp:
|
||||
return string_builder << "MediaTimestamp";
|
||||
default:
|
||||
UNREACHABLE();
|
||||
return string_builder << "Impossible";
|
||||
@ -130,6 +132,8 @@ tl_object_ptr<td_api::TextEntityType> MessageEntity::get_text_entity_type_object
|
||||
return make_tl_object<td_api::textEntityTypePhoneNumber>();
|
||||
case MessageEntity::Type::BankCardNumber:
|
||||
return make_tl_object<td_api::textEntityTypeBankCardNumber>();
|
||||
case MessageEntity::Type::MediaTimestamp:
|
||||
return make_tl_object<td_api::textEntityTypeMediaTimestamp>(to_integer<int32>(argument));
|
||||
default:
|
||||
UNREACHABLE();
|
||||
return nullptr;
|
||||
@ -1291,7 +1295,8 @@ static constexpr int32 get_continuous_entities_mask() {
|
||||
get_entity_type_mask(MessageEntity::Type::EmailAddress) | get_entity_type_mask(MessageEntity::Type::TextUrl) |
|
||||
get_entity_type_mask(MessageEntity::Type::MentionName) | get_entity_type_mask(MessageEntity::Type::Cashtag) |
|
||||
get_entity_type_mask(MessageEntity::Type::PhoneNumber) |
|
||||
get_entity_type_mask(MessageEntity::Type::BankCardNumber);
|
||||
get_entity_type_mask(MessageEntity::Type::BankCardNumber) |
|
||||
get_entity_type_mask(MessageEntity::Type::MediaTimestamp);
|
||||
}
|
||||
|
||||
static constexpr int32 get_pre_entities_mask() {
|
||||
@ -1616,6 +1621,8 @@ string get_first_url(Slice text, const vector<MessageEntity> &entities) {
|
||||
break;
|
||||
case MessageEntity::Type::BankCardNumber:
|
||||
break;
|
||||
case MessageEntity::Type::MediaTimestamp:
|
||||
break;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
}
|
||||
@ -3030,6 +3037,8 @@ vector<tl_object_ptr<secret_api::MessageEntity>> get_input_secret_message_entiti
|
||||
break;
|
||||
case MessageEntity::Type::MentionName:
|
||||
break;
|
||||
case MessageEntity::Type::MediaTimestamp:
|
||||
break;
|
||||
default:
|
||||
UNREACHABLE();
|
||||
}
|
||||
@ -3121,6 +3130,15 @@ Result<vector<MessageEntity>> get_message_entities(const ContactsManager *contac
|
||||
entities.emplace_back(entity->offset_, entity->length_, user_id);
|
||||
break;
|
||||
}
|
||||
case td_api::textEntityTypeMediaTimestamp::ID: {
|
||||
auto entity_media_timestamp = static_cast<td_api::textEntityTypeMediaTimestamp *>(entity->type_.get());
|
||||
if (entity_media_timestamp->media_timestamp_ <= 0) {
|
||||
return Status::Error(400, "Invalid media timestamp specified");
|
||||
}
|
||||
entities.emplace_back(MessageEntity::Type::MediaTimestamp, entity->offset_, entity->length_,
|
||||
to_string(entity_media_timestamp->media_timestamp_));
|
||||
break;
|
||||
}
|
||||
default:
|
||||
UNREACHABLE();
|
||||
}
|
||||
|
@ -48,6 +48,7 @@ class MessageEntity {
|
||||
Strikethrough,
|
||||
BlockQuote,
|
||||
BankCardNumber,
|
||||
MediaTimestamp,
|
||||
Size
|
||||
};
|
||||
Type type;
|
||||
|
Loading…
Reference in New Issue
Block a user