extern crate loirc;
extern crate encoding;
use std::env;
use encoding::all::UTF_8;
use loirc::{connect, Code, Event, Prefix, ReconnectionSettings};
fn main() {
let args: Vec<String> = env::args().collect();
let channel = args.get(1).expect("Channel must be given as an argument.");
let (writer, reader) = connect("irc.freenode.net:6667",
ReconnectionSettings::DoNotReconnect,
UTF_8).unwrap();
writer.raw(format!("USER {} 8 * :{}\n", "peekaboo", "peekaboo"));
writer.raw(format!("NICK {}\n", "peekaboo"));
for event in reader.iter() {
println!("{:?}", event);
match event {
Event::Message(msg) => {
if msg.code == Code::RplWelcome {
writer.raw(format!("JOIN {}\n", channel));
}
if msg.code == Code::Join {
if let Some(prefix) = msg.prefix {
match prefix {
Prefix::User(user) => {
if user.nickname == "peekaboo" {
writer.raw(format!("PRIVMSG {} :{}\n", channel, "peekaboo"));
writer.raw(format!("QUIT :{}\n", "peekaboo"));
}
}
_ => {}
}
}
}
}
_ => {}
}
}
}