Skip to content

A pluggable SlackBot to easily interface with your Slack instance.

License

Notifications You must be signed in to change notification settings

nbar1/pluggable-slackbot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pluggable Slackbot

A library to create an easily pluggable slackbot for your Slack instance.

Installation

npm install pluggable-slackbot or yarn add pluggable-slackbot

Usage

var pluggableSlackbot = require('pluggable-slackbot');

var bot = new pluggableSlackbot({
	token: 'your-slack-api-token', // requires legacy API token
	name: 'MyBot',
	iconUrl: 'url-to-bot-icon',
	pluginPath: __dirname + '/plugins',
});

Invoking in Slack

To invoke a reponse from your bot on Slack, you can either message the bot directly or reference it in a channel by starting your message with the bots name like SlackBot, flip a coin

Creating Plugins

You can create plugins and store them in the specified pluginPath.

There are example plugins in the example-plugins folder.

Required plugin methods

{
	/**
	 * config
	 *
	 * @type {object}
	 * @prop {bool} enabled
	 */
	config: {
		enabled: true,
	},

	/**
	 * matchRegex
	 *
	 * @type {regex}
	 */
	matchRegex: /string to match/g,

	/**
	 * run
	 *
	 * @param {object} [message]
	 * @returns {(object|bool)}
	 */
	run: function (message) {
		return {
			message: '',
			options: {},
		};

		/**
		 * returning false will abort the plugins response
		 */
	},
}

Optional plugin methods

{
	/**
	 * initialize
	 *
	 * @returns {void}
	 */
	initialize: function () {
		/**
		 * Anything that needs to be initialized when the plugin is
		 * first loaded goes here. This will only run when the bot
		 * is (re)started.
		 */
	},
}

About

A pluggable SlackBot to easily interface with your Slack instance.

Resources

License

Stars

Watchers

Forks

Packages

No packages published