An IRC bot written for node.js in CoffeeScript, successor of Vivio, the Java IRC bot.
First, clone the repository. In the root of the repository, run npm install
to get all of the dependencies.
For now, CoffeeScript is required to run Kurea. To install run npm install -g coffee-script
.
First, make a copy of config.json.sample
and call it config.json
. Edit this to make the bot join your server/channels and give it any other configuration details necessary. Next, in the root of the repository, run npm start
.
It is recommended that you use forever to run the bot on a server. The bot periodically updates itself from this repository and if the core is updated, the bot will shutdown. Additionally, there are some problems in node-irc that will crash the bot. Forever helps ensure the bot remains running. You can run the bot with forever start -c coffee Main.coffee
If you want to use MongoDB instead of nedb as your database engine, install MongoDB and set config.storage = "mongo"
.
Use grunt dev
to manage linting the source and running unit tests. If you don't have grunt installed, run npm install -g grunt-cli
.
This group of options comes straight from irc.Client in node-irc. They're either self explanatory or explained in the node-irc documentation.
{
"userName": "Kurea",
"realName": "Kurea IRC Bot",
"autoRejoin": false,
"autoConnect": true,
"secure": false,
"selfSigned": false,
"certExpired": false,
"floodProtection": true,
"floodProtectionDelay": "500",
"sasl": false,
"stripColors": false,
"channelPrefixes": "&#",
"messageSplit": "512",
The nickname the bot will attempt to log in as.
"nick": "Moop",
Whether raw output will be sent to std out or not.
"verbose": false,
Which user manager under src/auth to use, which is used to keep track of data per-user, such as permissions.
"auth": "nickserv",
The nickname of the bot's owner.
"owner": "YourUsername",
What type of database to use. Use nedb for a local db. Use mongo if you want to use mongo. Only mongo requires a storageURL.
"storage": "mongo",
"storageURL": "localhost:28017",
The port to open up Express on. Express will not be started if this key is falsey.
"webPort": 8080,
The port to display when outputting the URL to a channel. Uses webPort
if not set, and will not show if set to 80
.
"realPort": 80,
The root URL for generating the channel output.
"webURL": "http://localhost",
This object contains options for every instance of the bot that will be connected to a server. The key is the name of the bot, which is only used internally.
"bots": {
"Moop-Esper": {
Self explanatory connection options.
"server": "irc.esper.net",
"port": "6667",
"channels": ["#kellyirc", "#kurea"],
"password": "insert_password_here"
},
"Moop-FreeNode": {
"server": "irc.freenode.net",
"port": "6667",
"channels": ["#kurea"]
}
},
Some modules like WordnikModule or WolframModule require API keys to access their respective APIs. If you wish to use them, sign up for and supply your own key.
"apiKeys": {
"wordnik": "GET YOUR OWN",
"wolfram": "HAHA YOU WISH"
}
}
Is the bot too quiet? That means you have to turn on the modules. !toggle all-on
will fix that.