Telegram bot api bindings for rust programming language. For details see docs
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". ```rust use hyper::rt::{Future, Stream};
use rutebot::client::Rutebot; use rutebot::requests::getupdates::GetUpdates; use rutebot::requests::sendmessage::send_text::SendText; use rutebot::responses::{Message, Update};
fn main() { let rutebot = Rutebot::new("your token"); let getupdates = GetUpdates { timeout: Some(20), ..GetUpdates::new() }; let updates = rutebot.incomingupdates(getupdates) .then(Ok) .foreach(move |x| { let replymsgrequest = match x { Ok(Update { message: Some(Message { messageid, ref chat, text: Some(ref text), .. }), .. }) => { let request = SendText::newreply(chat.id, text, messageid); Some(request) } Ok(Update { message: Some(Message { messageid, ref chat, .. }), .. }) => { let request = SendText::newreply(chat.id, "This is not text...", messageid); Some(request) } Err(e) => { println!("Got error while getting updates {:?}", e); None } _ => None }; if let Some(reply) = replymsgrequest { let sendfuture = rutebot.prepareapirequest(reply) .send() .map(|| ()) .maperr(|x| println!("Got error while sending message: {:?}", x)); hyper::rt::spawn(sendfuture); } Ok(()) });
hyper::rt::run(updates);
} ```