Fuzzysteve

Corp asset loader

Aug 28th, 2012
439
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.31 KB | None | 0 0
  1. <?php
  2.  
  3. $dbh = new PDO('mysql:host=localhost;dbname=EveAssets', 'eveasset username', 'eveasset password');
  4.  
  5. $curl = curl_init();
  6. $vcode="your vcode";
  7. $keyid="your key id";
  8. $characterid="your character id";
  9.  
  10. curl_setopt($curl, CURLOPT_URL, "https://api.eveonline.com/corp/AssetList.xml.aspx?keyID=$keyid&vcode=$vcode&characterID=$characterid");
  11. curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  12. $content = curl_exec($curl);
  13. $xml = new simpleXMLElement     ($content);
  14.  
  15.  
  16. $containersql="insert ignore into containers (id,typeid,location) values (?,?,?)";
  17. $itemvsql="insert into assetsv (version,container,typeid,quantity,flag) values (?,?,?,?,?)";
  18. $itemsql="insert into assets (container,typeid,quantity,flag) values (?,?,?,?)";
  19. $versionchecksql="select count(*) cached from assetVersions where versionkey=?";
  20. $versionupdatesql="insert into assetVersions (downloaded,versionkey) values (now(),?)";
  21. $clearsql="truncate table assets";
  22.  
  23.  
  24. $versionkey=md5($xml->cachedUntil);
  25.  
  26. $stmt = $dbh->prepare($versionchecksql);
  27. $stmt->execute(array($versionkey));
  28.  
  29. $row = $stmt->fetchObject();
  30.  
  31. if ($row->cached)
  32. {
  33. exit;
  34. }
  35.  
  36. $trunstmt=$dbh->prepare($clearsql);
  37. $trunstmt->execute();
  38.  
  39. $stmt = $dbh->prepare($versionupdatesql);
  40. $stmt->execute(array($versionkey));
  41.  
  42. $versionid=$dbh->lastInsertId();
  43.  
  44.  
  45. $containerstmt=$dbh->prepare($containersql);
  46. $itemvstmt=$dbh->prepare($itemvsql);
  47. $itemstmt=$dbh->prepare($itemsql);
  48.  
  49. foreach ($xml->result->rowset->row as $container)
  50. {
  51.     $containerstmt->execute(array($container['itemID'],$container['typeID'],$container['locationID']));
  52.     $condense=array();
  53.     if (!empty($container->rowset))
  54.     {
  55.         foreach ($container->rowset->row as $item)
  56.         {
  57.             if (array_key_exists($item['typeID'].":".$item['flag'],$condense))
  58.             {
  59.                 $condense[$item['typeID'].":".$item['flag']]+=$item['quantity'];
  60.             }
  61.             else
  62.             {
  63.                 $condense[$item['typeID'].":".$item['flag']]=$item['quantity'];
  64.             }
  65.         }
  66.     }
  67.     foreach ($condense as $citem => $quantity)
  68.     {
  69.         list ($typeid,$flag)=explode(':',$citem);
  70.         $itemvstmt->execute(array($versionid,$container['itemID'],$typeid,$quantity,$flag));
  71.         $itemstmt->execute(array($container['itemID'],$typeid,$quantity,$flag));
  72.     }
  73. }
  74. ?>
Advertisement
Add Comment
Please, Sign In to add comment