This Piston/Python-Bot will upvote EVERYONE who post on Steemit with a 2% upvote except if the post is flagged by @cheetah or @steemcleaners to avoid voting for scam, spam & plagiarism (thank you @anyx for providing the code-snippet and to @inertia for making it work)
The 3 Simple Tasks You Must Do First!
save the following code as: bot.py
# This Piston/Python-Bot will vote for everyone who post except those flagged by # @cheetah or @steemcleaners. By Default the Upvote is set at 2% # Created by: @furion, @contentjunkie, @anyx, @inertia, @fyrstikken # Make sure you have the latest version of Python and Piston installed # See Original Post for details and step by step process. # For help come on http://steemspeak.com or http://steemit.chat from piston.steem import Steem from piston.steem import BroadcastingError import threading import time import random import csv # my favorite blogs on steemit top_writers =  # add my favorites my_favorites =  # Skiplist functionality has not been added yet, this will be your personal blacklist with open('skiplist.txt', mode='r') as infile: reader = csv.reader(infile) for rows in reader: v = rows top_writers.append(v) # Add your Account, Posting key for voting and/or Active Key for tipping my_subscriptions = top_writers + my_favorites account = ["your-account-name"] posting_key = ["your-private-posting-key"] active_key =  # This is the range (in seconds) in which your bot will cast a vote vote_delay = random.randrange(1200,1800) upvote_history =  def feed(): # Starting The Bot print("Upvote Bot Started - Waiting for New Posts to Upvote!") steem = Steem(wif=posting_key) for comment in steem.stream_comments(): if True: # Just making sure we vote for the post and not a comment. if comment.depth == 0: # check if we already upvoted this. Sometimes the feed will give duplicates. if comment.identifier in upvote_history: continue print("New post by @%s %s" % (comment.author, url_builder(comment))) workerThread = threading.Thread(name=comment.identifier, target=worker, args=(comment,)) workerThread.start() # Tipping Function send $0.001 in STEEM def send_a_tip(author): steem = Steem(wif=active_key) steem.transfer(author, 0.001, "STEEM", memo="Keep Blogging", account=account) def url_builder(comment): return "https://steemit.com/%s/%s" % (comment.category, comment.identifier) def worker(worker_comment): time.sleep(vote_delay) try: for (k,v) in enumerate(account): worker_steem = Steem(wif=posting_key[k]) upvote_comment = worker_steem.get_content(worker_comment.identifier) # Checking if Post is flagged for Plagarism & Spam names = ['steemcleaners', 'cheetah'] for avote in upvote_comment['active_votes']: if (avote['voter'] in names and avote['percent'] < 0): print("====> Upvote Skipped - Post Flagged by Cheetah or Steemcleaners") return False # If the post has not been flagged by Cheetah or Steemcleaners, it will now upvote the post # with a 2 % upvote upvote_comment.vote(2, v) # Upvote has now been done and it will now print a message to your screen: print("====> Post Upvoted Successfully!") upvote_history.append(upvote_comment.identifier) except BroadcastingError as e: print("Upvoting failed...") print("We have probably already upvoted this post before the author edited it.") print(str(e)) if upvote_comment.author in my_favorites: send_a_tip(upvote_comment.author) print("====> Sent $0.001 STEEM to @%s" % upvote_comment.author) if __name__ == "__main__": while True: try: feed() except (KeyboardInterrupt, SystemExit): print("Quitting...") break except Exception as e: traceback.print_exc() print("### Exception Occurred: Restarting...") # If you want to add more complexity to the Bot, feel free to do so and share it with # The Steemit community on your own Blog.
create an empty text file called: skiplist.txt (does not currently have a purpose)
Alright - You are now all set and ready to vote for EVERYONE
When I first arrived to Steemit, everyone was upvoting me - and since then - less and less votes are being cast everyday by everyone to everyone - It is a downward spiral and a vicious circle of doom if we do not change the culture around here and bring people up, new people and returning people - it is very important for the growth of this platform that we are liberal with our votes in a big broad way - voluntarily.
This is how the Voting-Picture looks like on an average day
What you see here is the top 30 list of upvoters ranked after how many posts they have voted for. Now, I want this list to be populated like never seen before, because look at that - the bottom of this list is only 90 votes, and it get much worse if we go down the list, which we will do now:
So as you can see - only a few people is voting and they are for the most part only voting for a few people, this can be more optimised by actively using this bot to bring votes out to content-creators without voting for scam and spam and plagiarism. And is something even 3rd party voting-sites should implement so that we get more votes around every day, because it gets much worse then this if we go further down the list:
You see how meaningless it starting to become when we go down the rabbit-hole in status quo, anyone want this to change? then be the change - start with yourself and make sure that you are on the top of the list, it will cost you nothing and gain you something and new and existing users, as well as yourself will benefit from this voluntarily small but effective generosity, because it only get worse if we keep looking at the list:
So basically we have 100 people that votes and about 600 posts per day and according to SteemD: 125,535 registered accounts... Now what is wrong with that picture? Let me sum it up again:
125,535 Registered accounts 600 Posts per day (approx) 100 People voting for almost nobody