steemrewarding.com - a new feature rich auto voter

in utopian-io •  4 months ago

Repository

https://github.com/holgern/steemrewarding

steemrewarding

steemrewarding is a new feature rich auto voter for the steem blockchain. It can be found at: https://steemrewarding.com. The @rewarding account is used for voting.

As soon as posting authority is given to @rewarding by steemconnect, vote rules can be created and posts or comments will be automatically upvoted when fitting.

It is now possible to create two rules per author, one for posts and one for comments. Each rule has the fields:

  • voter - account name of the voter, must has given posting authority to @rewarding. Cannot be set at the homepage, as only rules for accounts for which I have the keys can be added or edited.
  • author - steem account for which the rule apply
  • main_post - defines if the rule apply for posts or for comments
  • vote_delay_min: - When vote_when_vp_reached is False, the post/comment is voted when the post is vote_delay_min minutes old and all other rule parameter are fitting.
  • vote_weight: - 0% - 100% defines the vote weight. (Can be modified by setting vp_scaler)
  • enabled: Rule is enabled, when this is set to True
  • vote_sbd: Not active yet
  • max_votes_per_day: limites the number of votes (votes are counted in a sliding window), only votes given by the auto voter are counted.
  • max_votes_per_week: limites the number of votes (votes are counted in a sliding window), only votes given by the auto voter are counted.
  • include_tags: Comma separated list of tags that must be included. E.g. python,c means the post/comment must either have a python tag or a c tag. Tags can be combinded with &. E.g. python&c,js. In this case, posts/comments are voted, when they have a js tag or a python and a c tag.
  • exclude_tags: Same as include_tags, posts/comments with tags that were added here, will not be upvoted. The tags, must be comma separated and the & sign can be used. E.g. python&c, js. In this case, posts/comments that have a js or a python and c tag will not be upvoted.
  • vote_when_vp_reached: When enabled, posts/comments will be upvoted when the min_vp is reached.
  • min_vp: Minimum vote power applies for timed and vp based votes. When vote_when_vp_reached is False and vp is below min_vp, the comment/post will not be upvoted.
  • vp_scaler: When higher than 0, the vote weight is reduced by this scaler depending on the votepower. E.g. vp_scaler is 0.5, then the vote weight is multiplied by 1 - ((100-vp) / 100 *vp_scaler). When vp is 100, the vote weight is not changed. When vp is 80, the new vote weight is multiplied by 0.9.
  • leave_comment: not implemented yet
  • minimum_word_count: When the post/comment word count is below, the post/comment is not upvoted.
  • include_apps: comma-separated list of apps that will be upvoted, when set.
  • exclude_apps: comma-separated list of apps that will not be upvoted, when set.
  • exclude_declined_payout: When True, posts/comments with declined payout will not be upvoted.
  • vp_reached_order: When vote_when_vp_reached is True, this defines which posts is upvoted first. The pending post with the lowest vp_reached_order is upvoted first.
  • max_net_votes: When set, the post/comment is only upvted when the number of given votes is below.
  • max_pending_payout: When set, the post/comment is only upvted when the pending payout is below.
  • include_text: When set, the post/comment is only upvoted when its the given text is included.
  • exclude_text: When set, the post/comment is not upvoted when its the given text is included.

Database structure

Posts/comments for which a rule exists, are stored in the posts database. New posts/comments are found by streaming all blocks. This is performed in the stream_blocks.py script.

Then in the apply_vote_rules.py script, not processed posts/comments that were stored in the database are checked if one rule applies. When this is the case, teh authorperm with some addional information is stored in the pending votes database.

Finally, the upvote_post_comments.py script checks of one of the pending votes can be upvoted. Sucessfully upvoted posts or comments will be added to the vote log database.

Homepage

Each steem user can add rules and use steemrewarding through the https://steemrewarding.com homepage.
image.png
After logging in with steemconnect (I'm using the @beem.app steemconnect account for this)
image.png
The homepage can be used:
image.png
The steemconnect link is only be used to verify the steem account.

  • Show rules: prints all stored rules. It is possible to edit and delete rules here.
  • Add a new rule: Can be used to create a new voting rule.
  • Show vote log: Shows sucessfully upvoted posts
  • Show Pending votes: shows pending votes for the current logged in account.
  • Logout can be used to remove the steemconnect token from the session.

Technology Stack

The postgres database is used to store rules, posts, pending votes, given votes and some more information. The scripts are programmed with python 3 using beem. Python3 + flask is used for the homepage.

Roadmap

The not used rules: vote_sbd and leave_comment will be added next. When leave_comment is set, a comment from the voter with a defined text should be broadcasted.

I plan also a user settings page, where global parameter can be set.

Vote trails is also a missing feature which will be added.

The @rewarding account was used before for upvoting posts, when a command was written in a comment. This functionality will be added to the github in the next update. It will then be possible to upvote a post/comment without having a rule for but, but writing a command in a comment below this post.

How to contribute?

The issue tracker at https://github.com/holgern/steemrewarding can be used for feature wishes, ideas, and bug reports. Pull request can also be created after forking the repository for improving the code or the homepage.

I created also a new discord server for discussing everything about steemrewarding:
https://discord.gg/qpsR8hf

GitHub Account

https://github.com/holgern

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  
  • Congrats on the new project, looking forward your next improvements.
  • An intro image and code samples would improve the article.

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? Chat with us on Discord.

[utopian-moderator]

·

Thank you for your review, @helo! Keep up the good work!

What is the purpose of 'auto voting'? It's directly against the purpose of this network. We want HUMANS to distribute the wealth, not ROBOTS.

·

I also check my feed on a regular basis and upvote manually.

·
·

The proper approach with the current state of hot/trending

·

It is only possible to automatically upvote authors that were added manually before. I have a few authors in my list that produce always good content and I want to upvote all of their posts. With the available options, it also possible to reward for example posts with a utopian-io and analysis tag from a specific author. I revise the upvote list and watch the quality of all upvoted posts. So distribution is still controlled by HUMANS.

·
·

Even if you white list authors, you will NOT read their contents before upvoting it. It will vote while YOU SLEEP. The upvoted content could be terrorism or pedophilia and your ROBOT won't notice it.

Proof of brain != Proof of silicon

·
·
·

I can remove my vote and flag instead, when this should be the case. In this case, I would remove the author from the auto voter list.
I'm mainly autovoting projects as:
https://steemit.com/steemcleaners/@steemcleaners/steemcleaners-report-for-january-11-2019
in order to support the project.

·
·
·
·

@heimindanger @holger80
I can feel and understand you both.

We want Proof of Brain and then always try to game it.. People are probably lazy and greedy..

On the other hand, adding a few favorite authors to a whitelist with many rules is way better than selfvoting, cirkle-jerking or vote-selling.

Im very interested in the future and thankful for the tool.
Steem is still an infrastructure, which want things built upon it, right?

Greets ;)

·
·
·
·
·

Hallo @luegenbaron
Ich sehe es im Grunde genau wie @heimindanger, deshalb habe ich die automatischen Votes von @gerdtrudroepke auch erstmal eingestellt. Ich hatte über 80 aktive Nutzer auf der Whitelist und es war mir nicht mehr möglich alle Beiträge im Nachhinein zu überprüfen. Ich bin aber auch der Ansicht, dass es hier sehr viele gute Accounts gibt, welche man bedenkenlos unterstützen kann und werde deshalb meine Whitelist nochmals überprüfen und Tante Trude wieder aktivieren.

·
·
·
·
·
·

Was machst du nun in der Zwischenzeit?
Nem Voting Trail folgen? VP verkaufen?

Posted using Partiko Android

·
·
·
·
·
·
·

Du wirst lachen, ganz altmodisch per Handarbeit :-)))

This post is supported by $2.21 @tipU upvote funded by @cardboard :)
@tipU voting service guide | For investors.

Can I set a rule that will make my account upvote "all posts" from a specific tag?

The "include tags" is the killer feature :D

Very cool that you've made this, Holger! When I first joined the Steem blockchain I remember trying to make something similar, but this was before beem existed and steem-python was doing my head in (and me being a lot worse at coding), so I gave up lol. I will definitely have a look through the code when I have some time, should be interesting!

This is great to hear about this. I will try checking it out. It sounds good I must say and it has a lot of features also in it. Sounds

You got a 30.83% upvote from @ocdb courtesy of @holger80!

@ocdb is a non-profit bidbot for whitelisted Steemians, current max bid is 15 SBD and the respective amount in Steem.
Check our website https://thegoodwhales.io/ for the whitelist, queue and delegation info. Join our Discord channel for more information.

If you like what @ocd does, consider voting for ocd-witness through SteemConnect or on the Steemit Witnesses page. :)

Thanks for making this @holger80! :-) Will start using it soon :-)

For me, the option to upvote and leave a comment is perfect for communities. I wait for the next implementation.
Good work!

Posted using Partiko iOS

Also !tipuvote 4 steem

Hi, @holger80!

You just got a 2.52% upvote from SteemPlus!
To get higher upvotes, earn more SteemPlus Points (SPP). On your Steemit wallet, check your SPP balance and click on "How to earn SPP?" to find out all the ways to earn.
If you're not using SteemPlus yet, please check our last posts in here to see the many ways in which SteemPlus can improve your Steem experience on Steemit and Busy.

Hi @holger80!

Your post was upvoted by @steem-ua, new Steem dApp, using UserAuthority for algorithmic post curation!
Your post is eligible for our upvote, thanks to our collaboration with @utopian-io!
Feel free to join our @steem-ua Discord server

Hey, @holger80!

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

Get higher incentives and support Utopian.io!
Simply set @utopian.pay as a 5% (or higher) payout beneficiary on your contribution post (via SteemPlus or Steeditor).

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

Vote for Utopian Witness!

Congratulations @holger80!
Your post was mentioned in the Steem Hit Parade in the following category:

  • Pending payout - Ranked 5 with $ 115,93

Interesting, I'll have to do more research on this.

This post has been included in the latest edition of SoS Daily News - a digest of all you need to know about the State of Steem.



Thanks

Posted using Partiko iOS

Thank you so much for participating the Partiko Delegation Plan Round 1! We really appreciate your support! As part of the delegation benefits, we just gave you a 3.00% upvote! Together, let’s change the world!

Magic Dice has rewarded your post with a 97% upvote. Thanks for playing Magic Dice.