irc-slack-echo
irc-slack-echo copied to clipboard
An IRC bot that echoes activity to slack, and supports mapping IRC usernames to Slack usernames.
IRC Slack Bot
We built this bot to echo conversations from #rdio on Freenode to a Slack chat.
It's designed so that it can be easily configured to work with your own IRC channel / Slack instance combo.
Setup
- Make sure you're running node 0.10.26. Other versions might work, but are untested.
- Fork the repo and run
npm install - Create a new Incoming Web Hook on Slack (https://your.slack.com/services/new/incoming-webhook)
- Create a new Outgoing Web Hook on Slack and grab the token from it.
- Open the config file and update the parameters. Mostly, you need to make sure that the Outgoing Web Hook points at the server that gets set up in
lib/slack.js. - Update the Outgoing Web Hook with your server info and trigger words. (We use
ircbotand!). - Find a server to run it on, and
node .
Note that the user map listens for IRC mentions with an optional @ character, and automatically wraps the Slack username in <@username> so that Slack sends notifications appropriately.
Slack Commands
IRCBot listens for commands based on your trigger words. At Rdio, we use
both ircbot and ! as triggers, so we can use ircbot say hello and
!say hello interchangeably.
The bot will strip the : character from slack commands, so ircbot: say hello will also work properly.
In order for Slack commands to work, you must make sure that the Outgoing
Web Hook and the web server in lib/slack.js are set up correctly.
Currently supported Slack commands:
ping-- bot responds withpongshow-- lists Slack <-> IRC handle mappings.say-- tell the bot to say things in IRC on your behalflink-- link an IRC handle to a Slack handle Usage:link [ircName]links your slack handle to an irc handle.link [slackName] [ircName]links [slackName] to [ircName].unlink-- unlink an IRC handle from a Slack handle Usage:unlinkunlinks all irc names associated with your Slack handleunlink [ircName]unlinks your slack handle from [ircName]unlink [slackName] [ircName]unlinks [slackName] from [ircName]
IRC Commands
Currently supported IRC commands:
ping(and a few variations) -- bot responds withpong.