tipsbot
v1.11.0
Published
a Slack bot that gives you useful tips
Downloads
30
Maintainers
Readme
tipsbot
A Slack bot that gives you daily tips
Tipsbot comes preconfigured with tips from Pragmatic Programmer (great book, you should read it!) but allows you to supply your own tips if you so wish.
Installation
$ npm install -g tipsbot
Running Tipsbot
To run the Tipsbot you must have an API token to authenticate the bot on your slack channel. Once you get it you just have to run:
BOT_API_KEY=somesecretkey tipsbot
Configuration
The Tipsbot is configurable through environment variables. There are several variable available:
| Environment variable | Description |
|----------------------|-------------|
| BOT_API_KEY
| (required) The API token needed by the bot to connect to your Slack organization |
| BOT_FILE_PATH
| (optional) Variable that allows you to use a different tips dataset, defaults to tips from the Pragmatic Programmer |
| BOT_NAME
| (optional) The name of your bot, defaults to 'Tipsbot'
|
| BOT_CHANNEL
| (optional) The Slack-channel Tipsbot will post to, defaults to 'general'
|
| BOT_START_INDEX
| (optional) The index for the first tips from the dataset, defaults to 0
|
| BOT_SCHEDULE
| (optional) Cron string that specifies when to post tips, defaults to 0 9 * * 1,2,3,4,5
which is 09:00 on mon-fri |
| BOT_ICON_URL
| (optional) URL to an image that will be used for the bot's avatar, defaults to ''
|
Launching the bot from source
If you downloaded the source code of the bot you can run it using NPM with:
$ npm start
Don't forget to set your BOT_API_KEY
environment variable before doing so. Alternatively you can also create a file called token.js
in the root folder and put your token there (you can use the token.js.sample
file as a reference).
Using Tipsbot programmatically
var tipsbot = require('tipsbot')
var bot = tipsbot.create({
token: <STRING>,
name: <STRING>,
filePath: <STRING>,
channel: <STRING>,
schedule: <STRING>,
startIndex: <NUMBER>,
iconURL: <STRING>,
});
bot.run();
The options object supplied to the create
method will override environment variables.
Format of JSON dataset
If you supply your own JSON file with tips then make sure if follows this structure:
[
{
heading: '<STRING>',
details: '<STRING>'
},
...
]
Deploy
Uses semantic-release to help with the versioning and deployment to npm. To deploy new versions to npm, to the following:
$ git add <FILES TO STAGE>
$ npm run commit #will run tests locally, if they pass semantic-release will start interactive commit process
$ git push #will run tests tests on Travis-CI, if they pass semantic-release will deploy a new version to npm
Shout out
A lot about Tipsbot have been stolen shamelessly from Luciano Mamminos awesome NorrisBot
License
Licensed under MIT License. © Simon Johansson.