Tagbot - An upvote bot to reward specific tags

in utopian-io •  last year

Tagbot is an upvote bot, upvotes posts with a specific tag based on pre-defined parameters. It has a couple use cases, for example:

  • Voting for photography tag to support photographers
  • Voting for local tags (tr, deutsch, etc.) to support local content creators
  • Voting for the "utopian-io" tag to support developers

etc.

Flow

Every time the bot is executed,

  • Checks for minimum VP rule, if it's suitable, starts voting round.
  • Fetches 100 posts from the specific tag (order by created)
  • Shuffles that 100 posts, and filters them if needed. (Minimum author rep, etc.)
  • Upvotes them based on the VOTE_COUNT. (Number of votes casted in each round, set in the configuration.)

Currently, this bot operates at @dshot-io account with a minimal SP for testing purposes. (rewards photography tag.)

Installation

$ (sudo) pip install steem_tagbot

Do that in a python3.6 virtual environment and it will install all the requirements.

Running

$ POSTING_KEY=private_posting_key tagbot /path/to/config.json

Configuration is stored in JSON files. You can find an example in the repository.

OptionValue
NODESA list of steem nodes to connect
BOT_ACCOUNTBot account to vote
TAGTarget tag to upvote posts
MINIMUM_VP_TO_STARTBot should sleep until this VP is generated
VOTE_WEIGHTVote weight for every upvote (in percent)
VOTE_COUNTHow many votes should be casted in each voting round
MINIMUM_AUTHOR_REPIgnore authors with low reputation
BLACKLISTA list of authors to ignore

Note: tagbot runs on voting rounds to preserve the VP. You need to set a crontab entry to run the bot periodically.

For example, to run tagbot in every 15 minutes:

*/15 * * * * /var/bots/run-tagbot > /tmp/tagbot 2>&1

Technology Stack

Python 3.6 and greater.

Roadmap

Bot works very well at the moment and meet the needs of mine. However, I have a couple of additional features in my mind:

  • Tag blacklist
  • Smarter upvote weight algorithm based on a couple of params

How to Contribute

Use github issues or find me at Discord. (emre#9263) for any feature requests or bugs, bug-fixes.



Posted on Utopian.io - Rewarding Open Source Contributors

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:  

Thank you for the contribution. It has been approved.

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

·

Hey @howo, 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!

I actually needed this, my VP is constantly wasted because I forget to use it, I'll just use it on my personal account!

You delivered, as always.

Great idea, I have been looking to do a similar exercise. I was also considering a parameter or feature that checks for a level of engagement metric. Something that prioritorizes upvotes to accounts where there as been a comment and reply history with a particular followed account perhaps. If I can just get my steem-python environment on windows sorted out 😂

·

actually checking for view counts and comments may be additional filters. :) check this to install steem-python on Windows.

bonus:

·
·

Thank you, I was about to give up on my windows install, inspired by the fact that it will work, I will attempt once again using the miniconda python distribution. Then I would like to try getting an upvote bot as you explain in this post. One of the big challenges for a noob like me is finding posts and folks to follow, its part of the steemit journey!

Hello @emrebeyler,
You said your bot upvote Voting for local tags (tr, deutsch, etc.) to support local content creators
Does your bot also support mm tag (language tag for myanmar)
#mm

·

I can actually answer for him as I've looked at the code.

As you can see, it supports any tag you want to vote on. There's no list, you input the exact tags you like.

That's exactly what I have been trying to do (i want to make a free service for people to support the communities/tags they like) but couldn't make the votes go through while streaming posts worked fine for the tags targetted. I could also vote on a post via permalink. You also wet went as far as putting the blacklist and a list of rpc nodes.

Awesome job. Thanks for python noobs like me. I will give it a try asap. Resteem for the occasion.

·

glad to hear it's helpful for you.

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

Achievements

  • 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

Thanks for the enlightment, i hope i can work it well sha.

Your post is very good

That is VERY impressive!

Hello, I was curious about setting up a bot for my discord server and others. I want the ability to take a specific tag off of Steemit and post each url from that tag on Steemit and post in a room on my server(s). Can you point me in the right direction or do you know if someone that I can hire to make this happen? Thank you I appreciate your time.