function collectHourStat($store = false)
 {
     $stats = new stdClass();
     $stats->time = gmdate("Y-m-d H:00:00", time());
     $stats->duration = "hour";
     $database = new DatabaseManager();
     //Addons!
     $addons = new stdClass();
     $addonArray = AddonManager::getAll();
     $addons->count = sizeof($addonArray);
     $addons->cumulative_downloads = array();
     $addons->usage = array();
     $addons->usage_total = array();
     foreach ($addonArray as $addon) {
         $downloadData = new stdClass();
         // TODO we need to go back. I dont want total downloads, I want individual
         //$downloadData->web =
         //$downloadData->ingame =
         //$downloadData->update =
         $addons->cumulative_downloads[$addon->getId()] = $downloadData;
         $res = $database->query("SELECT `version` FROM `stats_usage` WHERE `aid`='" . $addon->getId() . "' AND `reported` > now() - INTERVAL 1 HOUR");
         $ret = $res->fetch_object();
         $usage = array();
         $total = 0;
         while ($obj = $res->fetch_object()) {
             $total++;
             if (!isset($usage[$obj->version])) {
                 $usage[$obj->version] = 1;
             } else {
                 $usage[$obj->version]++;
             }
         }
         $addons->usage[$addon->getId()] = $usage;
         $addons->usage_total[$addon->getId()] = $total;
     }
     $stats->addons = $addons;
     //Builds
     $builds = new stdClass();
     $buildArray = BuildManager::getAll();
     $builds->count = sizeof($buildArray);
     $builds->cumulative_downloads = array();
     foreach ($buildArray as $build) {
         // TODO this isn't done either...
         //$builds->cumulative_downloads[$build->getId()] = $build->getDownloads();
     }
     $stats->builds = $builds;
     //Master Server
     $stats->master = new stdClass();
     $master = CronStatManager::getMasterServerStats();
     $stats->master->users = $master[0];
     $stats->master->servers = $master[1];
     if ($store) {
         CronStatManager::verifyTable($database);
         $database->query("INSERT INTO `cron_statistics`  (`time` , `duration` , `data`) VALUES ('" . $stats->time . "',  'hour',  '" . $database->sanitize(json_encode($stats)) . "')");
     }
     return $stats;
 }
Example #2
0
<?php

header('Content-Type: text/json');
require_once dirname(__DIR__) . '/class/CronStatManager.php';
CronStatManager::collectHourStat(true);
require_once dirname(__DIR__) . '/class/AddonManager.php';
AddonManager::checkUpstreamRepos();
Example #3
0
<?php

require_once dirname(__DIR__) . "/private/class/GroupManager.php";
require_once dirname(__DIR__) . "/private/class/UserManager.php";
require_once dirname(__DIR__) . "/private/class/CronStatManager.php";
$_PAGETITLE = "Blockland Glass | Statistics";
include realpath(dirname(__DIR__) . "/private/header.php");
include realpath(dirname(__DIR__) . "/private/navigationbar.php");
$user = UserManager::getCurrent();
$web = StatManager::getAllAddonDownloads("web") + 0;
$ingame = StatManager::getAllAddonDownloads("ingame") + 0;
$updates = StatManager::getAllAddonDownloads("updates") + 0;
$total = $web + $ingame + $updates;
$csm = new CronStatManager();
$data = $csm->getRecentBlocklandStats(24);
?>
<style>
.list td {
  padding: 10px;
}

.list tr:nth-child(2n+1) td {
  background-color: #ddd;
}

.list tr:first-child td {
  background-color: #777;
  color: #fff;
  font-weight: bold;
}
Example #4
0
<?php

header('Content-Type: text/json');
require_once dirname(__DIR__) . '/class/CronStatManager.php';
$csm = new CronStatManager();
$csm->collectHourStat(true);
require_once dirname(__DIR__) . '/class/StatManager.php';
StatManager::saveHistory();
//require_once dirname(__DIR__) . '/class/AddonManager.php';
//AddonManager::checkUpstreamRepos();
Example #5
0
<?php

require_once dirname(__DIR__) . '/private/class/CronStatManager.php';
$stat1 = CronStatManager::getEntry("2015-11-27 17:00:00", "hour");
$stat2 = CronStatManager::getEntry("2015-11-27 18:00:00", "hour");
$res = CronStatManager::compare($stat1, $stat2);
header('Content-Type: text/json');
echo json_encode($res, JSON_PRETTY_PRINT);
 function collectHourStat($store = false)
 {
     $stats = new stdClass();
     $stats->time = gmdate("Y-m-d H:00:00", time());
     $stats->duration = "hour";
     //Addons!
     $addons = new stdClass();
     $addonArray = AddonManager::getAll();
     $addons->count = sizeof($addonArray);
     $addons->cumulative_downloads = array();
     foreach ($addonArray as $addon) {
         $downloadData = new stdClass();
         // TODO we need to go back. I dont want total downloads, I want individual
         //$downloadData->web =
         //$downloadData->ingame =
         //$downloadData->update =
         $addons->cumulative_downloads[$addon->getId()] = $downloadData;
     }
     $stats->addons = $addons;
     //Builds
     $builds = new stdClass();
     $buildArray = BuildManager::getAll();
     $builds->count = sizeof($buildArray);
     $builds->cumulative_downloads = array();
     foreach ($buildArray as $build) {
         // TODO this isn't done either...
         //$builds->cumulative_downloads[$build->getId()] = $build->getDownloads();
     }
     $stats->builds = $builds;
     //Master Server
     $stats->master = new stdClass();
     $master = CronStatManager::getMasterServerStats();
     $stats->master->users = $master[0];
     $stats->master->servers = $master[1];
     if ($store) {
         $database = new DatabaseManager();
         CronStatManager::verifyTable($database);
         $database->query("INSERT INTO `cron_statistics`  (`time` , `duration` , `data`) VALUES ('" . $stats->time . "',  'hour',  '" . $database->sanitize(json_encode($stats)) . "')");
     }
     return $stats;
 }