Rust Telegram Bot. A framework offering Telegram Bot API bindings for the Rust programming language.
For details see the docs.
A simple greetings bot. Replies to all messages with text "Hello %USERNAME%"
You can run the following example with cargo run --example simplebot
.
```rust 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 tokenenv = env::varos("TELEGRAMTOKEN") .expect("Please specify your bot's token in the TELEGRAMTOKEN environment variable."); let token = tokenenv.tostring_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);
}
```