Example #1
0
 /**
  * Fetch up to 10 Solar Systems starting with term
  */
 public function solarsystem(array $parameters)
 {
     $output = array();
     $result = \Kingboard\Model\EveSolarSystem::find(array('itemName' => new \MongoRegex('/^' . $parameters['term'] . '.*/i')), array('itemName' => 1))->limit(10);
     foreach ($result as $system) {
         $output[] = $system['itemName'];
     }
     echo json_encode($output);
 }
Example #2
0
 /**
  * parse an kill array, add all necessary data and safe
  * @param array $kill
  * @throws \Exception
  * @return bool
  */
 public function parseKill($kill)
 {
     $qtyDropped = 0;
     $qtyDestroyed = 0;
     $valueDropped = 0;
     $valueDestroyed = 0;
     // this needs to be run before exit of loop, otherwise having all kills of this run
     // will cause the lastID not being updated
     if (!isset($kill['killID']) || is_null($kill['killID']) || $kill['killID'] < 1) {
         throw new \Exception("no valid killID set");
     }
     $killdata = $kill;
     // the kill needs some additional data
     // convert killID to int
     $killdata['killID'] = (int) $killdata['killID'];
     // location data
     $killdata['location'] = array("solarSystem" => EveSolarSystem::getBySolarSystemId($kill['solarSystemID'])->itemName, "security" => EveSolarSystem::getBySolarSystemId($kill['solarSystemID'])->security, "region" => EveSolarSystem::getBySolarSystemId($kill['solarSystemID'])->Region['itemName']);
     // killtime conversion to Mongo
     $killdata['killTime'] = new \MongoDate(strtotime($kill['killTime']));
     // victim conversions / additional data
     $killdata['victim']['characterID'] = (int) $this->ensureEveEntityID($kill['victim']['characterID'], $kill['victim']['characterName']);
     $killdata['victim']['corporationID'] = (int) $this->ensureEveEntityID($kill['victim']['corporationID'], $kill['victim']['corporationName']);
     $killdata['victim']['allianceID'] = (int) $kill['victim']['allianceID'];
     $killdata['victim']['factionID'] = (int) $kill['victim']['factionID'];
     $killdata['victim']['shipTpyeID'] = (int) $kill['victim']['shipTypeID'];
     $killdata['victim']['shipType'] = EveItem::getByItemId($kill['victim']['shipTypeID'])->typeName;
     $killdata['victim']['iskValue'] = EveITem::getItemValue($kill['victim']['shipTypeID']);
     //  add victim to involveds
     $involvedCharacters = array((int) $killdata["victim"]["characterID"]);
     $involvedCorporations = array((int) $killdata["victim"]["corporationID"]);
     if ($killdata['victim']['allianceID'] > 0) {
         $involvedAlliances = array((int) $killdata["victim"]["allianceID"]);
     } else {
         $involvedAlliances = array();
     }
     if ($killdata['victim']['factionID'] > 0) {
         $involvedFactions = array((int) $killdata["victim"]["factionID"]);
     } else {
         $involvedFactions = array();
     }
     // Karbos ISK Value
     $totalISKValue = EveItem::getItemValue($kill['victim']['shipTypeID']);
     foreach ($kill['attackers'] as $id => $attacker) {
         $killdata['attackers'][$id]['characterID'] = (int) $this->ensureEveEntityId($attacker['characterID'], $attacker['characterName']);
         $killdata['attackers'][$id]['corporationID'] = (int) $this->ensureEveEntityID($attacker['corporationID'], $attacker['corporationName']);
         $killdata['attackers'][$id]['allianceID'] = (int) $attacker['allianceID'];
         $killdata['attackers'][$id]['factionID'] = (int) $attacker['factionID'];
         $killdata['attackers'][$id]['weaponTypeID'] = (int) $attacker['weaponTypeID'];
         $killdata['attackers'][$id]['weaponType'] = EveItem::getByItemId($attacker['weaponTypeID'])->typeName;
         $killdata['attackers'][$id]['shipTypeID'] = (int) $attacker['shipTypeID'];
         $killdata['attackers'][$id]['shipType'] = EveItem::getByItemId($attacker['shipTypeID'])->typeName;
         // add involveds
         if (!in_array($attacker['characterID'], $involvedCharacters) && $attacker['characterID'] > 0) {
             $involvedCharacters[] = (int) $attacker['characterID'];
         }
         if (!in_array($attacker['corporationID'], $involvedCorporations) && $attacker['corporationID'] > 0) {
             $involvedCorporations[] = (int) $attacker['corporationID'];
         }
         if (!in_array($attacker['allianceID'], $involvedAlliances) && $attacker['allianceID'] > 0) {
             $involvedAlliances[] = (int) $attacker['allianceID'];
         }
         if (!in_array($attacker['factionID'], $involvedFactions) && $attacker['factionID'] > 0) {
             $involvedFactions[] = (int) $attacker['factionID'];
         }
     }
     if (@(!is_null($kill['items']))) {
         foreach ($kill['items'] as $id => $item) {
             $item = $this->parseItem($item);
             $killdata['items'][$id] = $item;
             $totalISKValue += $item["iskValue"];
             $qtyDropped += $item["qtyDropped"];
             $valueDropped += $item["iskValue"];
             $qtyDestroyed += $item["qtyDestroyed"];
             $valueDestroyed += $item["iskValue"];
         }
     }
     $killdata["involvedCorporations"] = $involvedCorporations;
     $killdata["involvedAlliances"] = $involvedAlliances;
     $killdata["involvedCharacters"] = $involvedCharacters;
     $killdata["involvedFactions"] = $involvedFactions;
     $killdata['totalISKValue'] = $totalISKValue;
     $killdata['totalDropped'] = $qtyDropped;
     $killdata['totalDestroyed'] = $qtyDestroyed;
     $killdata['totalISKDropped'] = $valueDropped;
     $killdata['totalISKDestroyed'] = $valueDestroyed;
     if (is_null(Kill::getByKillId($killdata['killID']))) {
         $killObject = new Kill();
         $killObject->injectDataFromMail($killdata);
         $killObject->save();
         return true;
     } else {
         return false;
     }
 }