chatbot
=======
An extensible chatbot written in rust.
[![Circle CI](https://circleci.com/gh/jwilm/chatbot.svg?style=svg)](https://circleci.com/gh/jwilm/chatbot)
## About
The construction is inspired by Hubot's extensibility. There is an ever-growing
list of [service adapters][] and [message handlers][] as part of the project.
To get started, you might make a `main` function that looks like the following.
Once you get that running, check out the [documentation][] to add more packaged
[message handlers][] or write your own.
```rust
#[macro_use(handler)]
extern crate chatbot;
use chatbot::Chatbot;
use chatbot::adapter::CliAdapter;
fn main() {
let mut bot = Chatbot::new("chatbot_name");
let echo = handler!("EchoHandler", r"echo .+", |_, msg| {
Some(msg.to_owned())
});
bot.add_handler(echo);
bot.add_adapter(CliAdapter::new());
bot.run();
}
```
## Plans
Check out the [issue tracker][] for an up-to-date list of plans for the chat
bot.
## Contributing
Contributions are very welcome on this project. To get started, fork the repo
and clone it locally. You should be able to just do `cargo run` and get a
working ping and github handler on the command line. If you want to run the test
program using the Slack adapter, do `cargo run -- --adapter slack`.
[service adapters]: http://chatbot.rs/chatbot/adapter/trait.ChatAdapter.html#implementors
[message handlers]: http://chatbot.rs/chatbot/handler/trait.MessageHandler.html#implementors
[documentation]: http://chatbot.rs/chatbot/
[issue tracker]: https://github.com/jwilm/chatbot/issues
[mio]: https://github.com/carllerche/mio