mirror of
https://github.com/teloxide/teloxide.git
synced 2024-12-21 22:15:13 +01:00
Make BotMessageExt
for Requester
instead of Bot
This commit is contained in:
parent
94db1757dc
commit
6f8eaf803b
1 changed files with 31 additions and 40 deletions
|
@ -2,21 +2,17 @@
|
|||
//!
|
||||
//! [`Bot`]: crate::Bot
|
||||
use crate::{prelude::*, types::*};
|
||||
use teloxide_core::{
|
||||
payloads::*,
|
||||
requests::{JsonRequest, MultipartRequest},
|
||||
};
|
||||
|
||||
/// Syntax sugar for [`Message`] manipulations.
|
||||
///
|
||||
/// [`Message`]: crate::types::Message
|
||||
pub trait BotMessagesExt {
|
||||
pub trait BotMessagesExt: Requester {
|
||||
/// This function is the same as [`Bot::forward_message`],
|
||||
/// but can take in [`Message`] to forward it.
|
||||
///
|
||||
/// [`Bot::forward_message`]: crate::Bot::forward_message
|
||||
/// [`Message`]: crate::types::Message
|
||||
fn forward<C>(&self, to_chat_id: C, message: &Message) -> JsonRequest<ForwardMessage>
|
||||
fn forward<C>(&self, to_chat_id: C, message: &Message) -> Self::ForwardMessage
|
||||
where
|
||||
C: Into<Recipient>;
|
||||
|
||||
|
@ -30,42 +26,42 @@ pub trait BotMessagesExt {
|
|||
message: &Message,
|
||||
latitude: f64,
|
||||
longitude: f64,
|
||||
) -> JsonRequest<EditMessageLiveLocation>;
|
||||
) -> Self::EditMessageLiveLocation;
|
||||
|
||||
/// This function is the same as [`Bot::stop_message_live_location`],
|
||||
/// but can take in [`Message`] to stop the live location in it.
|
||||
///
|
||||
/// [`Bot::stop_message_live_location`]: crate::Bot::stop_message_live_location
|
||||
/// [`Message`]: crate::types::Message
|
||||
fn stop_live_location(&self, message: &Message) -> JsonRequest<StopMessageLiveLocation>;
|
||||
fn stop_live_location(&self, message: &Message) -> Self::StopMessageLiveLocation;
|
||||
|
||||
/// This function is the same as [`Bot::set_message_reaction`],
|
||||
/// but can take in [`Message`] to set a reaction on it.
|
||||
///
|
||||
/// [`Bot::set_message_reaction`]: crate::Bot::set_message_reaction
|
||||
/// [`Message`]: crate::types::Message
|
||||
fn set_reaction(&self, message: &Message) -> JsonRequest<SetMessageReaction>;
|
||||
fn set_reaction(&self, message: &Message) -> Self::SetMessageReaction;
|
||||
|
||||
/// This function is the same as [`Bot::pin_chat_message`],
|
||||
/// but can take in [`Message`] to pin it.
|
||||
///
|
||||
/// [`Bot::pin_chat_message`]: crate::Bot::pin_chat_message
|
||||
/// [`Message`]: crate::types::Message
|
||||
fn pin(&self, message: &Message) -> JsonRequest<PinChatMessage>;
|
||||
fn pin(&self, message: &Message) -> Self::PinChatMessage;
|
||||
|
||||
/// This function is the same as [`Bot::unpin_chat_message`],
|
||||
/// but can take in [`Message`] to unpin it.
|
||||
///
|
||||
/// [`Bot::unpin_chat_message`]: crate::Bot::unpin_chat_message
|
||||
/// [`Message`]: crate::types::Message
|
||||
fn unpin(&self, message: &Message) -> JsonRequest<UnpinChatMessage>;
|
||||
fn unpin(&self, message: &Message) -> Self::UnpinChatMessage;
|
||||
|
||||
/// This function is the same as [`Bot::edit_message_text`],
|
||||
/// but can take in [`Message`] to edit it.
|
||||
///
|
||||
/// [`Bot::edit_message_text`]: crate::Bot::edit_message_text
|
||||
/// [`Message`]: crate::types::Message
|
||||
fn edit_text<T>(&self, message: &Message, text: T) -> JsonRequest<EditMessageText>
|
||||
fn edit_text<T>(&self, message: &Message, text: T) -> Self::EditMessageText
|
||||
where
|
||||
T: Into<String>;
|
||||
|
||||
|
@ -74,52 +70,51 @@ pub trait BotMessagesExt {
|
|||
///
|
||||
/// [`Bot::edit_message_caption`]: crate::Bot::edit_message_caption
|
||||
/// [`Message`]: crate::types::Message
|
||||
fn edit_caption(&self, message: &Message) -> JsonRequest<EditMessageCaption>;
|
||||
fn edit_caption(&self, message: &Message) -> Self::EditMessageCaption;
|
||||
|
||||
/// This function is the same as [`Bot::edit_message_media`],
|
||||
/// but can take in [`Message`] to edit it.
|
||||
///
|
||||
/// [`Bot::edit_message_media`]: crate::Bot::edit_message_media
|
||||
/// [`Message`]: crate::types::Message
|
||||
fn edit_media(
|
||||
&self,
|
||||
message: &Message,
|
||||
media: InputMedia,
|
||||
) -> MultipartRequest<EditMessageMedia>;
|
||||
fn edit_media(&self, message: &Message, media: InputMedia) -> Self::EditMessageMedia;
|
||||
|
||||
/// This function is the same as [`Bot::edit_message_reply_markup`],
|
||||
/// but can take in [`Message`] to edit it.
|
||||
///
|
||||
/// [`Bot::edit_message_reply_markup`]: crate::Bot::edit_message_reply_markup
|
||||
/// [`Message`]: crate::types::Message
|
||||
fn edit_reply_markup(&self, message: &Message) -> JsonRequest<EditMessageReplyMarkup>;
|
||||
fn edit_reply_markup(&self, message: &Message) -> Self::EditMessageReplyMarkup;
|
||||
|
||||
/// This function is the same as [`Bot::stop_poll`],
|
||||
/// but can take in [`Message`] to stop the poll in it.
|
||||
///
|
||||
/// [`Bot::stop_poll`]: crate::Bot::stop_poll
|
||||
/// [`Message`]: crate::types::Message
|
||||
fn stop_poll_message(&self, message: &Message) -> JsonRequest<StopPoll>;
|
||||
fn stop_poll_message(&self, message: &Message) -> Self::StopPoll;
|
||||
|
||||
/// This function is the same as [`Bot::delete_message`],
|
||||
/// but can take in [`Message`] to delete it.
|
||||
///
|
||||
/// [`Bot::delete_message`]: crate::Bot::delete_message
|
||||
/// [`Message`]: crate::types::Message
|
||||
fn delete(&self, message: &Message) -> JsonRequest<DeleteMessage>;
|
||||
fn delete(&self, message: &Message) -> Self::DeleteMessage;
|
||||
|
||||
/// This function is the same as [`Bot::copy_message`],
|
||||
/// but can take in [`Message`] to copy it.
|
||||
///
|
||||
/// [`Bot::copy_messages`]: crate::Bot::copy_message
|
||||
/// [`Message`]: crate::types::Message
|
||||
fn copy<C>(&self, to_chat_id: C, message: &Message) -> JsonRequest<CopyMessage>
|
||||
fn copy<C>(&self, to_chat_id: C, message: &Message) -> Self::CopyMessage
|
||||
where
|
||||
C: Into<Recipient>;
|
||||
}
|
||||
|
||||
impl BotMessagesExt for Bot {
|
||||
fn forward<C>(&self, to_chat_id: C, message: &Message) -> JsonRequest<ForwardMessage>
|
||||
impl<R> BotMessagesExt for R
|
||||
where
|
||||
R: Requester,
|
||||
{
|
||||
fn forward<C>(&self, to_chat_id: C, message: &Message) -> Self::ForwardMessage
|
||||
where
|
||||
C: Into<Recipient>,
|
||||
{
|
||||
|
@ -131,58 +126,54 @@ impl BotMessagesExt for Bot {
|
|||
message: &Message,
|
||||
latitude: f64,
|
||||
longitude: f64,
|
||||
) -> JsonRequest<EditMessageLiveLocation> {
|
||||
) -> Self::EditMessageLiveLocation {
|
||||
self.edit_message_live_location(message.chat.id, message.id, latitude, longitude)
|
||||
}
|
||||
|
||||
fn stop_live_location(&self, message: &Message) -> JsonRequest<StopMessageLiveLocation> {
|
||||
fn stop_live_location(&self, message: &Message) -> Self::StopMessageLiveLocation {
|
||||
self.stop_message_live_location(message.chat.id, message.id)
|
||||
}
|
||||
|
||||
fn set_reaction(&self, message: &Message) -> JsonRequest<SetMessageReaction> {
|
||||
fn set_reaction(&self, message: &Message) -> Self::SetMessageReaction {
|
||||
self.set_message_reaction(message.chat.id, message.id)
|
||||
}
|
||||
|
||||
fn pin(&self, message: &Message) -> JsonRequest<PinChatMessage> {
|
||||
fn pin(&self, message: &Message) -> Self::PinChatMessage {
|
||||
self.pin_chat_message(message.chat.id, message.id)
|
||||
}
|
||||
|
||||
fn unpin(&self, message: &Message) -> JsonRequest<UnpinChatMessage> {
|
||||
fn unpin(&self, message: &Message) -> Self::UnpinChatMessage {
|
||||
self.unpin_chat_message(message.chat.id).message_id(message.id)
|
||||
}
|
||||
|
||||
fn edit_text<T>(&self, message: &Message, text: T) -> JsonRequest<EditMessageText>
|
||||
fn edit_text<T>(&self, message: &Message, text: T) -> Self::EditMessageText
|
||||
where
|
||||
T: Into<String>,
|
||||
{
|
||||
self.edit_message_text(message.chat.id, message.id, text)
|
||||
}
|
||||
|
||||
fn edit_caption(&self, message: &Message) -> JsonRequest<EditMessageCaption> {
|
||||
fn edit_caption(&self, message: &Message) -> Self::EditMessageCaption {
|
||||
self.edit_message_caption(message.chat.id, message.id)
|
||||
}
|
||||
|
||||
fn edit_media(
|
||||
&self,
|
||||
message: &Message,
|
||||
media: InputMedia,
|
||||
) -> MultipartRequest<EditMessageMedia> {
|
||||
fn edit_media(&self, message: &Message, media: InputMedia) -> Self::EditMessageMedia {
|
||||
self.edit_message_media(message.chat.id, message.id, media)
|
||||
}
|
||||
|
||||
fn edit_reply_markup(&self, message: &Message) -> JsonRequest<EditMessageReplyMarkup> {
|
||||
fn edit_reply_markup(&self, message: &Message) -> Self::EditMessageReplyMarkup {
|
||||
self.edit_message_reply_markup(message.chat.id, message.id)
|
||||
}
|
||||
|
||||
fn stop_poll_message(&self, message: &Message) -> JsonRequest<StopPoll> {
|
||||
fn stop_poll_message(&self, message: &Message) -> Self::StopPoll {
|
||||
self.stop_poll(message.chat.id, message.id)
|
||||
}
|
||||
|
||||
fn delete(&self, message: &Message) -> JsonRequest<DeleteMessage> {
|
||||
fn delete(&self, message: &Message) -> Self::DeleteMessage {
|
||||
self.delete_message(message.chat.id, message.id)
|
||||
}
|
||||
|
||||
fn copy<C>(&self, to_chat_id: C, message: &Message) -> JsonRequest<CopyMessage>
|
||||
fn copy<C>(&self, to_chat_id: C, message: &Message) -> Self::CopyMessage
|
||||
where
|
||||
C: Into<Recipient>,
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue