agoloprem / agolo-slackbot

A Slack bot that summarizes using the Agolo.com API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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. git clone this repository.
  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, run git clone to get this repository.

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.

About

A Slack bot that summarizes using the Agolo.com API

License:MIT License


Languages

Language:JavaScript 100.0%