def get_voting_power(self, account: str) -> float: """ Calculate real voting power instead of stale info in get_account() :param str account: account name :return: voting power 0-100 """ acc = Account(account) vp = acc.voting_power() last_vote_time = parse_time(acc['last_vote_time']) elapsed_time = datetime.utcnow() - last_vote_time regenerated_power = STEEMIT_100_PERCENT * elapsed_time.total_seconds( ) / STEEMIT_VOTE_REGENERATION_SECONDS current_power = min(vp + regenerated_power / 100, 100) return current_power
def get_voting_power(steemd_instance, account): """ Calculate real voting power instead of stale info in get_account() :param Steem steemd_instance: Steem() instance to use when accesing a RPC :param str account: account name """ try: a = Account(account, steemd_instance=steemd_instance) vp = a.voting_power() except Exception as e: log.error('error in get_voting_power(): %s', e) return False last_vote_time = datetime.strptime(a['last_vote_time'], '%Y-%m-%dT%H:%M:%S') elapsed_time = datetime.utcnow() - last_vote_time regenerated_power = STEEMIT_100_PERCENT * elapsed_time.total_seconds( ) / STEEMIT_VOTE_REGENERATION_SECONDS current_power = vp + regenerated_power / 100 if current_power > 100: current_power = 100 return current_power