#![allow(clippy::all)]
mod bot;
mod chat_id;
pub mod client;
pub mod entities;
mod error;
mod helpers; mod input_file;
mod polling;
mod reply_markup;
pub mod types;
mod updater;
pub mod gen_methods;
mod gen_types;
#[cfg(feature = "webhook")]
mod webhook;
#[cfg(feature = "bot-mapping")]
pub mod bot_mapping;
#[cfg(feature = "client-ureq")]
pub mod client_sync;
pub use bot::Bot;
pub use chat_id::ChatId;
pub use client::{BotClient, FormBody, FormPart, ReqwestClient};
pub use entities::{parse_entities, parse_entity, MessageEntityExt, ParsedEntity};
pub use error::BotError;
pub use input_file::{InputFile, InputFileOrString};
pub use polling::{Poller, UpdateHandler};
pub use reply_markup::ReplyMarkup;
pub use types::*;
pub use updater::Updater;
#[cfg(feature = "webhook")]
pub use webhook::WebhookServer;
#[cfg(feature = "bot-mapping")]
pub use bot_mapping::BotMapping;
#[cfg(feature = "client-ureq")]
pub use client_sync::SyncBot;
#[derive(Debug, Clone, serde::Serialize, serde::Deserialize, PartialEq)]
#[serde(tag = "type", rename_all = "lowercase")]
pub enum InputMedia {
Photo(types::InputMediaPhoto),
Video(types::InputMediaVideo),
Audio(types::InputMediaAudio),
Document(types::InputMediaDocument),
Animation(types::InputMediaAnimation),
}
impl From<types::InputMediaPhoto> for InputMedia {
fn from(v: types::InputMediaPhoto) -> Self {
InputMedia::Photo(v)
}
}
impl From<types::InputMediaVideo> for InputMedia {
fn from(v: types::InputMediaVideo) -> Self {
InputMedia::Video(v)
}
}
impl From<types::InputMediaAudio> for InputMedia {
fn from(v: types::InputMediaAudio) -> Self {
InputMedia::Audio(v)
}
}
impl From<types::InputMediaDocument> for InputMedia {
fn from(v: types::InputMediaDocument) -> Self {
InputMedia::Document(v)
}
}
impl From<types::InputMediaAnimation> for InputMedia {
fn from(v: types::InputMediaAnimation) -> Self {
InputMedia::Animation(v)
}
}
impl Default for crate::gen_types::InlineKeyboardButton {
fn default() -> Self {
Self {
text: String::new(),
icon_custom_emoji_id: None,
style: None,
url: None,
callback_data: None,
web_app: None,
login_url: None,
switch_inline_query: None,
switch_inline_query_current_chat: None,
switch_inline_query_chosen_chat: None,
copy_text: None,
callback_game: None,
pay: None,
}
}
}
pub mod framework;
pub use framework::{
CallbackQueryHandler, CommandHandler, Context, ContinueGroups, ConversationHandler,
ConversationOpts, Dispatcher, DispatcherAction, DispatcherOpts, EndConversation, EndGroups,
FilterExt, Handler, HandlerResult, InMemoryStorage, KeyStrategy, MessageHandler, NextState,
};
#[cfg(test)]
mod tests;