def leaderboard(): users = {} lower_10, upper_10 = make_upper_lower(offset=datetime.timedelta(minutes=2)) for slc in ShareSlice.get_span(share_type=("acc", ), ret_query=True, lower=lower_10, upper=upper_10): try: address_version(slc.user) except Exception: pass else: user = users.setdefault(slc.user, {}) user.setdefault(slc.algo, [0, set()]) user[slc.algo][0] += slc.value user[slc.algo][1].add(slc.time) # Loop through and convert a summation of shares into a hashrate. Converts # to hashes per second for user, algo_shares in users.iteritems(): for algo_key, (shares, minutes) in algo_shares.items(): algo_obj = algos[algo_key] algo_shares[algo_key] = algo_obj.hashes_per_share * (shares / (len(minutes) * 60)) algo_shares.setdefault('normalized', 0) algo_shares['normalized'] += users[user][algo_key] * algo_obj.normalize_mult sorted_users = sorted(users.iteritems(), key=lambda x: x[1]['normalized'], reverse=True) # This is really bad.... XXX: Needs rework! if users: anon = anon_users() for i, (user, data) in enumerate(sorted_users): if user in anon: sorted_users[i] = ("Anonymous", data) cache.set("leaderboard", sorted_users, timeout=15 * 60)
def leaderboard(): users = {} lower_10, upper_10 = make_upper_lower(offset=datetime.timedelta(minutes=1)) for slc in ShareSlice.get_span(ret_query=True, lower=lower_10, upper=upper_10): try: address_version(slc.user) except Exception: pass else: user = users.setdefault(slc.user, {}) user.setdefault(slc.algo, [0, set()]) user[slc.algo][0] += slc.value user[slc.algo][1].add(slc.time) # Loop through and convert a summation of shares into a hashrate. Converts # to hashes per second for user, algo_shares in users.iteritems(): for algo_key, (shares, minutes) in algo_shares.items(): algo_obj = algos[algo_key] algo_shares[algo_key] = algo_obj.hashes_per_share * (shares / (len(minutes) * 60)) algo_shares.setdefault('normalized', 0) algo_shares['normalized'] += users[user][algo_key] * algo_obj.normalize_mult sorted_users = sorted(users.iteritems(), key=lambda x: x[1]['normalized'], reverse=True) # This is really bad.... XXX: Needs rework! if users: anon = anon_users() for i, (user, data) in enumerate(sorted_users): if user in anon: sorted_users[i] = ("Anonymous", data) cache.set("leaderboard", sorted_users, timeout=15 * 60)
def test_cache_(self): s = m.UserSettings(user="******", anon=True) db.session.add(s) db.session.commit() assert "185cYTmEaTtKmBZc8aSGCr9v2VCDLqQHgR" in anon_users()