aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md48
1 files changed, 14 insertions, 34 deletions
diff --git a/README.md b/README.md
index ff71b86..273fd24 100644
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@ This library is supposed to be a thin layer over the IRC protocol, doing all the
## Example
-Compiles and works with `rustc 1.1.0-nightly (ce1150b9f 2015-05-04)` and `fbb7251493ff5a9bc42f849b9b781e69aef9d184` of this library.
+Compiles and tested with `rustc 1.2.0-nightly (8937ec100 2015-06-15)` and `63838165c31397fec199bf99c96497a1169c4d52` of this library.
Run with
@@ -38,69 +38,49 @@ and join [#botzoo on irc.mozilla.org](http://irc.lc/mozilla/botzoo).
```rust
extern crate irsc;
extern crate env_logger;
-#[cfg(feature = "ssl")]
extern crate openssl;
-use std::borrow::ToOwned;
-use std::borrow::Cow::*;
-
-use irsc::client::Client;
use irsc::color::bold;
use irsc::*;
use irsc::Command::*;
use irsc::Reply::*;
-#[cfg(feature = "ssl")]
use openssl::ssl::{ Ssl, SslContext, SslMethod };
static NAME: &'static str = "rusticbot";
static DESC: &'static str = "A bot, written in Rust.";
-fn callback(server: &mut Client, msg: &Message) {
- match Command::from_message(msg) {
- Some(PRIVMSG(to, content)) => {
- let from = msg.prefix().and_then(Ident::parse).unwrap();
+fn callback(server: &mut Client, msg: &Message, event: Option<Event>) {
+ match event {
+ Some(Event::Command(PRIVMSG(to, content))) => {
+ let from = msg.ident().unwrap();
let response = match msg.msg_type {
MsgType::Irc => format!("{} wrote: {}", from.nickname, bold(&content)),
- MsgType::Ctcp => format!("{} emoted: {}", from.nickname, bold(&content["ACTION ".len()..]))
+ MsgType::Ctcp => format!("{} emoted: {}", from.nickname,
+ bold(&content["ACTION ".len()..]))
};
// only send to channels, to prevent recursion when we are pm'ed
// technically, there are other prefixes than '#', but ignoring them is fine
if to.starts_with("#") {
- server.send(PRIVMSG(to, Owned(response))).unwrap();
+ server.msg(&to, &response);
}
},
- _ => ()
- }
-
- match Reply::from_message(msg) {
- Some(RPL_WELCOME(_)) => {
- server.send(JOIN(vec![Borrowed("#botzoo")], vec![])).unwrap();
+ Some(Event::Reply(RPL_WELCOME(_))) => {
+ server.join("#botzoo", None);
},
_ => ()
}
}
-#[cfg(feature = "ssl")]
-fn connect(s: &mut Client) {
- let ssl = Ssl::new(&SslContext::new(SslMethod::Tlsv1).unwrap()).unwrap();
- s.connect_ssl("irc.mozilla.org".to_owned(), 6697, ssl).unwrap();
-}
-
-#[cfg(not(feature = "ssl"))]
-fn connect(s: &mut Client) {
- s.connect("irc.mozilla.org".to_owned(), 6667).unwrap();
-}
-
fn main() {
env_logger::init().unwrap();
let mut s = Client::new();
- connect(&mut s);
- s.send(NICK(Borrowed(NAME))).unwrap();
- s.send(USER(Borrowed(NAME), Borrowed("*"), Borrowed("*"), Borrowed(DESC))).unwrap();
+ let ssl = Ssl::new(&SslContext::new(SslMethod::Tlsv1).unwrap()).unwrap();
+ s.connect_ssl("irc.mozilla.org", 6697, ssl);
+ s.register(NAME, NAME, DESC);
// Dedicate this thread to listening and event processing
- s.listen(callback).unwrap();
+ s.listen(Some(callback));
}
```