Skip to content
A Slack bot that summarizes using the Agolo.com API
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
node_modules Implement site blacklist Apr 28, 2016
resources Rename multidoc screenshot and add single-doc screenshot Apr 29, 2016
.gitignore Rename slack-secrets.js to secrets.js Apr 28, 2016
LICENSE
Procfile Run as a bot process Apr 10, 2016
README.md Update README.md Apr 30, 2016
agolo-slackbot.js
blacklisted-sites.js
heroku-http-server.js
package.json Implement site blacklist Apr 28, 2016

README.md

Agolo Slack Bot

A Slack bot that

  1. scans every message in every channel it's invited to
  2. looks for URLs pointing to web pages
  3. immediately summarizes the contents of the web page using the Agolo Summarizer API.

Screenshots

Single document:

Multiple documents:

Features

  • Generates instantaneous summaries.
  • Automatically detects URLs posted to Slack. No one needs to use a Slack command or address the bot directly.
  • Summarizes multiple URLs together if they are mentioned in the same message. Makes full use of Agolo's powerful multi-doc summarization system.
  • Even responds to URLs in Direct Messages to the bot. If DM'd, the bot provides a private summary, not posted to any channel.
  • Allows you to blacklist a list of sites. Comes with a suggested blacklist.
  • Only works in channels where the bot is present. If you feel that the bot is annoying in a specific channel, just kick it out of that channel.

Setting up the bot

You can either run the bot locally (i.e., on any machine with Node.js installed) or on Heroku. If you plan to run it on Heroku, please look at this page on the repo wiki.

Here's an overview of the steps to get this bot up and running:

  1. Get Slack bot integration credentials.
  2. Get Agolo developer credentials.
  3. Download this repository as zip. Then, unzip.
  4. Enter the credentials into the bot's configuration.
  5. Deploy & run the bot.

Get credentials

On this page, set up your bot and get the Slack token. Use this image as the profile picture.

Go to dev.agolo.com and sign up for an account to get the URL and an auth token.

Configure the bot

On the machine you want to use as your server, download this repo and unzip it.

Manually create a file called secrets.js in the repo's directory.

secrets.js should contain secret tokens that should not be git pushed. It has been added to the repo's .gitignore to prevent accidental git pushes.

Here is what secret.js should look like:

module.exports = {
  slackToken: function () {
    return 'SLACK_TOKEN_FOR_THIS_BOT';
  },
  agoloURL: function() {
  	return 'AGOLO_API_URL';
  },
  agoloToken: function() {
  	return 'AGOLO_TOKEN';
  }
};

Run the bot

On the command line:

node agolo-slackbot.js

Because it's a long-running process (i.e, a Node server), you should run it in screen or as a background process. You could also use a process monitor like ForeverJS or Supervisor, but this is probably overkill.

Use the bot

You need to invite the bot into a Slack channel for it to start listening to that channel.

Then, whenever someone posts a link, the bot will post a summary to the channel. If someone posts multiple links in the same message, those web pages will get summarized together.

Or, you could Direct Message the bot and mention a URL. It will DM you back with the summary.

You can’t perform that action at this time.