A Steem FOSSbot, by personz
Full documentation is available here.
The goal of this project is to bring a high quality and fully customisable bot to anyone who is willing to put in the time to set up a simple server and make their own customisations.
For more information, see the discussion doc page.
Voter is a bot for Steem which decides which posts to vote for and casts votes on behalf of a registered user. It is built as a Node.js server and intended for deployment on Heroku, with other installation options planned.
This means you own the server and control it completely. There are no fees or catches, the software is free to use. You create a unique API key for your own access, and for granting access to others if you wish.
You control the running of the bot, set the algorithm and view stats and logs with a simple web dashboard, which will be live at your Heroku URL. See Usage below for more details.
Lastly, check out our ethos. Bots can be a divisive subject and this document clearly lays out our position.
The bot works by scoring each new post using a collection of rules which are set by you. If a post scores above a threshold, it is voted for. The threshold is automatically adjusted based on a raised average of recent posts, and is also proportional to the number of votes in the last 24 hours, to keep votes per day at around a max of 40 (by default).
Rules are based on a collection of metrics which this app interprets from raw Steem data. For example, you could add 10 score points for every image, or deduct 2 points for every minute since the post was created.
These rules, called an algorithm, are editable through the server app Dashboard, and you can also view run statistics, logs and tests here.
The server is designed to be triggered periodically for a bot run iteration, for example every 30 or 60 minutes. This can be done on Heroku with an add-on, or manually on the dashboard provided, or even by a HTTP GET method to
/run-bot?json=true&api_key=BOT_API_KEY endpoint, which is used internally and can be used externally by a separate app.
Please see the discussion doc page for in depth details on the curation algorithm and how to use it to create a custom bot, as well as a discussion on bots on Steem in general. For technical details see the algorithm and metrics doc page.
Open the bot dashboard using your Heroku app root URL, as above. All operations are available through the dashboard.
The operations you can perform are:
For more detail on the dashboard (and more screen shots!), see the dashboard overview doc
Dashboard with active session
Stats for post metrics breakdown
See the installation guide, but if you want to jump right in then you can deploy this server to Heroku with one click.
Please see also the installation guide for instructions on how to keep your server up to date with further releases of Voter.
If you are updating from before v0.3.0 you will need to do a clean reinstall, so please back up your data before upgrading.
All original programming is under the CC0 license and thus completely open and free to use in any capacity. It's in the spirit of the project that it is open to all.
Included in this repo are the following libraries, and all licenses are in the root folder of the project, except where stated:
Several other Node NPM libraries are used as dependencies. Their source is not included in this repo, but is downloaded when the server is built. Thanks to their creators!
We are not required to supply terms because we are not running a service. However, obviously you are at your own liability if you use this software. See the license for full legal text.
Contributions via pull request are very welcome, as are issues logged via the GitHub issue tracker. You can also suggest features, such as metrics you'd like to see, UI upgrades, etc.
Also, please note that development of this project was done piece-wise, and there are many commits with very little added, as a commit was required in order to test any code change.
Finally, as mentioned in the discussion, this project is not intended as a customer ready solution, it is a kind of "hobby grade" project. As such, do not expect consumer level support.