aboutsummaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs27
1 files changed, 24 insertions, 3 deletions
diff --git a/src/main.rs b/src/main.rs
index 0880467..5e2cd01 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -1,7 +1,7 @@
1extern crate telegram_bot; 1extern crate telegram_bot;
2use telegram_bot::{Api, ListeningMethod, ListeningAction}; 2use telegram_bot::{Api, ListeningMethod, ParseMode, MessageType, ListeningAction};
3extern crate rustc_serialize; 3extern crate rustc_serialize;
4use rustc_serialize::json; 4use std::ascii::AsciiExt;
5 5
6mod feature; 6mod feature;
7use feature::{Feature, FeatureResult}; 7use feature::{Feature, FeatureResult};
@@ -15,8 +15,29 @@ fn main() {
15 let mut listener = api.listener(ListeningMethod::LongPoll(None)); 15 let mut listener = api.listener(ListeningMethod::LongPoll(None));
16 let res = listener.listen(|u| { 16 let res = listener.listen(|u| {
17 if let Some(m) = u.message { 17 if let Some(m) = u.message {
18 if let &MessageType::Text(ref s) = &m.msg {
19 if (s).to_ascii_lowercase().contains("luggas zeig mir deine features") {
20 let mut msg = String::new();
21 for f in &features {
22 msg.push_str(&format!("`{}`, ", f.name()));
23 }
24 let msg = msg;
25 let pos = msg.len() - 2;
26 let mut msg = msg;
27 msg.remove(pos);
28 if let Err(e) = api.send_message(m.chat.id(),
29 msg,
30 Some(ParseMode::Markdown),
31 None,
32 Some(m.message_id),
33 None) {
34 println!("{}", e);
35 }
36 return Ok(ListeningAction::Continue);
37 }
38 }
18 for f in &mut features { 39 for f in &mut features {
19 match (**f).handle(api.clone(), m.clone()) { 40 match f.handle(api.clone(), m.clone()) {
20 Ok(r) => { 41 Ok(r) => {
21 match r { 42 match r {
22 FeatureResult::Handled => break, 43 FeatureResult::Handled => break,