64 lines
2.0 KiB
Python
64 lines
2.0 KiB
Python
import sqlite3
|
|
import pandas as pd
|
|
import json
|
|
import os
|
|
import sys
|
|
|
|
# Add parent directory
|
|
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
|
from web.config import Config
|
|
|
|
def check_mapping():
|
|
conn = sqlite3.connect(Config.DB_L2_PATH)
|
|
|
|
# Join economy and teams via match_id
|
|
# We need to match steam_id (in eco) to group_uids (in teams)
|
|
|
|
# 1. Get Economy R1 samples
|
|
query_eco = """
|
|
SELECT match_id, steam_id_64, side
|
|
FROM fact_round_player_economy
|
|
WHERE round_num = 1
|
|
LIMIT 10
|
|
"""
|
|
eco_rows = pd.read_sql_query(query_eco, conn)
|
|
|
|
if eco_rows.empty:
|
|
print("No Economy R1 data found.")
|
|
conn.close()
|
|
return
|
|
|
|
print("Checking Mapping...")
|
|
for _, row in eco_rows.iterrows():
|
|
mid = row['match_id']
|
|
sid = row['steam_id_64']
|
|
side = row['side']
|
|
|
|
# Get Teams for this match
|
|
query_teams = "SELECT group_id, group_fh_role, group_uids FROM fact_match_teams WHERE match_id = ?"
|
|
team_rows = pd.read_sql_query(query_teams, conn, params=(mid,))
|
|
|
|
for _, t_row in team_rows.iterrows():
|
|
# Check if sid is in group_uids (which contains UIDs, not SteamIDs!)
|
|
# We need to map SteamID -> UID
|
|
# Use dim_players or fact_match_players
|
|
q_uid = "SELECT uid FROM fact_match_players WHERE match_id = ? AND steam_id_64 = ?"
|
|
uid_res = conn.execute(q_uid, (mid, sid)).fetchone()
|
|
if not uid_res:
|
|
continue
|
|
|
|
uid = str(uid_res[0])
|
|
group_uids = str(t_row['group_uids']).split(',')
|
|
|
|
if uid in group_uids:
|
|
role = t_row['group_fh_role']
|
|
print(f"Match {mid}: Steam {sid} (UID {uid}) is on Side {side} in R1.")
|
|
print(f" Found in Group {t_row['group_id']} with FH Role {role}.")
|
|
print(f" MAPPING: Role {role} = {side}")
|
|
break
|
|
|
|
conn.close()
|
|
|
|
if __name__ == "__main__":
|
|
check_mapping()
|