DrPhil Bot

From Steem Center
Jump to: navigation, search



Dr. Phil is re-implementation of the "Winfrey" voting bot specification. The goal is to give everyone an upvote.

One optional improvement is that instead of voting 1% by 100 accounts like the Winfrey bot spec, this script can vote 100% with 1 randomly chosen account.

If the complaint about Winfrey is blockchain bloat, Dr. Phil prescribes weight loss to address this. But this feature would only work if there are enough voters defined in the script. If you plan to use this script for one or two accounts, you'll probably want to adjust the VOTE_WEIGHT constant to something a bit lower.


  • YAML config.
  • voting_rules
    • winfrey mode that acts like the winfrey bot, all voters vote for everyone
    • drphil mode one random voter votes for everyone (default)
  • following_vote_weight - for accounts that the voter follows
  • followers_vote_weight - for accounts that follow the voter
  • min_rep (default 25.0)
  • min_wait and max_wait (in minutes) so that you can fine-tune voting delay.
  • favorite_accounts list and separate favorites_vote_weight option.
    • Note: votes will be cast for favorites irregardless of rep.
  • enable_comments option to vote for post replies (default false).
  • only_first_posts option to only vote on an author's first post (default false).
  • max_rep option, useful for limiting votes to newer authors (default 99.9).
  • vote_signals account list.
    • Optionally allows multiple bot instances to cooperate by avoiding vote swarms.
    • If enabled, this feature allows cooperation without sharing keys (in drphil mode).
  • min_rep can now accept either a static reputation or a dynamic property.
    • Existing static reputation still supported, e.g.: 25.0
    • Dynamic reputation, e.g.: dynamic:100. This will occasionally query the top 100 trending posts and use the minimum author reputation.
    • Now checking vote_weight: 0.00 % and skipping without broadcast.
      • This is useful for special configurations that only vote for favorites.
    • min_voting_power to create a floor with will allow the voter to recharge over time without having to stop the script.
    • Optionally configure voters as a separate filename. E.g:
      • voters: voters.txt
      • The format for the file is just: account wif (no leading dash, separated by space)
    • Or continue to use the previous format.
  • Also optional support for separate files in each (format one per line or separated by space or both):
    • favorite_accounts
    • skip_accounts
    • skip_tags
    • flag_signals
    • vote_signals
  • only_fully_powered_up which will only vote for posts that receive 100% STEEM Power author rewards.
  • Skip posts with declined payout.
  • Skip posts that already have votes from external scripts and posts that were edited.
  • Argument called replay: allows a replay of n blocks allowing you to catch up to the present.
    • E.g.: ruby drphil.rb replay:90 will replay the last 90 blocks (about 4.5 minutes).
  • Thread management
    • Counter displayed so you know what kind of impact ^C will have.
    • This also keeps the number of threads down when authors edit before Dr. Phil votes.
  • Now streaming on Last Irreversible Block Number, just to be fancy.
  • Now checking for new HF18 cashout_time value (if present).
    • This will skip voting when authors edit their old archived posts.

Bot Creator

The DrPhil Bot was created by inertia. It is a re-implementation of the Winfrey Bot.


The original post announcing the bots creation is here

The bot is posted under the 'radiator' tag.


Updates can be found through a search using this link. It will search for new posts under the radiator tag from which you can find the latest update post.


Related articles:


In other languages

Help keep this wiki page updated. Register, click in edit, add or modify the text and save.
If you're already a steemian you can be rewarded with steem, see how in @steemcenterwiki.