<commit_before><h2>Players ranking</h2>
<div class="alert alert-info" *ngIf="!hasRankedPlayers()">
    Active players not found!
    <a [routerLink]="['/leagues', leagueId, 'players']" class="alert-link">Manage players</a>
</div>
<table class="shadedtable table" *ngIf="hasRankedPlayers()">
    <thead class="thead-default">
        <tr>
            <th>Position</th>
            <th>Username</th>
            <th>Rating</th>
            <th>Won</th>
            <th>Lost</th>
        </tr>
    </thead>
    <tbody>
        <tr *ngFor="let player of rankedPlayers; let i=index" [routerLink]="['/leagues', leagueId, 'players', player.id]">
            <td>
                {{i + 1}}
                <img *ngIf="i == 0" src="assets/img/medals/medal_gold.png" />
                <img *ngIf="i == 1" src="assets/img/medals/medal_silver.png" />
                <img *ngIf="i == 2" src="assets/img/medals/medal_bronze.png" />
            </td>
            <td>
                <a [routerLink]="['/leagues', leagueId, 'players', player.id]">{{player.username}}</a>
            </td>
            <td>
                {{player.rating}}
            </td>
            <td [ngSwitch]="rankedPlayersStats.get(player.id)">
                <div *ngSwitchCase="undefined">
                    <app-spinner></app-spinner>
                </div>
                <div *ngSwitchDefault>
                    <span class="won">{{ rankedPlayersStats.get(player.id).wins }}</span>
                </div>
            </td>
            <td [ngSwitch]="rankedPlayersStats.get(player.id)">
                <div *ngSwitchCase="undefined">
                    <app-spinner></app-spinner>
                </div>
                <div *ngSwitchDefault>
                    <span class="lost">{{ rankedPlayersStats.get(player.id).loses }}</span>
                </div>
        </tr>
    </tbody>
</table><commit_msg>Ranking improvements<commit_after><h2>Players ranking</h2>
<div class="alert alert-info" *ngIf="!hasRankedPlayers()">
    Active players not found!
    <a [routerLink]="['/leagues', leagueId, 'players']" class="alert-link">Manage players</a>
</div>
<table class="shadedtable table" *ngIf="hasRankedPlayers()">
    <thead class="thead-default">
        <tr>
            <th>Position</th>
            <th>Username</th>
            <th>Won</th>
            <th>Lost</th>
            <th>Rating</th>
        </tr>
    </thead>
    <tbody>
        <tr *ngFor="let player of rankedPlayers; let i=index" [routerLink]="['/leagues', leagueId, 'players', player.id]">
            <td>
                {{i + 1}}
                <img *ngIf="i == 0" src="assets/img/medals/medal_gold.png" />
                <img *ngIf="i == 1" src="assets/img/medals/medal_silver.png" />
                <img *ngIf="i == 2" src="assets/img/medals/medal_bronze.png" />
            </td>
            <td>
                <a [routerLink]="['/leagues', leagueId, 'players', player.id]">{{player.username}}</a>
            </td>
            <td [ngSwitch]="rankedPlayersStats.get(player.id)">
                <app-spinner *ngSwitchCase="undefined"></app-spinner>
                <span *ngSwitchDefault class="won text-success">{{ rankedPlayersStats.get(player.id).wins }}</span>
            </td>
            <td [ngSwitch]="rankedPlayersStats.get(player.id)">
                <app-spinner *ngSwitchCase="undefined"></app-spinner>
                <span *ngSwitchDefault class="lost text-danger">{{ rankedPlayersStats.get(player.id).loses }}</span>
            </td>
            <td class="font-weight-bold">
                {{player.rating}}
            </td>
        </tr>
    </tbody>
</table>
{'fraction_non_alphanumeric': 0.18116936590721933, 'fraction_numerical': 0.0032939884710403516, 'mean_word_length': 1.885193982581156, 'pattern_counts': {'":': 0, '<': 108, '<?xml version=': 0, '>': 108, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2773100', 'n_tokens_mistral': 1215, 'n_tokens_neox': 1137, 'n_words': 194}