def create_from_game(game: Game, full=True, groups=False, session=None) -> 'Replay': group_map = None if groups and session is not None: players = session.query(Player).filter(Player.platformid.in_(game.players)).all() group_map = {player.platformid: player.groups for player in players} return Replay( id_=game.hash, name=game.name, date=game.match_date.isoformat(), map=game.map, game_mode=get_playlist(game.playlist, game.teamsize), game_score=GameScore.create_from_game(game), players=[ ReplayPlayer.create_from_player_game(player_game, full=full) for player_game in sort_player_games_by_team_then_id( cast(List[PlayerGame], game.playergames)) ], tags=[ JsonTag.create_from_dbtag(tag) for tag in game.tags if tag.owner == get_current_user_id() ], visibility=game.visibility, ranks=game.ranks, mmrs=game.mmrs, group_map=group_map )
def create_from_game(game: Game) -> 'Replay': return Replay(id_=game.hash, name=game.name, date=game.match_date.isoformat(), map=game.map, game_mode=get_playlist(game.playlist, game.teamsize), game_score=GameScore.create_from_game(game), players=[ ReplayPlayer.create_from_player_game(player_game) for player_game in sort_player_games_by_team_then_id( cast(List[PlayerGame], game.playergames)) ], tags=[ JsonTag.create_from_dbtag(tag) for tag in game.tags if tag.owner == get_current_user_id() ], visibility=game.visibility, ranks=game.ranks, mmrs=game.mmrs)