Add sample scenario data and reporting updates
This commit is contained in:
1 parent
aa0028e7e0
commit
133bc6ce3f
15 files changed
+444
-238
No files matched your search
@@ -55,6 +55,7 @@ def fields_templates(conn, game_id):
|
||||
def player_values(r):
|
||||
now=datetime.now(timezone.utc)
|
||||
p=dict(r["latest_data"] or {})
|
||||
p.setdefault('playStyle',(r.get('metadata') or {}).get('personaLabel'))
|
||||
p.update({"playerId":r["id"],"gameId":r["game_id"],"robloxUserId":r["roblox_user_id"],"name":r["display_name"],
|
||||
"id":f"User ID {r['roblox_user_id']}","firstSeen":r["first_seen"],"lastSeenAt":r["last_seen"],"snapshotAt":r["snapshot_at"],
|
||||
"firstSeenDays":(now-r["first_seen"]).total_seconds()/86400,
|
||||
@@ -84,7 +85,7 @@ def player_list(conn,gid,params):
|
||||
fields,templates=fields_templates(conn,gid)
|
||||
players=all_players(conn,gid)
|
||||
ranking=params.get('ranking',['level'])[0]
|
||||
if ranking not in {f['key'] for f in fields}: raise ApiError(400,'Unknown ranking.')
|
||||
if ranking not in {f['key'] for f in fields if f['format'] not in ('text','json')}: raise ApiError(400,'Unknown ranking.')
|
||||
boards=[]
|
||||
for key in dict.fromkeys(['robux','playtime','cash',ranking]):
|
||||
field=next((f for f in fields if f['key']==key),None)
|
||||
@@ -281,7 +282,7 @@ def player_history(conn,gid,pid,fields,params):
|
||||
WHERE game_id=ps.game_id AND player_id=ps.player_id AND purchased_at<=ps.captured_at AND unit_price_robux>0) sp
|
||||
WHERE ps.game_id=%s AND ps.player_id=%s ORDER BY ps.captured_at,ps.id""",(gid,pid))
|
||||
supported={'sessions','playtime','avgSession','medianSession','activeDays','robuxPerHour','robux','purchases'}
|
||||
graph_fields=[dict(f) for f in fields if f['source']=='snapshot' or f['key'] in supported]
|
||||
graph_fields=[dict(f) for f in fields if (f['source']=='snapshot' or f['key'] in supported) and f['format'] not in ('text','json')]
|
||||
for key,title,fmt in [('sessions','Sessions','number'),('playtime','Lifetime playtime','duration'),
|
||||
('avgSession','Average session','duration'),('medianSession','Median session','duration'),
|
||||
('activeDays','Active days (30d)','number'),('robux','Robux spent','robux'),
|
||||
|
||||
Reference in new issue
Block a user