/** * @param $API_JSON * @param $offset */ function processApiData($API_JSON, $offset) { $APIItems = APIItemV2::getMultipleItemsByJSON($API_JSON); try { $itemCount = $offset; foreach ($APIItems as $APIItem) { $itemCount++; if ($APIItem == null) { print "Skipped item {$itemCount} on page {$offset}.\n"; continue; } echo "{$itemCount}: {$APIItem->getName()} (ID: {$APIItem->getItemId()})\n"; $itemData = array('TypeId' => getOrCreateTypeID($APIItem->getMarketType()), 'DataId' => $APIItem->getItemId(), 'Name' => $APIItem->getName(), 'RestrictionLevel' => $APIItem->getLevel(), 'Rarity' => getRarityID($APIItem->getRarity()), 'VendorSellPrice' => $APIItem->getVendorValue(), 'Img' => $APIItem->getImageURL(), 'RarityWord' => $APIItem->getRarity(), 'UnsellableFlag' => $APIItem->isUnsellable()); $item = ItemQuery::create()->findPK($APIItem->getItemId()); if ($item === null) { $item = new Item(); } $item->fromArray($itemData); $itemType = ItemTypeQuery::create()->findPk($itemData['TypeId']); if ($itemType !== null) { if ($APIItem->getSubType() !== null) { $itemSubType = ItemSubTypeQuery::create()->findOneByTitle($APIItem->getDBSubType()); if ($itemSubType === null) { //All of the below types are known to not exist in the market data with an ID (by this name). //Rune/Sigil/Utility/Gem/Booze/Halloween/LargeBundle/RentableContractNpc/ContractNPC/UnlimitedConsumable //TwoHandedToy/AppearanceChange/Immediate/Unknown $itemSubTypes = ItemSubTypeQuery::create()->filterByMainTypeId($itemData['TypeId'])->withColumn('MAX(id)', 'MAXid')->find(); $SubTypeID = $itemSubTypes[0]->getMAXid() + 1; $itemSubType = new ItemSubType(); $itemSubType->fromArray(array('Id' => $SubTypeID, 'MainTypeId' => $itemData['TypeId'], 'Title' => $APIItem->getDBSubType())); $itemSubType->save(); $itemType->addSubType($itemSubType); $item->setItemSubType($itemSubType); } $itemType->addSubType($itemSubType); $item->setItemSubType($itemSubType); } $item->setItemType($itemType); } $item->save(); } } catch (Exception $e) { echo "failed [[ {$e->getMessage()} ]] .. \n"; } }
/** * @param Item $item The item object to add. */ protected function doAddItem($item) { $this->collItems[] = $item; $item->setItemType($this); }