$extra['location'] = @$killdata['info']['location']['itemName']; $extra['totalisk'] = $killdata['info']['zkb']['totalValue']; $extra['droppedisk'] = droppedIsk(md5($id), $killdata['items']); $extra['shipprice'] = Price::getItemPrice($killdata['victim']['shipTypeID'], date('Ymd', strtotime($killdata['info']['dttm']))); $extra['lostisk'] = $extra['shipprice'] + destroyedIsk(md5($id), $killdata['items']); $extra['fittedisk'] = fittedIsk(md5($id), $killdata['items']); $extra['relatedtime'] = date('YmdH00', strtotime($killdata['info']['dttm'])); $extra['fittingwheel'] = Detail::eftarray(md5($id), $killdata['items'], @$killdata['victim']['characterID']); $extra['involvedships'] = involvedships($killdata['involved']); $extra['involvedshipscount'] = count($extra['involvedships']); $extra['totalprice'] = usdeurgbp($killdata['info']['zkb']['totalValue']); $extra['destroyedprice'] = usdeurgbp($extra['lostisk']); $extra['droppedprice'] = usdeurgbp($extra['droppedisk']); $extra['fittedprice'] = usdeurgbp($extra['fittedisk']); $extra['efttext'] = Fitting::EFT($extra['fittingwheel']); $extra['dnatext'] = Fitting::DNA($killdata['items'], $killdata['victim']['shipTypeID']); $extra['edkrawmail'] = 'deprecated - use CREST'; $extra['zkbrawmail'] = 'deprecated - use CREST'; $extra['slotCounts'] = Info::getSlotCounts($killdata['victim']['shipTypeID']); $extra['commentID'] = $id; $extra['crest'] = $mdb->findDoc('crestmails', ['killID' => $id, 'processed' => true]); $extra['prevKillID'] = $mdb->findField('killmails', 'killID', ['cacheTime' => 300, 'killID' => ['$lt' => $id]], ['killID' => -1]); $extra['nextKillID'] = $mdb->findField('killmails', 'killID', ['cacheTime' => 300, 'killID' => ['$gt' => $id]], ['killID' => 1]); $extra['warInfo'] = War::getKillIDWarInfo($id); //$extra["insertTime"] = Db::queryField("select insertTime from zz_killmails where killID = :killID", "insertTime", array(":killID" => $id), 300); $systemID = $killdata['info']['system']['solarSystemID']; $data = Info::getWormholeSystemInfo($systemID); $extra['wormhole'] = $data; $url = 'https://' . $_SERVER['SERVER_NAME'] . "/detail/{$id}/"; if ($killdata['victim']['groupID'] == 29) { $query = ['$and' => [['involved.characterID' => (int) $killdata['victim']['characterID']], ['killID' => ['$gte' => $id - 200]], ['killID' => ['$lt' => $id]], ['vGroupID' => ['$ne' => 29]]]];
<?php require '../includes/config.php'; $cache_timer = time() - 86400; $stmt = $db->prepare('SELECT * FROM doctrines WHERE value_fetched <= ? LIMIT 1'); $stmt->execute(array($cache_timer)); $doctrine = $stmt->fetch(PDO::FETCH_ASSOC); if (isset($doctrine['doctrineid'])) { $stmt = $db->prepare('SELECT * FROM doctrines_fits WHERE doctrineid = ?'); $stmt->execute(array($doctrine['doctrineid'])); $fittings = $stmt->fetchAll(PDO::FETCH_ASSOC); foreach ($fittings as $fitting) { echo "Previous fitting value: " . number_format($fitting['fitting_value']) . "<br />"; $fitting_value = Fitting::getFittingValue($fitting['fittingid'], $fitting['fitting_ship']); $stmt = $db->prepare('UPDATE doctrines_fits SET fitting_value = ? WHERE fittingid = ?'); $stmt->execute(array($fitting_value, $fitting['fittingid'])); echo "Fitting value added for Fitting " . number_format($fitting['fittingid']) . '<br />'; echo "New fitting value: " . number_format($fitting_value) . "<br />"; } $stmt = $db->prepare('UPDATE doctrines SET value_fetched = ? WHERE doctrineid = ?'); $stmt->execute(array(time(), $doctrine['doctrineid'])); } else { echo 'Nothing outside of 24 hour cache timer'; }
* (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ //make sure the requester is not being a naughty boy Util::scrapeCheck(); //set the headers to cache the request properly $dna = array(); $parameters = Util::convertUriToParameters(); $page = 1; if (isset($parameters["page"])) { $page = $parameters["page"]; } $kills = Feed::getKills(array("limit" => 200, "cacheTime" => 3600, "page" => $page)); foreach ($kills as $kill) { $kill = json_decode($kill, true); $killdata = Kills::getKillDetails($kill["killID"]); $dna[][] = array("killtime" => $killdata["info"]["dttm"], "SolarSystemName" => $killdata["info"]["solarSystemName"], "solarSystemID" => $killdata["info"]["solarSystemID"], "regionID" => $killdata["info"]["regionID"], "regionName" => $killdata["info"]["regionName"], "victimCharacterID" => isset($killdata["victim"]["characterID"]) ? isset($killdata["victim"]["characterID"]) : null, "victimCharacterName" => isset($killdata["victim"]["characterName"]) ? isset($killdata["victim"]["characterName"]) : null, "victimCorporationID" => isset($killdata["victim"]["corporationID"]) ? isset($killdata["victim"]["corporationID"]) : null, "victimCorporationName" => isset($killdata["victim"]["corporationName"]) ? isset($killdata["victim"]["corporationName"]) : null, "victimAllianceID" => isset($killdata["victim"]["allianceID"]) ? isset($killdata["victim"]["allianceID"]) : null, "victimAllianceName" => isset($killdata["victim"]["allianceName"]) ? isset($killdata["victim"]["allianceName"]) : null, "victimFactionID" => isset($killdata["victim"]["factionID"]) ? isset($killdata["victim"]["factionID"]) : null, "victimFactionName" => isset($killdata["victim"]["factionName"]) ? isset($killdata["victim"]["factionName"]) : null, "dna" => Fitting::DNA($killdata["items"], $killdata["victim"]["shipTypeID"])); } $app->etag(md5(serialize($dna))); $app->expires("+1 hour"); header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Methods: GET"); $app->contentType("application/json; charset=utf-8"); echo json_encode($dna, JSON_NUMERIC_CHECK);
public static function getDoctrineCompliance($characterID) { //Globalizing the DB variable global $db; // Getting the group ID $groupID = Character::fetchGroupID($characterID); $characterName = Character::fetchCharacterName($characterID); // Getting the list of doctrines $stmt = $db->prepare('SELECT * FROM doctrines WHERE gid = ? ORDER BY doctrineid ASC'); $stmt->execute(array($groupID)); $doctrines = $stmt->fetchAll(PDO::FETCH_ASSOC); // Creating some statements for future use with getting fitting and module information for each doctrine and fitting respectively $stmtFittings = $db->prepare('SELECT * FROM doctrines_fits WHERE doctrineid = ? ORDER BY fittingid ASC'); $stmtModules = $db->prepare('SELECT * FROM doctrines_fittingmods WHERE fittingid = ? ORDER BY type_id ASC'); //Looping through each doctrine to get fitting information foreach ($doctrines as $doctrine) { $stmtFittings->execute(array($doctrine['doctrineid'])); $fittings = $stmtFittings->fetchAll(PDO::FETCH_ASSOC); // Looping through each fitting to get module information foreach ($fittings as $fitting) { // Setting the default failure, warning, and success levels for the fitting $fittingFailure = 0; $fittingSuccess = 0; $fittingWarning = 0; $fittingTotal = 0; $stmtModules->execute(array($fitting['fittingid'])); $modules = $stmtModules->fetchAll(PDO::FETCH_ASSOC); // Getting skill information about the ship hull itself $hullCheck = Fitting::checkItemPrerequisites($fitting['fitting_ship'], $characterID); if ($hullCheck === TRUE) { $fittingSuccess += 1; } elseif ($hullCheck == "Warning") { $fittingWarning += 1; } else { $fittingFailure += 1; } $fittingTotal += 1; // Looping through each module to get skill information, and compare it to the character in question foreach ($modules as $module) { $moduleCheck = Fitting::checkItemPrerequisites($module['type_id'], $characterID); if ($moduleCheck === TRUE) { $fittingSuccess += 1; } elseif ($hullCheck == "Warning") { $fittingWarning += 1; } else { $fittingFailure += 1; } $fittingTotal += 1; } if ($fittingFailure >= 1) { $colorStatus = 'failure'; } elseif ($fittingWarning >= 1) { $colorStatus = 'warning'; } else { $colorStatus = 'success'; } // Inputting the fitting into the tracking database $stmt = $db->prepare('INSERT INTO doctrines_tracking (charid,character_name,gid,doctrineid,fittingid,usable_items,total_items,color_status) VALUES (?,?,?,?,?,?,?,?)' . ' ON DUPLICATE KEY UPDATE character_name=VALUES(character_name),gid=VALUES(gid),usable_items=VALUES(usable_items),total_items=VALUES(total_items),color_status=VALUES(color_status)'); $stmt->execute(array($characterID, $characterName, $groupID, $doctrine['doctrineid'], $fitting['fittingid'], $fittingSuccess, $fittingTotal, $colorStatus)); } } }
$extra["cmtChars"] = Api::getCharacters($userID); $extra["cmtChars"][] = array("characterID" => 0, "characterName" => "Anonymous"); } $extra["droppedisk"] = droppedIsk(md5($id), $killdata["items"]); $extra["lostisk"] = $killdata["info"]["total_price"] - $extra["droppedisk"]; $extra["fittedisk"] = fittedIsk(md5($id), $killdata["items"]); $extra["relatedtime"] = date("YmdH00", strtotime($killdata["info"]["killTime"])); $extra["fittingwheel"] = eftarray(md5($id), $killdata["items"], $killdata["victim"]["characterID"]); $extra["involvedships"] = involvedships($killdata["involved"]); $extra["involvedshipscount"] = count($extra["involvedships"]); $extra["totalprice"] = usdeurgbp($killdata["info"]["total_price"]); $extra["destroyedprice"] = usdeurgbp($extra["lostisk"]); $extra["droppedprice"] = usdeurgbp($extra["droppedisk"]); $extra["fittedprice"] = usdeurgbp($extra["fittedisk"]); $extra["efttext"] = Fitting::EFT($extra["fittingwheel"]); $extra["dnatext"] = Fitting::DNA($killdata["items"], $killdata["info"]["shipTypeID"]); $extra["edkrawmail"] = Kills::getRawMail($id); $extra["zkbrawmail"] = Kills::getRawMail($id, array(), false); $extra["reports"] = Db::queryField("SELECT count(*) as cnt FROM zz_tickets WHERE killID = :killid", "cnt", array(":killid" => $id), 0); $extra["slotCounts"] = Info::getSlotCounts($killdata["victim"]["shipTypeID"]); $extra["commentID"] = Info::commentID($id); $extra["crest"] = Db::queryRow("select killID, hash from zz_crest_killmail where killID = :killID and processed = 1", array(":killID" => $id), 300); $systemID = $killdata["info"]["solarSystemID"]; $data = Info::getWormholeSystemInfo($systemID); $extra["wormhole"] = $data; $url = "https://" . $_SERVER["SERVER_NAME"] . "/detail/{$id}/"; $app->render("detail.html", array("pageview" => $pageview, "killdata" => $killdata, "extra" => $extra, "message" => $message, "flags" => Info::$effectToSlot, "topDamage" => $topDamage, "finalBlow" => $finalBlow, "url" => $url)); function involvedships($array) { $involved = array(); foreach ($array as $inv) {
// Getting our Drone / Cargo Slot items first $stmt->execute(array($fitting['fittingid'], 'Drone')); $drone_slots = $stmt->fetchAll(PDO::FETCH_ASSOC); if ($stmt->rowCount() >= 1) { ?> <tr> <td><img style="width: 24px; height: 24px;" src="/img/slot_cargo.jpg"></td> <td></td> <td>Drone Bay and Cargo Hold</td> <td></td> </tr> <?php foreach ($drone_slots as $drone) { // Adding drones and cargo to IGB Fitting Array $igb_fitting_array[] = $drone['type_id'] . ';' . $drone['module_quantity']; $preRequisites = Fitting::checkItemPrerequisites($drone['type_id'], $user->getDefaultID()); if ($preRequisites) { $prereq_color = 'class="opaque-success"'; } elseif ($preRequisites == 'WARNING') { $prereq_color = 'class="opaque-warning"'; } else { $prereq_color = 'class="opaque-danger"'; } ?> <tr <?php echo $prereq_color; ?> > <td style="width: 32px; vertical-align: center"><img style="width: 24px; height: 24px;" src="https://image.eveonline.com/InventoryType/<?php echo $drone['type_id']; ?>
*/ $skills = $char->updateCharacterSkills(); // Checking for skills update success if ($skills === "SDE Failure") { echo date('Ymd H:i:s', time()) . " - cron_update.php - FAILURE - Skill detected that does not exist in SDE for charid " . $character['characterID'] . "\n"; } elseif ($skills === FALSE) { echo date('Ymd H:i:s', time()) . " - cron_update.php - FAILURE - General processing error for charid " . $character['characterID'] . "\n"; } /* * SKILLPLAN UPDATE SECTION */ $skillPlans = $char->updateSkillPlanProgress(); /* * DOCTRINE COMPLIANCE SECTION */ Fitting::getDoctrineCompliance($character['characterID']); /* * MARKET UPDATE SECTION */ $marketUpdate = $char->updateMarketInformation(); /* * Asset Update Section */ $assets = $char->updateAssets(); /* * EVEMAIL UPDATE SECTION */ $evemailUpdate = $char->updateEveMail(); if ($marketUpdate === TRUE and $skillPlans === TRUE and is_object($char) and $evemailUpdate === TRUE) { echo date('Ymd H:i:s', time()) . " - cron_update.php - SUCCESS - Updates completed for " . $char->getCharacterID() . ".\n"; } elseif ($skillPlans === TRUE and is_object($char)) {
<?php //set the headers to cache the request properly $dna = array(); $parameters = Util::convertUriToParameters(); $page = 1; if (isset($parameters['page'])) { $page = $parameters['page']; } $kills = Feed::getKills(array('limit' => 200, 'cacheTime' => 3600, 'page' => $page)); foreach ($kills as $kill) { $kill = json_decode($kill, true); $killdata = Kills::getKillDetails($kill['killID']); $dna[][] = array('killtime' => $killdata['info']['dttm'], 'SolarSystemName' => $killdata['info']['solarSystemName'], 'solarSystemID' => $killdata['info']['solarSystemID'], 'regionID' => $killdata['info']['regionID'], 'regionName' => $killdata['info']['regionName'], 'victimCharacterID' => isset($killdata['victim']['characterID']) ? isset($killdata['victim']['characterID']) : null, 'victimCharacterName' => isset($killdata['victim']['characterName']) ? isset($killdata['victim']['characterName']) : null, 'victimCorporationID' => isset($killdata['victim']['corporationID']) ? isset($killdata['victim']['corporationID']) : null, 'victimCorporationName' => isset($killdata['victim']['corporationName']) ? isset($killdata['victim']['corporationName']) : null, 'victimAllianceID' => isset($killdata['victim']['allianceID']) ? isset($killdata['victim']['allianceID']) : null, 'victimAllianceName' => isset($killdata['victim']['allianceName']) ? isset($killdata['victim']['allianceName']) : null, 'victimFactionID' => isset($killdata['victim']['factionID']) ? isset($killdata['victim']['factionID']) : null, 'victimFactionName' => isset($killdata['victim']['factionName']) ? isset($killdata['victim']['factionName']) : null, 'dna' => Fitting::DNA($killdata['items'], $killdata['victim']['shipTypeID'])); } $app->etag(md5(serialize($dna))); $app->expires('+1 hour'); header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET'); $app->contentType('application/json; charset=utf-8'); echo json_encode($dna, JSON_NUMERIC_CHECK);