diff --git a/backend/src/main.rs b/backend/src/main.rs index e7fdfd8..f9057f4 100644 --- a/backend/src/main.rs +++ b/backend/src/main.rs @@ -1162,8 +1162,24 @@ fn games_for(conn: &Connection, team_name: &str) -> Result, ApiErro COALESCE(SUM(p.missile_evades), 0), COALESCE(SUM(p.shell_interceptions), 0), COALESCE(SUM(p.team_kills_stat), 0), - m.winning_slot, - m.losing_slot + (SELECT pg.team_name + FROM player_games_hist pg + WHERE pg.session_id = p.session_id + AND pg.team_name IS NOT NULL + AND pg.team_name != '' + AND pg.victor_bool = 'Win' + GROUP BY pg.team_name COLLATE NOCASE + ORDER BY COUNT(DISTINCT pg.UID) DESC, pg.team_name COLLATE NOCASE + LIMIT 1), + (SELECT pg.team_name + FROM player_games_hist pg + WHERE pg.session_id = p.session_id + AND pg.team_name IS NOT NULL + AND pg.team_name != '' + AND pg.victor_bool = 'Loss' + GROUP BY pg.team_name COLLATE NOCASE + ORDER BY COUNT(DISTINCT pg.UID) DESC, pg.team_name COLLATE NOCASE + LIMIT 1) FROM player_games_hist p LEFT JOIN match_summary m ON m.session_id = p.session_id WHERE p.team_name = ?1 COLLATE NOCASE @@ -1240,8 +1256,24 @@ fn recent_games_for(conn: &Connection, limit: i64) -> Result, ApiEr COALESCE(SUM(p.missile_evades), 0), COALESCE(SUM(p.shell_interceptions), 0), COALESCE(SUM(p.team_kills_stat), 0), - m.winning_slot, - m.losing_slot + (SELECT pg.team_name + FROM player_games_hist pg + WHERE pg.session_id = r.session_id + AND pg.team_name IS NOT NULL + AND pg.team_name != '' + AND pg.victor_bool = 'Win' + GROUP BY pg.team_name COLLATE NOCASE + ORDER BY COUNT(DISTINCT pg.UID) DESC, pg.team_name COLLATE NOCASE + LIMIT 1), + (SELECT pg.team_name + FROM player_games_hist pg + WHERE pg.session_id = r.session_id + AND pg.team_name IS NOT NULL + AND pg.team_name != '' + AND pg.victor_bool = 'Loss' + GROUP BY pg.team_name COLLATE NOCASE + ORDER BY COUNT(DISTINCT pg.UID) DESC, pg.team_name COLLATE NOCASE + LIMIT 1) FROM recent r JOIN player_games_hist p ON p.session_id = r.session_id AND p.team_name = r.team_name COLLATE NOCASE @@ -1303,8 +1335,24 @@ fn game_for(conn: &Connection, session_id: &str) -> Result, ApiE COALESCE(SUM(p.missile_evades), 0), COALESCE(SUM(p.shell_interceptions), 0), COALESCE(SUM(p.team_kills_stat), 0), - m.winning_slot, - m.losing_slot + (SELECT pg.team_name + FROM player_games_hist pg + WHERE pg.session_id = p.session_id + AND pg.team_name IS NOT NULL + AND pg.team_name != '' + AND pg.victor_bool = 'Win' + GROUP BY pg.team_name COLLATE NOCASE + ORDER BY COUNT(DISTINCT pg.UID) DESC, pg.team_name COLLATE NOCASE + LIMIT 1), + (SELECT pg.team_name + FROM player_games_hist pg + WHERE pg.session_id = p.session_id + AND pg.team_name IS NOT NULL + AND pg.team_name != '' + AND pg.victor_bool = 'Loss' + GROUP BY pg.team_name COLLATE NOCASE + ORDER BY COUNT(DISTINCT pg.UID) DESC, pg.team_name COLLATE NOCASE + LIMIT 1) FROM player_games_hist p LEFT JOIN match_summary m ON m.session_id = p.session_id WHERE p.session_id = ?1 diff --git a/frontend/src/App.jsx b/frontend/src/App.jsx index 1f91c51..d15ecc8 100644 --- a/frontend/src/App.jsx +++ b/frontend/src/App.jsx @@ -110,8 +110,8 @@ function formatDate(timestamp) { } function gameParticipants(game) { - const winner = game?.winning_team || '' - const loser = game?.losing_team || '' + const winner = displayTeamName(game?.winning_team) + const loser = displayTeamName(game?.losing_team) if (winner || loser) { return [ @@ -131,6 +131,11 @@ function gameParticipants(game) { ] } +function displayTeamName(value) { + const name = String(value || '').trim() + return /^\d+$/.test(name) ? '' : name +} + function ParticipantNames({ participants }) { if (!participants.length) { return

Participants unknown

@@ -2390,8 +2395,6 @@ function RecentGamesSection({ live, matches, navigate }) {

- {formatNumber(match.stats?.ground_kills)} ground - {formatNumber(match.stats?.air_kills)} air {formatNumber(match.stats?.deaths)} deaths
@@ -2786,8 +2789,8 @@ function GamePage({ gameId, navigate }) { {game ? (
- - + +
) : null} @@ -2806,7 +2809,7 @@ function GamePage({ gameId, navigate }) { const won = String(participant.result || '').toLowerCase() === 'win' return ( ) @@ -2884,7 +2886,7 @@ function BattleResults({ games, navigate, status }) {
{games.map((game) => (

{formatNumber(game.player_count)} players

-

{formatNumber(game.stats?.ground_kills)} ground

-

{formatNumber(game.stats?.air_kills)} air

{formatNumber(game.stats?.assists)} assists

{formatNumber(game.stats?.deaths)} deaths

@@ -2926,7 +2926,7 @@ function BattleLogsPage({ live, matches, navigate }) {
{matches.map((match) => (

{formatNumber(match.player_count)} players

-

{formatNumber(match.stats?.ground_kills)} ground

-

{formatNumber(match.stats?.air_kills)} air

{formatNumber(match.stats?.deaths)} deaths

))}