1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
//! Crate with bindings to telegram bot api. For usage details see example below and tests in `basic_req_res_tests.rs`. //! You can find all implemented methods in `requests` module. //! //! # Example //! Simple echo bot. It listens all incoming messages and echos text messages, on other messages it replies with text "I can echo only text message". //! ```no_run //! use std::env; //! //! use futures::future::Future; //! use futures::stream::Stream; //! use rutebot::client::Rutebot; //! use rutebot::requests::{GetUpdates, SendMessage}; //! use rutebot::responses::Update; //! //! fn main() { //! let token_env = env::var_os("TELEGRAM_TOKEN") //! .expect("Please specify your bot's token in the TELEGRAM_TOKEN environment variable."); //! let token = token_env.to_string_lossy(); //! //! let rutebot = Rutebot::new(token); //! let get_updates = GetUpdates::new_with_timeout(20); //! let updates = rutebot //! .incoming_updates(get_updates) //! .for_each(move |update| { //! let create_reply_request = |update: Update| { //! let message = update.message?; //! let response_message = format!("Hello {}", message.from?.first_name); //! let reply = //! SendMessage::new_reply(message.chat.id, &response_message, message.message_id); //! Some(rutebot.prepare_api_request(reply)) //! }; //! //! if let Some(reply) = create_reply_request(update) { //! tokio::spawn(reply.send().then(|_| Ok(()))); //! } //! Ok(()) //! }) //! .then(|_| Ok(())); //! //! tokio::run(updates); //! } //! ``` /// Telegram bot api responses pub mod responses; /// Types for sending requests to telegram bot api pub mod client; /// Requests for `client::Rutebot`. Each request struct represent some method telegram bot api pub mod requests; /// Errors definitions pub mod error; mod updates_pool_stream;