https://github.com/davazp/nilbot
An IRC Bot written in Common Lisp.
https://github.com/davazp/nilbot
bot common-lisp irc
Last synced: 6 months ago
JSON representation
An IRC Bot written in Common Lisp.
- Host: GitHub
- URL: https://github.com/davazp/nilbot
- Owner: davazp
- License: gpl-3.0
- Created: 2011-02-09T21:22:24.000Z (almost 15 years ago)
- Default Branch: master
- Last Pushed: 2012-12-09T19:21:52.000Z (about 13 years ago)
- Last Synced: 2025-06-05T07:39:17.408Z (7 months ago)
- Topics: bot, common-lisp, irc
- Language: Common Lisp
- Homepage:
- Size: 219 KB
- Stars: 5
- Watchers: 2
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.org
- License: COPYING
Awesome Lists containing this project
README
#+startup showall
* nilbot
nilbot is an IRC Bot written in Common Lisp.
*** Getting started
Nilbot has as requirements [[http://common-lisp.net/project/cl-irc/][cl-irc]] and [[http://common-lisp.net/project/elephant/][elephant]]. Both are
avalaible via [[http://www.quicklisp.org/][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:
#+BEGIN_SRC common-lisp
(ql:quickload (list "sqlite" "cl-irc" "elephant"))
(asdf:load-system :nilbot)
#+END_SRC
You will need to introduce yourself to nilbot, so you can type
#+BEGIN_SRC common-lisp
(add-user "YOUR-NICK" "admin")
(add-channel "#YOUR-CHANNEL")
#+END_SRC
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
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
Finally, you can search tickets with
: ,search .
***** 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.