예제 #1
0
 /**
  * update statistics
  * @param array $options
  * @return void
  */
 public function update_stats(array $options)
 {
     $log = Registry::getInstance()->getLogger();
     $log->info('start updating stats');
     $log->info('updating kills by Shiptype');
     // stats table of how often all ships have been killed
     KillsByShip::mapReduce();
     $log->info('update of KillsByShip stats completed');
     $log->info('updating pilot loss stats');
     LossesByShipByPilot::mapReduce();
     $log->info('update of pilot loss stats completed');
     $log->info('updating pilot kill stats');
     KillsByShipByPilot::mapReduce();
     $log->info('update of pilot kill stats completed');
     $log->info('updating corporation loss stats');
     LossesByShipByCorporation::mapReduce();
     $log->info('update of corporation loss stats completed');
     $log->info('updating corporation kill stats');
     KillsByShipByCorporation::mapReduce();
     $log->info('update of corporation kill stats completed');
     $log->info('updating alliance loss stats');
     LossesByShipByAlliance::mapReduce();
     $log->info('update of alliance loss stats completed');
     $log->info('updating alliance kill stats');
     KillsByShipByAlliance::mapReduce();
     $log->info('update of alliance kill stats completed');
     $log->info('updating faction loss stats');
     LossesByShipByFaction::mapReduce();
     $log->info('update of faction loss stats completed');
     $log->info('updating faction kill stats');
     KillsByShipByFaction::mapReduce();
     $log->info('update of faction kill stats completed');
     $log->info('updating name lists for search');
     NameSearch::mapReduce();
     $log->info("name list updated");
     $log->info('updating daily stats');
     KillsByDay::mapReduce();
     $log->info("daily stats updated");
     $log->info('updating daily stats by entity');
     KillsByDayByEntity::mapReduce();
     $log->info("daily stats by entity updated");
 }
예제 #2
0
 public function index($request)
 {
     $currentPage = 1;
     if (!empty($request['page'])) {
         $currentPage = (int) $request['page'] < 1 ? 1 : (int) $request['page'];
     }
     $info = array();
     $templateVars = array();
     // differences for owned boards
     if ($this->_context['ownerID']) {
         $killList = new \Kingboard\Lib\KillList($this->_context["ownerType"], $this->_context["ownerID"]);
         $templateVars['killstats'] = $killList->getKillStats();
         $templateVars['lossstats'] = $killList->getLossStats();
         $templateVars['totalstats'] = $killList->getTotalStats();
         $template = "index_owned_board.html";
     } else {
         // this is the only case of a list without owner/type, which is open list.
         $killList = new \Kingboard\Lib\KillList(null, null);
         $stats = \Kingboard\Model\MapReduce\KillsByShip::find();
         $stats = $stats->sort(array("value.value" => -1));
         $total = 0;
         foreach ($stats as $stat) {
             $total += $stat['value']['total'];
         }
         $killList->setCount($total);
         $templateVars['stats'] = $stats;
         $template = "index.html";
     }
     $paginator = new \Kingboard\Lib\Paginator($currentPage, $killList->getCount());
     // fetch kill data
     $templateVars['data'] = $killList->getKills($paginator->getSkip(), $paginator->getKillsPerPage());
     // merge in pagination data
     $templateVars = array_merge($templateVars, $paginator->getNavArray());
     $templateVars['action'] = '/kills';
     $templateVars['count'] = $killList->getCount();
     $templateVars['info'] = $info;
     return $this->render($template, $templateVars);
 }