Skip to content
This repository has been archived by the owner on Aug 10, 2022. It is now read-only.
Efreak edited this page May 18, 2015 · 3 revisions

Steam Chat Bot

Simplified Interface for a steam chat bot, by several people

Installing & Running

  1. Install NPM on your system. We probably won't help you with this beyond the following:
  • Linux: Install it from your package manager, or better, use this script
  • Windows, Mac, or Linux: Install from here
  1. Install the bot: npm install node-steam-chat-bot
  • Alternatively, if you want to run the version in git, npm install Efreak/node-steam-chat-bot (or whichever fork you want)
  1. Edit the config file ./node_modules/steam-chat-bot/example.js and save it as ./mybot.js
  2. node mybot.js

TODO:

Ideas to improve the bot and avoid heroku's limitations
  • Heroku is now only allowing free servers to run 18 hours a day. These improvements are still planned as they'll be useful elsewhere, but they're getting a lower priority.
  • Move logs into the database
  • Abstract the database functionality away from firebase and make it available to other plugins (logs, infobot). Firebase is not enough for chat logs, so provide other options
    • Firebase hacker plan (100mb) is definitely plenty for just configuration, and probably for the infobot stuff as well. No good for logs, unless you only want error logs, or you don't want to keep full history (my logs are >200mb)
    • Heroku's PostgreSQL hobby-dev plan's 10k rows is probably about the same as Firebase's hacker plan.
    • MongoLab offers 500mb for free. This is probably the best free storage you can get. This is probably the same as Heroku's MongoLab sandbox plan (496mb) and AppHarbor's MongoLab Free Plan (0.5gb)
    • Scalingo has perhaps better offerings than Heroku, with free 512mb offerings for PostgreSQL and MongoDB
    • OpenShift is probably the best of all, as it allows you to have a "DIY" cartridge with 1gb of persistent data. The only downside is that you'll have to do all the setup yourself.
  • Perhaps add options for other providers than heroku as well, allowing the bot to be easily run on Scalingo, red hat's openshift (1gb persistent storage on free plan and custom domains), others. (basically specify the environment variable containing certain information in the config file).
  • Moving logs, etc into the database will require some kind of caching mechanism, as most providers don't guarantee uptime for the databases. For example, heroku guarantees "less than four hours" of database downtime per month for the free database, meaning that we'll have to accept it not being available.

I'd like to get some kind of notification when someone messages the bot, or says my name in chat. This could probably be extended rather easily to allow users to give the bot their own Pushbullet API keys so they can get similar notifications when someone wants them. Basic pushbullet integration is done.

Improve pushbullet plugin to use oauth and openid for pushbullet and steam--interface using the browser, not private messages, though maybe leave PMs as an option as well.

Move the webserver out of the logtrigger and into chatBot.js. This is required to allow other triggers to use it, such as pushbullet or any other future plugins (like serving basic files?)