Exemplo n.º 1
0
class Curangel(Thread):
    def __init__(self, user, postingKey):
        self.steem = Steem(keys=[postingKey], nodes=steemd_nodes)
        self.user = user
        self.voter = Voter(self.steem, user)
        self.last_update_duration = 0
        super().__init__(None)
        self.daemon = True

    def wait_for_recharge(self):
        while True:
            current_vp = self.voter.get_current_vp()
            if current_vp >= 9990:
                return
            else:
                t = "voting power at {:0.2f}%; "
                t += "estimated 100% in {}.\n"
                t += "waking up in {:0.3f}s."
                recharge_time = self.voter.get_recharge_time()
                sleep_s = recharge_time.total_seconds()
                if sleep_s > 0:
                    print(
                        t.format(current_vp / 100, str(recharge_time),
                                 sleep_s))
                    sleep(min([sleep_s, MONITOR_INTERVAL_SEC]))
                else:
                    return

    def run(self):
        while True:
            try:
                self.wait_for_recharge()
                uri, id = self.voter.next_in_queue(self.steem)
                if uri is False:
                    print("\nqueue is empty. Sleeping for a minute.")
                    sleep(60)
                else:
                    self.voter.vote(uri, id)
            except Exception:
                # log exception, sleep 10 seconds and retry
                print(format_exc())
                sleep(10)
                print("\nretrying after exception...")
                pass
Exemplo n.º 2
0
def submit_vote():
    message = 'Success!'
    try:
        t = ClientTallier(random.choice(tallier_endpoints))
        voter = Voter(session['username'], r, t, e)
        success = voter.vote(request.form['evote'], json.loads(request.form['proof']))
        if not success:
            message = "Something went wrong, please try again"

    except Exception:
        message = 'Something went wrong, please try again'

    return message
Exemplo n.º 3
0
def submit_vote():
    message = 'Success!'
    try:
        e, tallier_endpoints = r.get_election(int(request.form['eid']))
        if not e:
            message = 'Invalid Election ID'
            return render_template('voting_interface.html',
                                   submit_vote_msg=message)

        t = ClientTallier(random.choice(tallier_endpoints))
        voter = Voter(request.form['voter_id'], r, t, e)

        success = voter.vote(request.form['candidate'])
        if not success:
            message = 'Vote not cast: your vote was either invalid or already cast'
    except Exception:
        message = 'Something went wrong, please try again'

    return render_template('voting_interface.html', submit_vote_msg=message)