UPDATED WINFREY UPVOTE-BOT will vote for EVERYONE who post on STEEMIT with a 2% upvote - except Posts flagged by @cheetah or @steemcleaners

in #upvote-bot7 years ago

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[0]
        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[0])
    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

If we change the culture, the platform can grow, and there is a good chance that everything will start thriving

Enjoy the bot, and if you have any requests you can reach us all on http://steemspeak.com
and http://steemit.chat

Sort:  

“You think Yoda stops teaching, just because his student does not want to hear? A teacher Yoda is. Yoda teaches like drunkards drink, like killers kill." – Yoda

I made some minor improvements changes to this, as I'm learning Python.
Will blog about it later.

That is awesome!!

Upvoted and resteemed. I love your dedication to Steemit.

thank you, for better and for worse, right? :)

Where did you pull the voting numbers from?

I took them from: https://steemdb.com/labs/rshares by @jesta and ranked it differently in a google spreadsheet.

This is an interesting idea @fyrstikken. Keep up the work, I appreciate your efforts to help the general community.

tnx, I hope we will see more enthusiasm and growth and cultural change, it has to come from us individually because we want to get to the next level with all onboard.

Can we follow the bot as leader in Streemian if we know the account it is on?

I have to check out @streemian but maybe you can ask them to implement the same logic in their system so their users can have that option. in addition to the other streems (2% upvotes for everybody keeps my voting-power at 100% most of the time)

Maybe you should not vote on people who have rep < 25 as well.

that is not the purpose of this experiment.
If someone has a low reputation that is in the past. Does not mean that is the future. When I first came to steemit I had ZERO reputation, and if it was not for all the UPVOTES, I would not have stayed.

Would you?

The upvotes and power gaining keep me on steemit.

upvoting is sexy ;)

Well if its not it should be, because we really need people voting it makes no sense as it helps everybody not just the person getting the vote.

Good work, keep it coming!!

@fyrstikken, this bot looks to kick some real ass. I wish this bot the very best and maybe one day I will have him working for me. Thank you for all the bot votes friend. Steem On!

It has been running non stop for a couple of days now to test it and see that it actually works, yeah I hope to see this kind of logic implemented in as many bots and upvote-service sites as possible.

Without the Ebb and the Flo, all we create is a desolated place. So giving and receiving votes is extremely important platform-wide. I hope something good comes out of this.

I have taken a Steemit break this week, so I am guessing that is why my votes are not appearing, I have been about half as active the last few days and it is partly because I work hard on my posts, hardly earning any votes, views, comments or payout 9/10 days -

-- and is discouraging me the last few weeks - like you said in your comments here and why you are doing this

Oh my lord is this for reals!? I didn't think it was this bad why the heck is nobody voting. Haha I am so gutted these were taken when I was writing content as I normally do votes daily. I guess %2 is better then no votes.

Coin Marketplace

STEEM 0.28
TRX 0.13
JST 0.032
BTC 60793.36
ETH 2909.65
USDT 1.00
SBD 3.64