Jump to content

Kaguya 1.0.0

   (0 reviews)

1 Screenshot

About This File

Kaguya

A small but powerful IRC bot

Installation

  1. Add kaguya to your list of dependencies in mix.exs:
def deps do
  [{:kaguya, "~> x.y.z"}]
end
  1. Run mix deps.get

  2. Ensure kaguya is started before your application:

def application do
  [applications: [:kaguya]]
end
  1. Configure kaguya in config.exs:
config :kaguya,
  server: "my.irc.server",
  port: 6666,
  bot_name: "kaguya",
  channels: ["#kaguya"]

Usage

By default Kaguya won't do much. This is an example of a module which will perform a few simple commands:

defmodule Kaguya.Module.Simple do
  use Kaguya.Module, "simple"

  handle "PRIVMSG" do
    match ["!ping", "!p"], :pingHandler
    match "hi", :hiHandler
    match "!say ~message", :sayHandler
  end

  defh pingHandler, do: reply "pong!"
  defh hiHandler(%{user: %{nick: nick}}), do: reply "hi #{nick}!"
  defh sayHandler(%{"message" => response}), do: reply response
end

This module defines four commands to be handled:

  • !ping and !p are aliased to the same handler, which has the bot respond pong!.
  • hi will cause the bot to reply saying "hi" with the persons' nick
  • !say [some message] will have the bot echo the message the user gave.

The handler macro can accept up to two different parameters, a map which destructures a message struct, and a map which destructures a match from a command.

You can find a more full featured example in example/basic.ex.

Configuration

  • server - Hostname or IP address to connect with. String.
  • server_ip_type - IP version to use. Can be either inet or inet6
  • port - Port to connect on. Integer.
  • bot_name - Name to use by bot. String.
  • channels - List of channels to join. Format: #<name>. List
  • help_cmd - Specifies command to act as help. Defaults to .help. String
  • use_ssl - Specifies whether to use SSL or not. Boolean
  • reconnect_interval - Interval for reconnection in ms. Integer. Not used.
  • server_timeout - Timeout(ms) that determines when server gets disconnected. Integer. When omitted Kaguya does not verifies connectivity with server. It is recommended to set at least few minutes.

User Feedback

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest

  • This will not be shown to other users.
  • Add a review...

    ×   Pasted as rich text.   Paste as plain text instead

      Only 75 emoji are allowed.

    ×   Your link has been automatically embedded.   Display as a link instead

    ×   Your previous content has been restored.   Clear editor

    ×   You cannot paste images directly. Upload or insert images from URL.

    Loading...
×
×
  • Create New...