1extern crate xmpp;
2
3use xmpp::jid::Jid;
4use xmpp::client::ClientBuilder;
5use xmpp::plugins::messaging::{MessagingPlugin, MessageEvent};
6use xmpp::plugins::presence::{PresencePlugin, Show};
7use xmpp::sasl::mechanisms::Plain;
8
9use std::env;
10
11fn main() {
12 let jid: Jid = env::var("JID").unwrap().parse().unwrap();
13 let mut client = ClientBuilder::new(jid.clone()).connect().unwrap();
14 client.register_plugin(MessagingPlugin::new());
15 client.register_plugin(PresencePlugin::new());
16 let pass = env::var("PASS").unwrap();
17 client.connect(&mut Plain::new(jid.node.clone().expect("JID requires a node"), pass)).unwrap();
18 client.plugin::<PresencePlugin>().set_presence(Show::Available, None).unwrap();
19 loop {
20 let event = client.next_event().unwrap();
21 if let Some(evt) = event.downcast::<MessageEvent>() {
22 println!("{:?}", evt);
23 }
24 }
25}