extern crate telegram_bot; use telegram_bot::{Api, ListeningMethod, ListeningAction}; mod feature; use feature::{Feature, FeatureResult}; fn main() { let api = Api::from_env("TELEGRAM_BOT_TOKEN").unwrap(); println!("api started: {:?}", api.get_me()); let mut features = feature::init(); let mut listener = api.listener(ListeningMethod::LongPoll(None)); let res = listener.listen(|u| { if let Some(m) = u.message { for f in &mut features { match (**f).handle(api.clone(), m.clone()) { Ok(r) => { match r { FeatureResult::Handled => break, FeatureResult::Skip => continue, }; } Err(e) => { println!("Error in feature {}: {}", f.name(), e); } }; } }; Ok(ListeningAction::Continue) }); if let Err(e) = res { panic!(e); } }