summaryrefslogtreecommitdiff
path: root/examples/dashboard/app.py
blob: ee9de663a94205128af2c19d7b50b24c0d67caf8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#!/usr/bin/python
# -*- coding: utf-8 -*-

from flask import Flask, render_template
import json
import gamelocker

app = Flask(__name__)

@app.route("/")
def index():
    api = gamelocker.Gamelocker("aaa.bbb.ccc").vainglory()
    number = 100
    matches = api.matches(number)

    # TODO this, is a mess.
    gameModes = []
    for match in matches:
        gmsuccess = False
        for mode in gameModes:
            if mode["name"] == match.gameMode:
                mode["y"] += 1
                gmsuccess = True
                break
        if gmsuccess == False:
            gameModes.append({"name": match.gameMode, "y": 1})

    players = []
    picks = dict()
    for match in matches:
        for roster in match.rosters:
            for participant in roster.participants:
                # --- player stats
                plsuccess = False
                for player in players:
                    if player["name"] == participant.player.name:
                        player["data"][0] += 1
                        plsuccess = True
                        break
                if plsuccess == False:
                    players.append({"name": participant.player.name, "data": [1]})

                # --- hero stats
                if match.gameMode not in picks:
                    picks[match.gameMode] = dict()
                if participant.actor not in picks[match.gameMode]:
                    picks[match.gameMode][participant.actor] = 0
                picks[match.gameMode][participant.actor] += 1

    for p in picks: # flatten
        heroes = list(picks[p].keys())
        picks[p] = list(picks[p].values())
    new_picks = []
    for k, v in picks.items():
        new_picks.append({"name": k, "data": v})
    picks = new_picks
        
    players = sorted(players, key=lambda k: k["data"][0])
    players = players[:5]

    return render_template("index.html", gameModeNum=number, gameModes=gameModes, players=players, picks=picks, heroes=heroes)

if __name__ == "__main__":
    app.run()