mirror of
https://github.com/teloxide/teloxide.git
synced 2025-03-14 11:44:04 +01:00
Merge pull request #210 from SpriteOvO/more-shortcuts
Add shortcuts for other kinds of entities
This commit is contained in:
commit
b991f47800
2 changed files with 89 additions and 2 deletions
|
@ -11,9 +11,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
|
||||
- Support for Telegram Bot API [version 6.0](https://core.telegram.org/bots/api#april-16-2022)
|
||||
- Note that some field were renamed
|
||||
- Method `MessageEntity::user_mention` ([#208][pr208])
|
||||
- Shortcut methods for `MessageEntity` ([#208][pr208], [#210][pr210])
|
||||
|
||||
[pr208]: https://github.com/teloxide/teloxide-core/pull/208
|
||||
[pr210]: https://github.com/teloxide/teloxide-core/pull/210
|
||||
|
||||
### Changed
|
||||
|
||||
|
|
|
@ -28,9 +28,95 @@ impl MessageEntity {
|
|||
}
|
||||
}
|
||||
|
||||
/// Create a message entity representing a bold text.
|
||||
pub const fn bold(offset: usize, length: usize) -> Self {
|
||||
Self {
|
||||
kind: MessageEntityKind::Bold,
|
||||
offset,
|
||||
length,
|
||||
}
|
||||
}
|
||||
|
||||
/// Create a message entity representing an italic text.
|
||||
pub const fn italic(offset: usize, length: usize) -> Self {
|
||||
Self {
|
||||
kind: MessageEntityKind::Italic,
|
||||
offset,
|
||||
length,
|
||||
}
|
||||
}
|
||||
|
||||
/// Create a message entity representing an underline text.
|
||||
pub const fn underline(offset: usize, length: usize) -> Self {
|
||||
Self {
|
||||
kind: MessageEntityKind::Underline,
|
||||
offset,
|
||||
length,
|
||||
}
|
||||
}
|
||||
|
||||
/// Create a message entity representing a strikethrough text.
|
||||
pub const fn strikethrough(offset: usize, length: usize) -> Self {
|
||||
Self {
|
||||
kind: MessageEntityKind::Strikethrough,
|
||||
offset,
|
||||
length,
|
||||
}
|
||||
}
|
||||
|
||||
/// Create a message entity representing a spoiler text.
|
||||
pub const fn spoiler(offset: usize, length: usize) -> Self {
|
||||
Self {
|
||||
kind: MessageEntityKind::Spoiler,
|
||||
offset,
|
||||
length,
|
||||
}
|
||||
}
|
||||
|
||||
/// Create a message entity representing a monowidth text.
|
||||
pub const fn code(offset: usize, length: usize) -> Self {
|
||||
Self {
|
||||
kind: MessageEntityKind::Code,
|
||||
offset,
|
||||
length,
|
||||
}
|
||||
}
|
||||
|
||||
/// Create a message entity representing a monowidth block.
|
||||
pub const fn pre(language: Option<String>, offset: usize, length: usize) -> Self {
|
||||
Self {
|
||||
kind: MessageEntityKind::Pre { language },
|
||||
offset,
|
||||
length,
|
||||
}
|
||||
}
|
||||
|
||||
/// Create a message entity representing a clickable text URL.
|
||||
pub const fn text_link(url: reqwest::Url, offset: usize, length: usize) -> Self {
|
||||
Self {
|
||||
kind: MessageEntityKind::TextLink { url },
|
||||
offset,
|
||||
length,
|
||||
}
|
||||
}
|
||||
|
||||
/// Create a message entity representing a text mention.
|
||||
///
|
||||
/// # Note
|
||||
///
|
||||
/// If you don't have a complete [`User`] value, please use
|
||||
/// [`MessageEntity::text_mention_id`] instead.
|
||||
pub fn text_mention(user: User, offset: usize, length: usize) -> Self {
|
||||
Self {
|
||||
kind: MessageEntityKind::TextMention { user },
|
||||
offset,
|
||||
length,
|
||||
}
|
||||
}
|
||||
|
||||
/// Create a message entity representing a text link in the form of
|
||||
/// `tg://user/?id=...` that mentions user with `user_id`.
|
||||
pub fn user_mention(user_id: UserId, offset: usize, length: usize) -> Self {
|
||||
pub fn text_mention_id(user_id: UserId, offset: usize, length: usize) -> Self {
|
||||
Self {
|
||||
kind: MessageEntityKind::TextLink { url: user_id.url() },
|
||||
offset,
|
||||
|
|
Loading…
Add table
Reference in a new issue