def build_users(machines, info): for machine in machines: games_per_hour = ( (machine["nps"] / 1080000.0) * (3600.0 / estimate_game_duration(machine["run"]["args"]["tc"])) * (int(machine["concurrency"]) // machine["run"]["args"].get("threads", 1)) ) info[machine["username"]]["games_per_hour"] += games_per_hour users = [] for u in info.keys(): user = info[u] try: if isinstance(user["last_updated"], str): diff = diff_date(user["task_last_updated"]) user["diff"] = diff.total_seconds() user["last_updated"] = delta_date(diff) else: diff = diff_date(user["last_updated"]) user["diff"] = diff.total_seconds() user["last_updated"] = delta_date(diff) except: pass users.append(user) users = [u for u in users if u["games"] > 0 or u["tests"] > 0] return users
def homepage_results(request): # Calculate games_per_minute from current machines games_per_minute = 0.0 machines = request.rundb.get_machines() for machine in machines: diff = diff_date(machine["last_updated"]) machine["last_updated"] = delta_date(diff) if machine["nps"] != 0: games_per_minute += ( (machine["nps"] / 1328000.0) * (60.0 / estimate_game_duration(machine["run"]["args"]["tc"])) * (int(machine["concurrency"]) // machine["run"]["args"].get("threads", 1))) # Get updated results for unfinished runs + finished runs (runs, pending_hours, cores, nps) = request.rundb.aggregate_unfinished_runs() return { **get_paginated_finished_runs(request), "runs": runs, "machines": machines, "pending_hours": "{:.1f}".format(pending_hours), "cores": cores, "nps": nps, "games_per_minute": int(games_per_minute), }
def tests_machines(request): machines = request.rundb.get_machines() for machine in machines: diff = diff_date(machine["last_updated"]) machine["last_updated"] = delta_date(diff) return {"machines": machines}