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_reachedis False, the post/comment is voted when the post is
vote_delay_minminutes old and all other rule parameter are fitting.
vote_weight: - 0% - 100% defines the vote weight. (Can be modified by setting
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: Minimum vote power applies for timed and vp based votes. When
vote_when_vp_reachedis 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_scaleris 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.
vote_when_vp_reachedis True, this defines which posts is upvoted first. The pending post with the lowest
vp_reached_orderis 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.
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
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.
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.
Each steem user can add rules and use steemrewarding through the https://steemrewarding.com homepage.
After logging in with steemconnect (I'm using the @beem.app steemconnect account for this)
The homepage can be used:
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.
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.
The not used rules:
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: