NNTP Client for Rust
extern crate nntp;
use nntp::{Article, NNTPStream};
fn main() {
let mut nntp_stream = match NNTPStream::connect(("nntp.aioe.org", 119)) {
Ok(stream) => stream,
Err(e) => panic!("{}", e)
};
match nntp_stream.capabilities() {
Ok(lines) => {
for line in lines.iter() {
print!("{}", line);
}
},
Err(e) => panic!(e)
}
match nntp_stream.list() {
Ok(groups) => {
for group in groups.iter() {
println!("Name: {}, High: {}, Low: {}, Status: {}", group.name, group.high, group.low, group.status)
}
},
Err(e) => panic!(e)
};
match nntp_stream.group("comp.sys.raspberry-pi") {
Ok(_) => (),
Err(e) => panic!(e)
}
match nntp_stream.article_by_number(6187) {
Ok(Article{headers, body}) => {
for (key, value) in headers.iter() {
println!("{}: {}", key, value)
}
for line in body.iter() {
print!("{}", line)
}
},
Err(e) => panic!(e)
}
match nntp_stream.article_by_id("<cakj55F1dofU5@mid.individual.net>") {
Ok(Article{headers, body}) => {
for (key, value) in headers.iter() {
println!("{}: {}", key, value)
}
for line in body.iter() {
print!("{}", line)
}
},
Err(e) => panic!(e)
}
let _ = nntp_stream.quit();
}
MIT
Licensed under either of
- Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.