Butler

Butler is a life betterment robot.

He is split into two main groups:

  • Butler.Adapter - adapters allow butler to communicate with other protocols and communications platforms.

  • Butler.Plugin - plugins are what empower butler. They provide an api to respond to specific commands and perform actions and replies.

Adapters

Butler.Adapter is a generic behaviour that allows Butler to support multiple chat platforms. There are two officialy supported adapters:

You can read more about developing adapters in Butler.Adapter.

Plugins

Butler.Plugin provides an api for developers to add functionality to Butler. Plugins listen to events emitted by Butler and can choose to respond or not. Here is an example plugin:

defmodule TestCount do

use Butler.Plugin

def respond("test count", tests) do
  count = Enum.count(tests)
  {:reply, "The count is #{count}", tests}
end

def hear("test", tests) do
  {:noreply, ["test"|tests]}
end

end

If you want to read more about creating your own plugins in Butler.Plugin.

Summary

Functions

Starts Butler

Stops Butler

Functions

start(type, opts \\ [])

Starts Butler.

stop(arg1)

Stops Butler.