Exemplo n.º 1
0
<?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';
}
Exemplo n.º 2
0
 public static function addFitting($doctrineID, $fittingRaw, $fittingRole, $fittingPriority, $fittingNotes, $groupID, $user)
 {
     global $db;
     global $eve;
     // Turning the raw fitting into an array
     $fittingArray = explode("\n", $fittingRaw);
     // Removing the ship name and fitting name from the array.
     $shipRaw = $fittingArray[0];
     unset($fittingArray[0]);
     // Breaking Apart the
     preg_match('/(.+?),(.+?)\\]/', $shipRaw, $shipMatches);
     $shipTypeName = trim(substr($shipMatches[1], 1));
     $shipTypeID = $eve->getTypeID($shipTypeName);
     $shipFittingName = trim(substr($shipMatches[2], 1));
     $stmt = $db->prepare('INSERT INTO doctrines_fits (gid,doctrineid,fitting_name,fitting_ship,fitting_role,fitting_priority,fitting_notes,fitting_value,' . 'lastupdated_time,lastupdated_user) VALUES (?,?,?,?,?,?,?,?,?,?) ON DUPLICATE KEY UPDATE fitting_name=VALUES(fitting_name),' . 'fitting_role=VALUES(fitting_role),fitting_priority=VALUES(fitting_priority),fitting_notes=VALUES(fitting_notes),fitting_value=VALUES(fitting_value),' . 'lastupdated_time=VALUES(lastupdated_time),lastupdated_user=VALUES(lastupdated_user)');
     $stmt->execute(array($groupID, $doctrineID, $shipFittingName, $shipTypeID, $fittingRole, $fittingPriority, $fittingNotes, 0, time(), $user->getUsername()));
     $stmt = $db->prepare('SELECT fittingid FROM doctrines_fits WHERE fitting_name = ? AND doctrineid = ? AND gid = ?');
     $stmt->execute(array($shipFittingName, $doctrineID, $groupID));
     $fittingInfo = $stmt->fetch();
     foreach ($fittingArray as $fitting) {
         $ammoCheck = strpos($fitting, ',');
         $emptyCheck = strpos($fitting, '[empty');
         if ($ammoCheck !== FALSE) {
             $ammoArray = explode(",", $fitting);
             $fitting = $ammoArray[0];
         }
         if ($emptyCheck !== FALSE) {
             $emptyArray = explode(" ", $fitting);
             $emptySlot = ucwords($emptyArray[1]);
             $stmt = $db->prepare('INSERT INTO doctrines_fittingmods (fittingid,type_id,module_quantity,module_slot) VALUEs (?,?,?,?)' . ' ON DUPLICATE KEY UPDATE module_quantity = module_quantity + VALUES(module_quantity)');
             $stmt->execute(array($fittingInfo['fittingid'], 0, 1, $emptySlot));
         } else {
             $fitting = trim($fitting);
             if ($fitting != '' and $fitting != 'Empty') {
                 $fittingPreg = $fitting;
                 preg_match('/^(.*)(\\s+x)(\\d+)?/', $fittingPreg, $matches);
                 if (isset($matches[3]) and gettype($matches[3]) == 'string') {
                     $quantity = $matches[3];
                     $typeName = $matches[1];
                 } else {
                     $quantity = 1;
                     $typeName = $fitting;
                 }
                 $typeID = $eve->getTypeID($typeName);
                 if (strpos($typeName, 'Proteus') === FALSE and strpos($typeName, 'Loki') === FALSE and strpos($typeName, 'Legion') === FALSE and strpos($typeName, 'Tengu') === FALSE) {
                     $moduleSlot = Fitting::getModuleSlot($typeID);
                 } else {
                     $moduleSlot = 'Subsystem';
                 }
                 if ($typeID == NULL) {
                     setAlert('danger', 'Unidentified Module Detected', 'The module ' . $typeName . ' does not exist, and may have been renamed by CCP. Please correct this module name and try again.');
                     $stmt = $db->prepare('DELETE FROM doctrines_fittingmods WHERE fittingid = ?');
                     $stmt->execute(array($fittingInfo['fittingid']));
                     $stmt = $db->prepare('DELETE FROM doctrines_fits WHERE fittingid = ? AND gid = ?');
                     $stmt->execute(array($fittingInfo['fittingid'], $user->getGroup()));
                     break;
                 } else {
                     $stmt = $db->prepare('INSERT INTO doctrines_fittingmods (fittingid,type_id,module_quantity,module_slot) VALUES (?,?,?,?)' . ' ON DUPLICATE KEY UPDATE module_quantity = module_quantity + VALUES(module_quantity)');
                     $stmt->execute(array($fittingInfo['fittingid'], $typeID, $quantity, $moduleSlot));
                 }
             }
         }
     }
     $fitting_value = Fitting::getFittingValue($fittingInfo['fittingid'], $shipTypeID);
     $stmt = $db->prepare('UPDATE doctrines_fits SET fitting_value = ? WHERE fittingid = ?');
     $stmt->execute(array($fitting_value, $fittingInfo['fittingid']));
 }