Community Bot - A Voting Bot for Steem Communities

in #utopian-io7 years ago (edited)

communitybot.jpg

I recently built a community-based voting bot for the #TheAlliance and have published the source code to GitHub (with their blessing) so that other communities on Steem can use it as well if they would like.

The bot has a list of members who either delegate a certain amount of Steem Power or pay a certain amount of liquid STEEM monthly (depending on the settings), and it simply goes through the list of members and upvotes their last post. This way members of a community can all chip in a little bit to build up a nice upvote every so often for their posts.

Membership Settings

The software currently contains the following settings for determining membership:

  "membership": {
    "start_date": "2/20/2018",  // Date when membership starts
    "membership_period_days": 30, // The length of time for which the dues pay
    "delegation_vests": 60000,  // Min amount of delegation required for membership
    "full_delegation_vests": 120000,  // Min amount of delegation required for membership with no dues
    "dues_steem": 1,  // Dues required if delegation is less than "full_delegation_vests"
    "dues_steem_no_delegation": 2 // Dues required of delegation is less than "delegation_vests"
  }

There are a few options for becoming a member. In the example above, if someone delegates 120,000 VESTS (~ 60 SP) then they are a member as long as their delegation remains as indicated by the "full_delegation_vests" property.

Alternatively if someone does not want to delegate then they can pay 2 STEEM for a 30 day membership as indicated by the "dues_steem_no_delegation" and "membership_period_days" properties.

And finally there's an in-between option where someone may delegate 60,000 VESTS (~30 SP) and pay 1 STEEM for a 30 day membership as indicated by the "delegation_vests" and "dues_steem" properties.

Each community that runs such a bot can choose which of these options they want to support and what the required delegation and/or dues amounts are.

Sponsorship

There is also an option for members to be able to sponsor other members to join, for example if someone doesn't have enough STEEM or SP to pay / delegate. To sponsor another member you would send a transfer memo to the bot in this format:

$sponsor @username

This will apply the amount of VESTS specified in the "full_delegation_vests" property from the user who sent the transfer memo to the user specified by "@username", assuming the user who sent the memo has delegated enough to cover that. Currently sponsorship is only supported via the SP delegation option.

API

The software also includes an API to see the current list of members and their settings. This is exposed as "/api/members" endpoint and will return a JSON array like the following:

"members": [
{
"name": "member_account_1",
"valid_thru": "2018-02-20T01:23:20.774Z",
"vesting_shares": 122820.475855,
"total_dues": 0,
"joined": "2018-02-20T01:23:20.773Z",
"sponsoring": [],
"sponsor": null,
"full_delegation": true
},
{
"name": "member_account_2",
"valid_thru": "2018-07-20T01:23:20.774Z",
"vesting_shares": 0,
"total_dues": 10,
"joined": "2018-02-20T01:23:20.774Z",
"sponsoring": [],
"sponsor": null,
"full_delegation": false
},
...

In the example above you can see that "member_account_1" has delegated over 120,000 VESTS so they have a full membership as long as their delegation remains. The "valid_thru" property is not applicable in this case when "full_delegation" is set to true.

The second member - "member_account_2" - has paid 10 STEEM in dues, meaning they have purchased 150 days of membership (since 2 STEEM buys 30 days based on the example settings used). In this case the "valid_thru" property shows how long their membership is currently valid.

You can also see if the member was sponsored by another member or if they are sponsoring any other members.

Run a bot for your community

As I mentioned this was built specifically for #TheAlliance and as such the features were made to cater to their specific needs. The code is open source so you can feel free to modify it as necessary to support the needs of your community.

If you would like some help hosting/running/modifying the bot for your community feel free to reach out to me on Discord or Steemit.Chat and hopefully we can work something out!



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Always working pro-community and pro-blockchain, that's why you have my witness vote, always!

Wow this is impressive! It looks like a lot of work, but what do I know, I can barely code a macro on my excel spreadsheets.

I’m interested to see how communities adopt this, I’ve been on Steemit a month but I mostly see power dynamics of a powerful Steemian and their followers. I haven’t encountered many communities yet, but maybe I’m not looking hard enough!

Welcome! There are a lot of communities, which is a great thing. One of the largest is @minnowsupport. I would recommend checking them out.

Excellent work @yabapmatt. Very helpful for many communities!! Amazing!!

It would be interesting to add different levels, like @qurator does (tiers) :)

Awesome idea!

Cool stuff, thanks for sharing it! Maybe you can do a tutorial on @utopian where you explain how the code works :) tip!

Thanks for the tip - I'll definitely consider doing a tutorial on Utopian, just need to find the time!

@yabapmatt, kudos to you man! I wish i never gave up on my programming skills, nonetheless, i still love what I currently do tho.

How long did it take you to write the bot?

If you love what you do that's all that matters! Hard to say how long it took. I was able to re-use a lot of code from the post promoter software and I worked on it in little bits here and there when i had time. It wasn't a whole lot of work though since it was mostly just modifying code i've already written.

That's cool..
But I have one question?
How does the bot give upvotes, is it just like the other bots where your bid determines the upvote worth.
Sorry for being a complete noob

No this is not a bid-based voting bot, it just gives a 100% weight vote to the latest post to each member in the list.

Then that's cool ...
Isn't there a discord channel to this where I can learn more.
I want to register for this

@Yabapmatt just keeps giving. And from his free time. Bless you.🙌🏾🙌🏾🙌🏾

Good work! Thanks for making it open source!

Its guys like you that make steemit rock, thanks for that

Hahah steemit roker

This is some incredible work. You know these bots are very important for minnows like myself and help us to grow. I obviously can't buy full time membership as I have a very little steem power but I can buy a 30 day subscription. And I want to know the details of the benefits this bot provides. Thank you

Hey, there’s someone below called max1994 who just copies parts of people’s comments and posts them as their own. They’ve copied your comment.

I’ve upvoted yours so it’s higher than his as yours was the original.

You made postpromoter.its awesome. it is No 1 bot in steemit

Wow it looks so cool ! I think I will be a little more knowledgeable about this bot and I can communicate with you soon, @yabapmatt

Hey friend that's a good initiative, a lot of help for those who are initiating on platform. Let the successes continue. I hope to join soon

cheers

So it will only upvote it's members. Sounds like something I want to be a part of.
Awesome work @yabapmatt

hi @yabapmatt I am sending 4 SBD - not upvoting. please help. url link
@postpromotor

https://steemit.com/r1/@melisound/sang-h-kim

123.png

i haven't used any bot so far !
i would like to be its member soon
i think sponsorship will be quite handy

you have done a great job man, the bot you made will help alot to the alliance, will definitely give it a try...

Well, quite informative, these bots help a lot for fishes like us to grow, I would like to be a member soon

Would anyone sponsor me to join this community bot??

Ohh.. U have done a nice work here.. These bots definitely will prove to be worthwhile for some.... Also liked the fact that it is an open source code,so can be modified as per certain needs...

This is some amazing n initiative work!!
It will encourage many people to take active part in it n as far as I'm concerned I'll also will want to give it a try!!
Thanks for sharing it with us!!
Cheers n have a good day ahead!!

very cool idea. I'm going to look into becoming a member. I've really tried to learn as much as I can about bots and their place on the ecosystem. I think your approach to this is great

I realise..again..how far I am. All these bots seems a littlw complicated to manipulate, but your posts seems rather complete (i guess i will hace to read it again a few times). Either way, I really think that what you are doing is great and that you are sharing it all is just great for the community. Thanks!

A pretty good idea for mutual help between members of the community, it's just the description of detail about the benefits of joining and delegate the power of unread in the postings above.

In addition to how to build a community with rising popularity also don't forget how to build better content. Because it is rated important, because the rules have not been regulated content how to vote and not on the vote.

If we see from your posts is that all of the content community members will still get a reward, if that is done then there is no standard between good postings, and not good.

Hopefully my input could be useful for all of us.

@yabapmatt: is there a bot with these functionalities already live?

pls guide a minnow like myself. awesome job in this by the way.

Yes #TheAlliance is currently using this software to run a bot for their members.

How do i get u on discord ?

You can find me @yabapmatt in the PALnet discord server.

This is excellent work and communities like @indiaunited will greatly benefit from this. Thank you so much ... sincerely appreciate the hard work and also appreciate the good gesture by #TheAlliance to make this available.

And we thank you a thousand times over. Great work @yabapmatt!

This is a great initiative. Many communities will be benefited with this. We are looking forward to implement a similar process for @indiaunited. We will try to use this bot for the community. Appreciate your great efforts. 😀

This man just can't stop coming up with great tools! I'm getting there :P

Hi @yabapmatt! You have received 0.1 SBD tip from @cardboard!

@cardboard wrote lately about: Steepshot: Somewhere In Europe :) Feel free to follow @cardboard if you like it :)

Tipuvote! - upvote any post with with 2.5 x profit :)

Wow likes your post .. happy reading it .. really amazing ... thanks for sharing on a good day.
I like to read every post you .. I also learn a lot about steemit from every post you. Whether it's writing or photos. Thank you steemians ..
It's an honor for me if you visit my blog ..
@imranpase

This is very impressive, over my head...but impressive! 😜

Hi Yabapmatt
I sent you 6 SBD 3 days ago ..still hoping for your upvote
regards

Hi @robkas, I just sent you 6 STEEM since I don't have enough SBD in my account and they are worth roughly the same at the moment.

But I am not a voting bot, I do not upvote posts that people send me. If you would like to find a voting bot to use please see https://steembottracker.com

Ok I understand that
Thanks

@yabapmatt Can you please look at https://steembottracker.com - It's been running crazy the last couple of days - currently only about 1/3 of the bidbots are showing on it and the rest are acting oddly. I cleared my cache and had a friend look - it was the same for him. I appreciate everything you do here to help us. Thank so you much.

Thanks for the effort and contrbution @yabapmatt..

Wow likes your post .. happy reading it .. really amazing ... thanks for sharing on a good day.
I like to read every post you .. I also learn a lot about steemit from every post you. Whether it's writing or photos. Thank you steemians ..
It's an honor for me if you visit my blog ..
@imranpase

Your Post Has Been Blasted on @SteemBlast.com!
Blast any Steemit post using SteemBlast.com
How Do I Blast My Post?
Go to your Steemit Post URL
2. Erase it in the address
3. Type blast and Go
Get Blasted Instantly – Blasted posts are 100% upvoted every 2.4hrs, Blast your post to Win.

Sorry to comment, but can you help me create a voting bot using my account? thank you very much @yabapmatt

You can contact me on Discord or Steemit.Chat to discuss, but I typically recommend having 10,000 SP or more to run a voting bot.

@yabapmatt could you please contact us @ john.j.gentry@superior-coin.com we are looking to outsource some Steemit bot work for our community.

Very cool!!! I think I want a bot too, to support artists:)

Dang that's awesome, wish I had those mad skillz

Thank you @yabapmatt for this informative yet simple explanation.. As a beginner, information like this helps a lot..

great post...and i want to participation...i have you vote for witness...i hope u always be success....

You are awesome guy... I want to learn some things from you...i am very interested...what is your discord id...?

This is some unfathomable work. You know these bots are critical for minnows like myself and help us to develop. I clearly can't purchase full time enrollment as I have a next to no steem control