Customizable Steem bot framework

in #utopian-io6 years ago (edited)

Repository

https://github.com/bostrot/steembot

What is the project about?

A simple and light steem bot framework in NodeJS where plugins can easily be integrated and managed. It can be used to create a ton of plugins which will split ressources and handle the broadcasting part for you. This concept should show a way to unify development on steem bots and help creating useful and harmonic bots. While keeping the "core" really small, new plugins can easily be added by copying them into the plugins folder and if necessary some custom config strings can be added too.

Added Features

Framework

Altough the core exists of very little code the concept of a bot framework with plugins is very important to me. It primarily imports everything from the plugins folder and tries to use it as standard modules while also adding the predefined main libraries. The core exists of an async function imported from the async package which will handle one request at a time to keep this as light as possible while also not hitting API/Blockchain limits.

Chatbot Plugin

This plugin uses Dialogflow intends (huge lists of predefined messages) to answer most common replies like simple Small Talk. If this fails or cannot find an answer to the message it jumps over to the cleverbot API which then answers the message with it's own algorithm.

rSBetCa.gif

Autovote Plugin

While this plugin is the most basic of those listed here it can be pretty important. With a bit logic written by yourself you can create complex algorithms to vote for e.g. keywords that you like or your favorite authors.

Autofollow Plugin

In some workflows it is necessary to follow people automatically. Here is a little example on how you could do that with custom filters. Currently it is set to follow those who are engaging with the community by creating new posts.

fb9iieO.gif

Technology Stack

Roadmap

  • Add sqlite db for better caching
  • Add some helper functions
  • API to let plugins work with each other
  • Docs for plugin development
  • Add more useful plugin examples

How to contribute?

I am highly active on GitHub so just send a pull request or create an issue if you have suggestions, bugs or just want to contribute. There are still some major parts missing in this project. If you have any idea on how to take care of them feel free to hit me up.

GitHub Account

https://github.com/bostrot

Sort:  
  • I really like the idea of plugins for expansion and reuse of code
  • Good job linting, and for the comments.

Your contribution has been evaluated according to Utopian policies and guidelines, as well as a predefined set of questions pertaining to the category.

To view those questions and the relevant answers related to your post, click here.


Need help? Write a ticket on https://support.utopian.io/.
Chat with us on Discord.
[utopian-moderator]

Thank you for your review, @helo!

So far this week you've reviewed 3 contributions. Keep up the good work!

Hey @bostrot
Thanks for contributing on Utopian.
We’re already looking forward to your next contribution!

Want to chat? Join us on Discord https://discord.gg/h52nFrV.

Vote for Utopian Witness!

Congratulations @bostrot! You have completed the following achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of comments received

Click on the badge to view your Board of Honor.
If you no longer want to receive notifications, reply to this comment with the word STOP

Do not miss the last post from @steemitboard:
SteemitBoard and the Veterans on Steemit - The First Community Badge.

Do you like SteemitBoard's project? Then Vote for its witness and get one more award!

Hi @bostrot! We are @steem-ua, a new Steem dApp, computing UserAuthority for all accounts on Steem. We are currently in test modus upvoting quality Utopian-io contributions! Nice work!

Author, you are a professional, you have a great blog. I signed up for you and would appreciate it if you would sign up for me in return. Let's help each other to develop =) # followback