All Projects → Luminarys → Kaguya

Luminarys / Kaguya

Licence: isc
A small, powerful, and modular IRC bot

Programming Languages

elixir
2628 projects

Labels

Projects that are alternatives of or similar to Kaguya

Warren
🐇 Kotlin/JVM, tested, IRC v3.2 client state management and observing
Stars: ✭ 8 (-88.73%)
Mutual labels:  irc
Alectro
A terminal IRC client in Rust.
Stars: ✭ 47 (-33.8%)
Mutual labels:  irc
Continuum Desktop
Matrix client in kotlin
Stars: ✭ 60 (-15.49%)
Mutual labels:  irc
Zonkeynet
RADIO Mesh Network
Stars: ✭ 12 (-83.1%)
Mutual labels:  irc
Progress Bot
High-tech weaponized moe progress delivery bot for IRC, Discord, and web
Stars: ✭ 38 (-46.48%)
Mutual labels:  irc
Marvin
The paranoid bot (framework)
Stars: ✭ 51 (-28.17%)
Mutual labels:  irc
Irc Colors.js
Color and formatting for irc bots made easy. Inspired by colors.js and cli-color.
Stars: ✭ 26 (-63.38%)
Mutual labels:  irc
Weechat Autosort
Automatically keep your buffers sorted.
Stars: ✭ 69 (-2.82%)
Mutual labels:  irc
Hammerspoon
Staggeringly powerful macOS desktop automation with Lua
Stars: ✭ 8,540 (+11928.17%)
Mutual labels:  irc
Girc
💣 girc is a flexible IRC library for Go 👌
Stars: ✭ 59 (-16.9%)
Mutual labels:  irc
Juno
a seriously modern IRC daemon written from scratch in Perl. designed to be ridiculously extensible, painlessly reloadable, and excessively configurable
Stars: ✭ 12 (-83.1%)
Mutual labels:  irc
Java Twirk
Small, basic library for communication via the Twitch chat. Java 8 compatible
Stars: ✭ 36 (-49.3%)
Mutual labels:  irc
Biboumi
IRC gateway for XMPP
Stars: ✭ 51 (-28.17%)
Mutual labels:  irc
Inspircd
A modular C++ IRC server (ircd).
Stars: ✭ 867 (+1121.13%)
Mutual labels:  irc
Inspircd Docker
InspIRCd Docker Image
Stars: ✭ 60 (-15.49%)
Mutual labels:  irc
Charla
A IRC Server / Daemon written in Python using the circuits Application Framework.
Stars: ✭ 8 (-88.73%)
Mutual labels:  irc
Honeybot
🛩 A python IRC bot with simple plugins dev. Ignited in mauritius, first-timers friendly!
Stars: ✭ 48 (-32.39%)
Mutual labels:  irc
Oragono
A modern IRC server (daemon/ircd) written in Go.
Stars: ✭ 1,171 (+1549.3%)
Mutual labels:  irc
Inspircd Contrib
Third-party InspIRCd module repository.
Stars: ✭ 61 (-14.08%)
Mutual labels:  irc
Homura
an IRC bouncer written in JavaScript for Node.js
Stars: ✭ 54 (-23.94%)
Mutual labels:  irc

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.
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].