Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
An IRC Bot written in Common Lisp.
Common Lisp
branch: master

This branch is 6 commits behind davazp:master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
contrib
.gitignore
COPYING
README.org
config.lisp
nilbot-channels.lisp
nilbot-commands.lisp
nilbot-notification.lisp
nilbot-parser.lisp
nilbot-system.lisp
nilbot-users.lisp
nilbot.asd
nilbot.lisp
packages.lisp
utils.lisp

README.org

#+startup showall

nilbot

nilbot is an IRC Bot written in Common Lisp.

Getting started

Nilbot has as requirements cl-irc and elephant. Both are avalaible via quicklisp and it is the recommended way to install it.

Get the nilbot source with

git clone https://davazp@github.com/davazp/nilbot.git

The first time you run nilbot you will need edit config.lisp to set settings as the IRC server, the default prefix character, and so. Then, start your lisp implementation, load the nilbot system and initialize the database with:

(ql:quickload (list "sqlite" "cl-irc" "elephant"))
(asdf:load-system :nilbot)

You will need to introduce yourself to nilbot, so you can type

(add-user "YOUR-NICK" "admin")
(add-channel "#YOUR-CHANNEL")

in the nilbot package to add the first user and channel respectively.

Finally, you can start nilbot with

(nilbot:start)

Make sure you’re registered in the irc server. otherwise, it won’t recognize you

Introduction

Nilbot is a command driven bot. It accepts commands from both private messages and channel messages. Commands may be prefixed in several ways as:

,command

and

nilbot: command

You must prefix your command if you ask it in an IRC channel indeed of privately. You can configure the prefix character in the config.lisp file.

An important command is help. It will show you help about a command. If the argument is ommited, then it will list the commands avalaible for you.

The tracker

The nilbot main entity is the ticket. You can create a new ticket with

,add <task description>

Also you can list the open tickets with

,list

The tickets are contextual. Namely, nilbot records where you create it. So list in a channel #a will list the open tickets for the channel #a. You can assign to you a ticket with

,take N

or mark the ticket #N as finished with

,done N

To limit the list command to tickets in a given status, type

,list <status>

Finally, you can search tickets with

,search <some words>.
Permissions

Nilbot provides different categories of users: undesirable, nobody, user and admin. By default, a user is a ‘nobody’. The granted permissions to each category is inclusive. In other words, each category adds priviledges to the previous ones. The lowest category undesirable is special. Nilbot will ignore every request of undesirable users. Register a user as undesirable to ban it.

Something went wrong with that request. Please try again.