Curobot v1.3 - Huge Updates - Your personal steemvoter

in #utopian-io7 years ago (edited)

I have been trying to move away from 3rd party steem applications and the only one left was Steemvoter. That's why I have vitalized the curobot - your personal curation bot on steem blockchain.

It has Steemvoter's capabilities but also has additional features like blacklisted tags. (Example: Don't vote posts tagged with X)


Stdout log of Curobot

Installation

(sudo) pip install curobot

You're all set. (You need python 3.6+)

Running

$ POSTING_KEY=private_wif curobot config_file.json

Configuration Details

{
  "rules": [
    {"author": "foo", "weight": 50.0, "vote_delay": 30},
    {"author": "bar", "weight": 50.0, "vote_delay": 30},
  ],
  "account": "emrebeyler",
"minimum_vp": 80,
  "nodes": ["https://api.steemit.com"]
}

rules

authorweightvote_delaybad_tags
account usernamevote power in percentageX minutes before votelist of blacklisted tags

account

Voter account name

nodes

RPC nodes to connect. Default is api.steemit.com

minimum_vp

Bot should sleep at some point to prevent draining the VP. I use 80.

what's new?

  • Removed the MySQL dependency. Now, "already upvoted" check will be done before upvoting by looking at post.active_votes

  • Added support for blacklisted tags. If your favorite author spams the feeds with a specific tag, you may skip voting on that tag.

  • Private posting wif are now transferred to the script with the environment variables. More secure way to pass that information.

  • Added a minimum VPcheck posts. If somehow the transaction listener lags, curobot now skips the old posts.

  • Added a minimum VPcheck before voting to prevent draining the account's voting power.

  • Implemented a simple mutex for efficient voting between multiple threads to get around with the "3 seconds 1 vote transaction" rule.

  • Better exception handling and retry mechanism on upvote transaction.

Related commits

Technology Stack

Python3.6 and steem-python-dshot library.

Roadmap

I want to add more complicated features for rules.

  • Follow Comments
  • Formulas for the weight
  • Different conditions to vote.

open to more ideas.

How to contribute?

Use github issues to create pull requests. If you have any feature ideas or bugs to report, of course use also Utopian :)


I have frozen my Steemvoter account started using Curobot with these updates. So far it works well. Feel free to use it and give feedback about it.



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]

Hey @ms10398, I just gave you a tip for your hard work on moderation. Upvote this comment to support the utopian moderators and increase your future rewards!

Nope, doesn't work, didn't get an upvote from you!

Include downvote features.
Comment Upvotes? Do you distinguish between main posts and comments?
Multiaccount feature?

Just dropping words now..

Include downvote features.

Also works with downvotes. Just give the weight negative. (Ex: -5 will downvote with %-5)

Comment Upvotes? Do you distinguish between main posts and comments?

Comment upvotes are not supported at the moment. Only works with main posts.

Multiaccount feature?

That's a todo. Currently it can be done by duplicating configuration and running multiple curobot instances. A waste of bandwidth but it will work until I add it.

Nope, doesn't work, didn't get an upvote from you!

Let's see what I can do... :)

Thanks for the feedback.

For more accounts you will need to separate the voting and the blockchain read functions.
And create a DB.
store there when to vote what with which user.
Until when it should try this (max. 6.5 days), if vp is low.
And that would introduce the MySQL dependency again.. Sorry:)

ah, not really. We can handle multiple rules for different accounts in the JSON config. I really don't want any database dependency. :)

Not even a small tiny mini micro sqlite3? :)
Without that, the bot has to parse the blockchain often.. And if it crashes, all is lost..

Is it working with the steem wallet?
I would prefer unlocking that, and not having private wif around.
Or it could be a next feature:)

Nice work! Will be using this one from now on...
👍

good to know! let me know if you encounter any issues.

Hey @emrebeyler I am @utopian-io. I have just upvoted you!

Achievements

  • WOW WOW WOW People loved what you did here. GREAT JOB!
  • Seems like you contribute quite often. AMAZING!

Community-Driven Witness!

I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!

mooncryption-utopian-witness-gif

Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

This is an awesome resource, not just to use as-is, but I learned a lot about the API by reading your code, so thank you for sharing! :)