function get_clanstats($count = 15, $clan = null, $time = false)
{
    global $sort_param;
    $clanstats_state = new ActionFPS\BasicStateResult([], []);
    $clanstats_state->loadFromFile(__DIR__ . "/../data/clanstats.json");
    $clanstats = $clanstats_state->getState();
    $sort_param = 'elo';
    uasort($clanstats->now, 'sort_func');
    $i = 1;
    foreach ($clanstats->now as &$_clan) {
        if ($_clan->wars >= ClanStats::MIN_WARS_RANK) {
            $_clan->rank = $i;
            $i++;
        } else {
            $_clan->rank = null;
        }
        $_clan->name = find_clan($_clan->clan)->name;
    }
    $sort_param = 'wars';
    uasort($clanstats->now, 'sort_func');
    $stats = new stdClass();
    $stats->now = [];
    if (!$clan) {
        $i = 1;
        foreach ($clanstats->now as $id => &$_clan) {
            if ($count <= 0 || $i <= $count) {
                $stats->now[$id] = $_clan;
            }
            $i++;
        }
        if ($time) {
            $stats->states = [];
            foreach ($clanstats->states as $date => $state) {
                $stats->states[$date] = [];
                $i = 1;
                foreach ($clanstats->states as $id => &$_clan) {
                    if ($count <= 0 || $i <= $count) {
                        $stats->states[$date][$id] = $_clan;
                    }
                    $i++;
                }
            }
        }
    } else {
        if (array_key_exists($clan, $clanstats->now)) {
            $stats->now = $clanstats->now[$clan];
        }
        if ($time) {
            $stats->states = [];
            foreach ($clanstats->states as $date => $state) {
                if (array_key_exists($clan, $state)) {
                    $stats->states[$date] = $state[$clan];
                }
            }
        }
    }
    return $stats;
}
function get_playerstats($count = 15, $player = null, $ranked = true)
{
    $playerstats_state = new ActionFPS\BasicStateResult([], []);
    $playerstats_state->loadFromFile(__DIR__ . "/../data/playerstats.json");
    $playerstats = $playerstats_state->getState();
    if ($player) {
        return $playerstats[$player];
    }
    $stats = [];
    foreach ($playerstats as $user => $stat) {
        if (!$ranked || isset($stat->rank)) {
            $stats[$user] = $stat;
        }
    }
    if ($count) {
        $stats = array_slice($stats, 0, $count);
    }
    return $stats;
}
Пример #3
0
<?php

require_once __DIR__ . '/vendor/autoload.php';
require_once "state/PlayerStats.php";
require_once "state/Clanwars.php";
require_once "state/ClanStats.php";
$playerstats = new PlayerStatsAccumulator();
$clanwars = new ClanwarsAccumulator();
$clanstats = new ClanStatsAccumulator();
$reference = new ActionFPS\GamesCachedActionReference();
$proc = new ActionFPS\Processor();
$playerstats_state = new ActionFPS\BasicStateResult([], []);
$clanwars_state = new ActionFPS\BasicStateResult([], []);
$clanstats_state = new ActionFPS\BasicStateResult([], []);
$playerstats_state->loadFromFile("data/playerstats.json");
$clanwars_state->loadFromFile("data/clanwars.json");
$clanstats_state->loadFromFile("data/clanstats.json");
$proc->processNewGames($reference, $playerstats, $playerstats_state)->saveToFile("data/playerstats.json");
$clanwars_state = $proc->processNewGames($reference, $clanwars, $clanwars_state);
$clanwars_state->saveToFile("data/clanwars.json");
$state = $clanwars_state->getState();
$wars = $state->completed;
$proc->processFromScratch($reference, $clanstats, $wars)->saveToFile("data/clanstats.json");