Struct Bot

Source
pub struct Bot { /* private fields */ }
Expand description

Provides methods to call the Bots API.

A Bot lets you call methods from the methods module.

let bot = tbot::from_env!("BOT_TOKEN");
let me = bot.get_me().call().await.unwrap();
dbg!(me);

Besides, a Bot is used to construct an EventLoop — a struct responsible for configuring handlers and listening to updates.

Implementations§

Source§

impl Bot

Source

pub fn new(token: String) -> Self

Constructs a new Bot.

Source

pub fn with_proxy(token: String, proxy: Proxy) -> Self

Constructs a Bot with the provided proxy.

Source

pub fn from_env_with_proxy(env_var: &'static str, proxy: Proxy) -> Self

Like Bot::from_env, but with a provided proxy.

Source

pub async fn download_file(&self, file: &File) -> Result<Vec<u8>, Download>

Downloads a file.

Source

pub fn from_env(env_var: &'static str) -> Self

Constructs a new Bot, extracting the token from the environment at runtime.

If you need to extract the token at compile time, use from_env!.

§Example
let bot = tbot::Bot::from_env("BOT_TOKEN");
let me = bot.get_me().call().await.unwrap();
dbg!(me);
Source

pub fn event_loop(self) -> EventLoop

Constructs an EventLoop.

Source

pub fn stateful_event_loop<S>(self, state: S) -> StatefulEventLoop<S>
where S: Send + Sync + 'static,

Constructs a stateful event loop.

Source

pub fn add_sticker_to_set<'a>( &'a self, user_id: Id, name: &'a str, png_sticker: impl Into<StickerForStickerSet<'a>>, emojis: &'a str, ) -> AddStickerToSet<'a>

Adds a new sticker to an existing sticker set.

Source

pub fn create_new_sticker_set<'a>( &'a self, user_id: Id, name: &'a str, title: &'a str, png_sticker: impl Into<StickerForStickerSet<'a>>, emojis: &'a str, ) -> CreateNewStickerSet<'a>

Creates a new sticker set.

Source

pub fn delete_chat_photo<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, ) -> DeleteChatPhoto<'a>

Deletes a chat’s photo.

Source

pub fn delete_chat_sticker_set<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, ) -> DeleteChatStickerSet<'a>

Deletes a chat’s sticker set.

Source

pub fn delete_message<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, message_id: Id, ) -> DeleteMessage<'a>

Deletes a message from a chat.

Source

pub fn delete_sticker_from_set<'a>( &'a self, sticker: &'a str, ) -> DeleteStickerFromSet<'a>

Deletes a sticker from a sticker set.

Source

pub fn edit_inline_caption<'a>( &'a self, inline_message_id: Ref<'a>, caption: impl Into<Text<'a>>, ) -> EditInlineCaption<'a>

Edits the caption of a media message sent via the inline mode.

Source

pub fn edit_inline_location<'a>( &'a self, inline_message_id: Ref<'a>, position: (f64, f64), ) -> EditInlineLocation<'a>

Edits a live location sent via the inline mode.

Source

pub fn edit_inline_media<'a>( &'a self, inline_message_id: Ref<'a>, media: impl Into<EditableMedia<'a>>, ) -> EditInlineMedia<'a>

Edits the media of a message sent via the inline mode.

Source

pub fn edit_inline_reply_markup<'a>( &'a self, inline_message_id: Ref<'a>, reply_markup: Keyboard<'a>, ) -> EditInlineReplyMarkup<'a>

Edits the inline keyboard of a message sent via the inline mode.

Source

pub fn edit_inline_text<'a>( &'a self, inline_message_id: Ref<'a>, text: impl Into<Text<'a>>, ) -> EditInlineText<'a>

Edits the text of a message sent via the inline mode.

Source

pub fn edit_message_caption<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, message_id: Id, caption: impl Into<Text<'a>>, ) -> EditMessageCaption<'a>

Edits the caption of a media message sent by the bot itself.

Source

pub fn edit_message_location<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, message_id: Id, position: (f64, f64), ) -> EditMessageLocation<'a>

Edits a live location sent by the bot itself.

Source

pub fn edit_message_media<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, message_id: Id, media: impl Into<EditableMedia<'a>>, ) -> EditMessageMedia<'a>

Edits a live location sent by the bot itself.

Source

pub fn edit_message_reply_markup<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, message_id: Id, reply_markup: Keyboard<'a>, ) -> EditMessageReplyMarkup<'a>

Edits the inline keyboard of a message sent by the bot itself.

Source

pub fn edit_message_text<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, message_id: Id, text: impl Into<Text<'a>>, ) -> EditMessageText<'a>

Edits the text of a message sent by the bot itself.

Exports a chat’s invite link.

Source

pub fn forward_message<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, from_chat_id: impl ImplicitChatId<'a>, message_id: Id, ) -> ForwardMessage<'a>

Forwards a message.

Source

pub fn get_chat<'a>(&'a self, chat_id: impl ImplicitChatId<'a>) -> GetChat<'a>

Gets information about a chat.

Source

pub fn get_file<'a>(&'a self, file_id: &'a impl AsFileId) -> GetFile<'a>

Gets information about a file.

Source

pub fn get_inline_game_high_scores<'a>( &'a self, inline_message_id: Ref<'a>, user_id: Id, ) -> GetInlineGameHighScores<'a>

Gets an excerpt from the high score table of a game sent via the inline mode.

Source

pub fn get_chat_administrators<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, ) -> GetChatAdministrators<'a>

Gets information about a chat’s admins.

Source

pub fn get_chat_member<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, user_id: Id, ) -> GetChatMember<'a>

Gets information about a chat’s member.

Source

pub fn get_chat_members_count<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, ) -> GetChatMembersCount<'a>

Gets a chat’s member count.

Source

pub fn get_message_game_high_scores<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, message_id: Id, user_id: Id, ) -> GetMessageGameHighScores<'a>

Gets an excerpt from the high score table of a game sent by the bot itself.

Source

pub fn get_me(&self) -> GetMe<'_>

Gets information about the bot.

Source

pub fn get_my_commands(&self) -> GetMyCommands<'_>

Gets the list of the bot’s commands.

Source

pub fn get_sticker_set<'a>(&'a self, name: &'a str) -> GetStickerSet<'a>

Gets a sticker set by its name.

Source

pub fn get_user_profile_photos(&self, user_id: Id) -> GetUserProfilePhotos<'_>

Gets a user’s profile photos.

Source

pub fn get_webhook_info(&self) -> GetWebhookInfo<'_>

Gets information about the bot’s webhook.

Source

pub fn kick_chat_member<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, user_id: Id, ) -> KickChatMember<'a>

Kicks a member out of a chat.

Source

pub fn leave_chat<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, ) -> LeaveChat<'a>

Leaves a chat.

Source

pub fn pin_chat_message<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, message_id: Id, ) -> PinChatMessage<'a>

Pins a message in a chat.

Source

pub fn promote_chat_member<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, user_id: Id, ) -> PromoteChatMember<'a>

Promotes a chat member to an admin.

Source

pub fn restrict_chat_member<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, user_id: Id, permissions: Permissions, ) -> RestrictChatMember<'a>

Restricts a chat member.

Source

pub fn send_animation<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, animation: Animation<'a>, ) -> SendAnimation<'a>

Sends an animation.

Source

pub fn send_audio<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, audio: Audio<'a>, ) -> SendAudio<'a>

Sends an audio.

Source

pub fn send_chat_action<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, action: Action, ) -> SendChatAction<'a>

Sends a chat action.

Source

pub fn send_contact<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, phone_number: &'a str, first_name: &'a str, ) -> SendContact<'a>

Sends a contact.

Source

pub fn send_game<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, game_short_name: &'a str, ) -> SendGame<'a>

Sends a game.

Source

pub fn send_dice<'a>(&'a self, chat_id: impl ImplicitChatId<'a>) -> SendDice<'a>

Sends a dice.

Source

pub fn send_document<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, document: Document<'a>, ) -> SendDocument<'a>

Sends a document.

Source

pub fn send_invoice<'a>( &'a self, chat_id: impl Into<Id>, title: &'a str, description: &'a str, payload: &'a str, provider_token: &'a str, start_parameter: &'a str, currency: &'a str, prices: &'a [LabeledPrice<'a>], ) -> SendInvoice<'a>

Sends an invoice.

Source

pub fn send_location<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, position: (f64, f64), ) -> SendLocation<'a>

Sends a location.

Source

pub fn send_media_group<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, media: &'a [GroupMedia<'a>], ) -> SendMediaGroup<'a>

Sends an album.

Source

pub fn send_message<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, text: impl Into<Text<'a>>, ) -> SendMessage<'a>

Sends a text message.

Source

pub fn send_photo<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, photo: Photo<'a>, ) -> SendPhoto<'a>

Sends a photo.

Source

pub fn send_poll<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, poll: &'a Any<'a>, ) -> SendPoll<'a>

Sends a poll.

Source

pub fn send_sticker<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, sticker: Sticker<'a>, ) -> SendSticker<'a>

Sends a sticker.

Source

pub fn send_venue<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, position: (f64, f64), title: &'a str, address: &'a str, ) -> SendVenue<'a>

Sends a venue.

Source

pub fn send_video_note<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, video_note: VideoNote<'a>, ) -> SendVideoNote<'a>

Sends a video note.

Source

pub fn send_video<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, video: Video<'a>, ) -> SendVideo<'a>

Sends a video.

Source

pub fn send_voice<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, voice: Voice<'a>, ) -> SendVoice<'a>

Sends a voice.

Source

pub fn set_chat_administrator_custom_title<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, user_id: Id, custom_title: &'a str, ) -> SetChatAdministratorCustomTitle<'a>

Sets a custom title for an admin in a chat.

Source

pub fn set_chat_description<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, description: &'a str, ) -> SetChatDescription<'a>

Sets a chat’s description.

Source

pub fn set_chat_permissions<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, permissions: Permissions, ) -> SetChatPermissions<'a>

Sets a group’s global permissions.

Source

pub fn set_chat_photo<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, photo: ChatPhoto<'a>, ) -> SetChatPhoto<'a>

Sets a chat’s photo.

Source

pub fn set_chat_sticker_set<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, sticker_set_name: &'a str, ) -> SetChatStickerSet<'a>

Sets a group’s sticker set.

Source

pub fn set_chat_title<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, title: &'a str, ) -> SetChatTitle<'a>

Sets a group’s title.

Source

pub fn set_inline_game_score<'a>( &'a self, inline_message_id: Ref<'a>, user_id: Id, score: u32, ) -> SetInlineGameScore<'a>

Sets a user’s new high score in a game sent via the inline mode.

Source

pub fn set_message_game_score<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, message_id: Id, user_id: Id, score: u32, ) -> SetMessageGameScore<'a>

Sets a user’s new high score in a game sent by the bot itself.

Source

pub fn set_my_commands<'a>( &'a self, commands: &'a [BotCommand<'a>], ) -> SetMyCommands<'a>

Sets the list of the bot’s commands.

Source

pub fn set_passport_data_errors<'a>( &'a self, user_id: Id, errors: &'a [Error<'a>], ) -> SetPassportDataErrors<'a>

Reports passport errors to the user.

Source

pub fn set_sticker_position_in_set<'a>( &'a self, sticker: &'a str, position: u32, ) -> SetStickerPositionInSet<'a>

Changes a sticker’s position in a sticker set.

Source

pub fn set_sticker_set_thumb<'a>( &'a self, user_id: Id, name: &'a str, thumb: Option<&'a StickerSetThumb<'a>>, ) -> SetStickerSetThumb<'a>

Sets the thumb of a sticker set.

Source

pub fn stop_inline_location<'a>( &'a self, inline_message_id: Ref<'a>, ) -> StopInlineLocation<'a>

Stops a live location sent via the inline mode.

Source

pub fn stop_message_location<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, message_id: Id, ) -> StopMessageLocation<'a>

Stops a live location sent by the bot itself.

Source

pub fn stop_poll<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, message_id: Id, ) -> StopPoll<'a>

Stops a poll.

Source

pub fn unban_chat_member<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, user_id: Id, ) -> UnbanChatMember<'a>

Lifts all restrictions from a group’s member.

Source

pub fn unpin_chat_message<'a>( &'a self, chat_id: impl ImplicitChatId<'a>, ) -> UnpinChatMessage<'a>

Unpins a chat message.

Source

pub fn upload_sticker_file<'a>( &'a self, user_id: Id, png_sticker: &'a [u8], ) -> UploadStickerFile<'a>

Uploads a sticker file.

Trait Implementations§

Source§

impl ChatActionLoopBotExt for Bot

Source§

fn send_chat_action_in_loop<'a>( &self, chat_id: impl ImplicitChatId<'a>, action: Action, ) -> BoxFuture<'a, Result<Infallible, MethodCall>>

Sends a chat action in an infinite loop, returning only if failed to send the action. Read more
Source§

impl Clone for Bot

Source§

fn clone(&self) -> Bot

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Bot

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl Freeze for Bot

§

impl !RefUnwindSafe for Bot

§

impl Send for Bot

§

impl Sync for Bot

§

impl Unpin for Bot

§

impl !UnwindSafe for Bot

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more