diff --git a/README.md b/README.md index 03106f90..50f2d55b 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ A full-featured framework that empowers you to easily build [Telegram bots](https://telegram.org/blog/bot-revolution) using the [`async`/`.await`](https://rust-lang.github.io/async-book/01_getting_started/01_chapter.html) syntax in [Rust](https://www.rust-lang.org/). It handles all the difficult stuff so you can focus only on your business logic. -# Getting started +## Getting started 1. Be sure that you are up to date: ```bash $ rustup update stable @@ -29,44 +29,26 @@ $ rustup update stable teloxide = "0.1.0" ``` -### Writing first bot -First, create bot with [@botfather](https://t.me/botfather). After creating, botfather give you -token in format `123456789:somemanyletters`. +## Writing your first bot +First, create a new bot using [@botfather](https://t.me/botfather), and after that you'll get a token in format `123456789:somemanyletters`. -Next, open yout `main.rs` file. Let's create a simple echo bot: +Next, open `main.rs` file, because we're gonna write a ping-pong-bot! ```rust -use futures::stream::StreamExt; -use teloxide::{ - dispatching::{ - chat::{ChatUpdate, ChatUpdateKind, Dispatcher}, - update_listeners::polling_default, - SessionState, - }, - requests::Request, - Bot, -}; +use teloxide::prelude::*; #[tokio::main] async fn main() { - let bot = &Bot::new("1061598315:AAErEDodTsrqD3UxA_EvFyEfXbKA6DT25G0"); - let mut updater = Box::pin(polling_default(bot)); - let handler = |_, upd: ChatUpdate| async move { - if let ChatUpdateKind::Message(m) = upd.kind { - let msg = bot.send_message(m.chat.id, m.text); - msg.send().await.unwrap(); - } - SessionState::Continue(()) - }; - let mut dp = Dispatcher::<'_, (), _>::new(handler); - println!("Starting the message handler."); - loop { - let u = updater.next().await.unwrap(); - match u { - Err(e) => eprintln!("Error: {}", e), - Ok(u) => { - let _ = dp.dispatch(u).await; - } - } - } + std::env::set_var("RUST_LOG", "ping_pong_bot=trace"); + std::env::set_var("RUST_LOG", "teloxide=error"); + pretty_env_logger::init(); + log::info!("Starting the ping-pong bot!"); + + Dispatcher::::new(Bot::new("MyAwesomeToken")) + .message_handler(&|ctx: DispatcherHandlerCtx| async move { + ctx.answer("pong").send().await?; + Ok(()) + }) + .dispatch() + .await; } ```