print "send arguments!" exit(-1) if sys.argv[1] == "recalculate": players = db.getPlayerList() games = db.getGames() db.init() db.clear() for p in players: db.addPlayer(p) for g in games: ratings = map(lambda x: db.getPlayerRating(x), [g['a1'], g['a2'], g['b1'], g['b2']]) rds = map(lambda x: db.getPlayerRD(x), [g['a1'], g['a2'], g['b1'], g['b2']]) rps = map(lambda x: glicko.secToRatingPeriods(g['t'] - db.getPlayerT(x)), [g['a1'], g['a2'], g['b1'], g['b2']]) # log game data = { 't':g['t'], 'a1':g['a1'], 'a1_r':ratings[0], 'a1_rd':rds[0], 'a2':g['a2'], 'a2_r':ratings[1], 'a2_rd':rds[1], 'b1':g['b1'], 'b1_r':ratings[2], 'b1_rd':rds[2], 'b2':g['b2'], 'b2_r':ratings[3], 'b2_rd':rds[3] } print data db.recordGame(data) # compute new scores [stats1, stats2, stats3, stats4] = glicko.calcGameScores(ratings, rds, rps)
a1 = form['a1'].value a2 = form['a2'].value b1 = form['b1'].value b2 = form['b2'].value if 'TeamAWins' in form: pass elif 'TeamBWins' in form: [a1,a2,b1,b2] = [b2,b1,a2,a1] else: raise "Who won?" ratings = map(lambda x: db.getPlayerRating(x), [a1,a2,b1,b2]) rds = map(lambda x: db.getPlayerRD(x), [a1,a2,b1,b2]) tnow = int(time.time()) tds = map(lambda x: glicko.secToRatingPeriods(tnow - db.getPlayerT(x)), [a1,a2,b1,b2]) # log game db.recordGame({ 't': tnow, 'a1':a1, 'a1_r':ratings[0], 'a1_rd':rds[0], 'a2':a2, 'a2_r':ratings[1], 'a2_rd':rds[1], 'b1':b1, 'b1_r':ratings[2], 'b1_rd':rds[2], 'b2':b2, 'b2_r':ratings[3], 'b2_rd':rds[3] }) # compute new scores [stats1, stats2, stats3, stats4] = glicko.calcGameScores(ratings, rds, tds) # store new scores db.setPlayerStats(a1, stats1 + [tnow])