diff options
author | Till Hoeppner | 2014-11-21 11:31:55 +0100 |
---|---|---|
committer | Till Hoeppner | 2014-11-21 11:31:55 +0100 |
commit | 6ed12a0993d56330bb008adc86bfb5ebe4320583 (patch) | |
tree | c572f69b19c82ee298004948f7a13a2dbebd0076 /examples/01.rs | |
parent | d738bcd85bc9d7ea47d8995a57a594ead6bb0f73 (diff) | |
download | irsc-6ed12a0993d56330bb008adc86bfb5ebe4320583.tar.gz irsc-6ed12a0993d56330bb008adc86bfb5ebe4320583.tar.xz irsc-6ed12a0993d56330bb008adc86bfb5ebe4320583.zip |
Upload to crates.io plus fixes for changes in Rust
Diffstat (limited to 'examples/01.rs')
-rw-r--r-- | examples/01.rs | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/examples/01.rs b/examples/01.rs new file mode 100644 index 0000000..9756119 --- /dev/null +++ b/examples/01.rs @@ -0,0 +1,38 @@ +#![feature(globs, slicing_syntax)] + +extern crate irsc; + +use irsc::server::Server; +use irsc::color::bold; +use irsc::event; +use irsc::event::{ Event, ParseResult, PrivMsg }; + +static NAME: &'static str = "rusticbot"; +static DESC: &'static str = "A bot, written in Rust."; + +fn callback(arg: (Server, Event)) { + let (mut server, event) = arg; + match event.command[] { + event::PRIVMSG => { + let privmsg: PrivMsg = ParseResult::parse(event).unwrap(); + let response = format!("You wrote: {}", bold(privmsg.content[])); + server.msg(privmsg.from.nickname[], response[]).unwrap(); + }, + _ => () + } +} + +fn main() { + let mut s = Server::new(); + s.connect("irc.freenode.org".into_string(), 6667).unwrap(); + s.nick(NAME).unwrap(); + s.user(NAME, "*", "*", DESC).unwrap(); + s.join("#botzoo").unwrap(); + + s.msg("flan3002", "Hey, I'm your example bot!").unwrap(); + + s.events.lock().register(&callback); + + // Dedicate this thread to listening and event processing + s.listen().unwrap(); +} |