A simple IRC bot that responds to commands. Inspired by Hubot. Implemented in Python.
Python Clojure
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
clojure
matchers
.gitignore
LICENSE
Procfile
README.rst
nigel.py
requirements.txt

README.rst

Nigelbot

A simple IRC bot that responds to commands. Inspired by Hubot. Implemented in Python.

Motivation

Why not just use Hubot instead of writing a bot from scratch? It's because Hubot is implemented in CoffeeScript and runs on node.js. The IRC adapter for hubot is utterly broken and as we know, node.js is cancer.

Installation

$ virtualenv env --no-site-packages
$ source env/bin/activate
$ pip install -r requirements.txt
$ export SIFTER=yourapikey
$ export SNIPT_API_USER=sniptusername
$ export SNIPT_API_KEY=sniptapikey

Running

To have Nigel join the #room:

$ python nigel.py room

Or,

$ export ROOM=room
$ python nigel.py

You can ignore all messages from a certain user by adding this environment variable:

$ export IGNORED="user1,user2"

This is useful if you don't care about what your build server says in the channel.

Available matchers

brb

People often say things like all: brb, back in 20min and then when they come back they're like all: back. This matcher will track how long the user has been gone and tell them if they overshot their estimate.

arthur's g+

You can ask Nigel if Arthur's ISP is blocking Google+ today. It will respond to "is g+ blocked at arthur's house today?".

sifter

It will scan the room for mentions of Sifter issue numbers and reply with the issues's title and URL. Prefix numbers with #.

sandwich

It will respond to "make me a sandwich" and "sudo make me a sandwich".

greeter

When someone greets the room with "all: hello" and the like, nigel will respond.

gifter

It will scan for .gif, .png, and .jpg images and add them to Snipt.net. It will also respond to "<botname>: show me the gif" with random links to saved images.

Deploying to Heroku

$ git clone git://github.com/honza/nigel.git
$ cd nigel
$ heroku create --stack cedar
$ heroku config:add ROOM=room SIFTER=yourapikey SNIPT_API_USER=sniptuser SNIPT_API_KEY=sniptapikey
$ git push heroku master
$ heroku scale nigel=1

Credit

Mr. cz is responsible for the awesome name of this bot.

License

BSD, short and sweet