/**
 * @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";
    }
}
Example #2
0
 /**
  * @param	Item $item The item object to add.
  */
 protected function doAddItem($item)
 {
     $this->collItems[] = $item;
     $item->setItemSubType($this);
 }