Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/honza/nigel

A simple IRC bot that responds to commands. Inspired by Hubot. Implemented in Python.
https://github.com/honza/nigel

Last synced: about 5 hours ago
JSON representation

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

Awesome Lists containing this project

README

        

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 ": 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