diff --git a/setup-mysql.sql b/setup-mysql.sql index 5cf2f42..51ed1ab 100644 --- a/setup-mysql.sql +++ b/setup-mysql.sql @@ -31,10 +31,10 @@ GRANT SELECT ON users TO impress2020; DELIMITER $$ -DROP PROCEDURE IF EXISTS GetItemsThatNeedModels$$ -CREATE PROCEDURE GetItemsThatNeedModels() +DROP PROCEDURE IF EXISTS GetItemsThatNeedModelsV2$$ +CREATE PROCEDURE GetItemsThatNeedModelsV2() BEGIN - SELECT items.id, + SELECT pet_types.color_id AS color_id, items.id AS item_id, GROUP_CONCAT(DISTINCT pet_types.species_id ORDER BY pet_types.species_id) AS modeled_species_ids, -- Vandagyre was added on 2014-11-14, so we add some buffer here. @@ -49,23 +49,29 @@ BEGIN INNER JOIN pet_types ON pet_types.body_id = swf_assets.body_id WHERE - pet_types.color_id = "8" + pet_types.color_id IN ( + 8, -- Blue (Standard) + 6, -- Baby + 44, -- Maraquan + 46, -- Mutant + 92 -- 8-bit + ) AND items.modeling_status_hint IS NULL - GROUP BY items.id + GROUP BY color_id, item_id HAVING NOT ( + -- No species (either an All Bodies item, or a Capsule type thing) + count(DISTINCT pet_types.species_id) = 0 -- Single species (probably just their item) - count(DISTINCT pet_types.species_id) = 1 + OR count(DISTINCT pet_types.species_id) = 1 -- All species modeled - OR modeled_species_ids = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55" + OR count(DISTINCT pet_types.species_id) = 55 -- All species modeled except Vandagyre, for items that don't support it OR (NOT supports_vandagyre AND modeled_species_ids = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54") - -- No species (either an All Bodies item, or a Capsule type thing) - OR modeled_species_ids = "" ) - ORDER BY items.id; + ORDER BY color_id, item_id; END$$ -GRANT EXECUTE ON PROCEDURE GetItemsThatNeedModels TO impress2020$$ +GRANT EXECUTE ON PROCEDURE GetItemsThatNeedModelsV2 TO impress2020$$ -- This procedure is a performance optimization! We want the page to always be -- up-to-date, but we want to avoid re-running this query if modeling data @@ -74,8 +80,8 @@ GRANT EXECUTE ON PROCEDURE GetItemsThatNeedModels TO impress2020$$ -- queries are a bottleneck, so I bundled up that logic into this single -- procedure that can run on the database! That way, it's just one network -- round-trip instead of two, which makes a noticeable difference in our stack. -DROP PROCEDURE IF EXISTS GetItemsThatNeedModelsIfNotCached$$ -CREATE PROCEDURE GetItemsThatNeedModelsIfNotCached( +DROP PROCEDURE IF EXISTS GetItemsThatNeedModelsIfNotCachedV2$$ +CREATE PROCEDURE GetItemsThatNeedModelsIfNotCachedV2( IN last_known_update TIMESTAMP, OUT last_actual_update TIMESTAMP ) @@ -84,9 +90,9 @@ BEGIN (SELECT created_at FROM contributions ORDER BY id DESC LIMIT 1); IF last_known_update < last_actual_update THEN - CALL GetItemsThatNeedModels(); + CALL GetItemsThatNeedModelsV2(); END IF; END$$ -GRANT EXECUTE ON PROCEDURE GetItemsThatNeedModelsIfNotCached TO impress2020$$ +GRANT EXECUTE ON PROCEDURE GetItemsThatNeedModelsIfNotCachedV2 TO impress2020$$ DELIMITER ; diff --git a/src/server/loaders.js b/src/server/loaders.js index 471de7a..4eef4b2 100644 --- a/src/server/loaders.js +++ b/src/server/loaders.js @@ -254,9 +254,12 @@ const buildItemsThatNeedModelsLoader = (db) => // only run the query if modeling data has been changed since the timestamp // we provide; otherwise, it skips the query and returns no rows, which is // much faster! (The query takes a few seconds to run.) + // + // NOTE: This query has the colors hardcoded, we always fetch all of them! + // And then we look up the specific colors const [results, _] = await db.query( ` - CALL GetItemsThatNeedModelsIfNotCached(?, @LastActualUpdate); + CALL GetItemsThatNeedModelsIfNotCachedV2(?, @LastActualUpdate); SELECT @LastActualUpdate; `, [lastKnownUpdate] @@ -268,20 +271,18 @@ const buildItemsThatNeedModelsLoader = (db) => // Result 2 (required): The MySQL summary of the effects of the CALL. // Result 3 (required): The 1-row table contianing @LastActualUpdate. // - // So, check the number of results. If it's 2, then there was no change, - // and we should return our cached value. Or, if it's 3, then we should - // update our cache. - if (results.length === 2) { - return [lastResult]; + // So, check the number of results. If it's 3, then we should update our + // cache. Or, if it's 2, then there was no change and we can continue with + // the existing cached value. + if (results.length === 3) { + const [rawRows, __, varRows] = results; + const rows = rawRows.map(normalizeRow); + + lastKnownUpdate = varRows[0]["@LastActualUpdate"]; + lastResult = rows; } - const [rows, __, varRows] = results; - const entities = rows.map(normalizeRow); - - lastKnownUpdate = varRows[0]["@LastActualUpdate"]; - lastResult = entities; - - return [entities]; + return [lastResult]; }); const buildPetTypeLoader = (db) => diff --git a/src/server/query-tests/Item.test.js b/src/server/query-tests/Item.test.js index e730989..edeac40 100644 --- a/src/server/query-tests/Item.test.js +++ b/src/server/query-tests/Item.test.js @@ -408,93 +408,12 @@ describe("Item", () => { expect(getDbCalls()).toMatchInlineSnapshot(` Array [ Array [ - " - SELECT items.id, - GROUP_CONCAT(DISTINCT pet_types.species_id ORDER BY pet_types.species_id) - AS modeled_species_ids, - -- Vandagyre was added on 2014-11-14, so we add some buffer here. - -- TODO: Some later Dyeworks items don't support Vandagyre. - -- Add a manual db flag? - items.created_at >= \\"2014-12-01\\" AS supports_vandagyre - FROM items - INNER JOIN parents_swf_assets psa - ON psa.parent_type = \\"Item\\" AND psa.parent_id = items.id - INNER JOIN swf_assets - ON swf_assets.id = psa.swf_asset_id - INNER JOIN pet_types - ON pet_types.body_id = swf_assets.body_id - WHERE - pet_types.color_id = \\"8\\" - GROUP BY items.id - HAVING - NOT ( - -- Single species (probably just their item) - count(DISTINCT pet_types.species_id) = 1 - -- All species modeled - OR modeled_species_ids = \\"1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55\\" - -- All species modeled except Vandagyre, for items that don't support it - OR (NOT supports_vandagyre AND modeled_species_ids = \\"1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54\\") - -- No species (either an All Bodies item, or a Capsule type thing) - OR modeled_species_ids = \\"\\" - ) - ORDER BY items.id - ", - ], - Array [ - "SELECT * FROM item_translations WHERE item_id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND locale = \\"en\\"", + "SELECT * FROM item_translations WHERE item_id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND locale = \\"en\\"", Array [ - "24534", - "33850", - "34167", - "36125", - "36126", - "36245", - "36678", - "36729", "36907", - "37354", - "37368", - "37840", - "38003", - "38130", - "38214", - "38216", - "38225", - "38311", - "38314", - "38391", - "39147", - "39148", - "39149", - "39313", - "39817", - "39884", - "41216", - "41690", - "41691", - "42169", - "42171", "42448", - "42449", - "42475", - "42478", "42544", "42546", - "42823", - "42885", - "42886", - "42993", - "42994", - "43079", - "43081", - "43677", - "43694", - "44456", - "44507", - "45301", - "47054", - "47066", - "49408", "50669", "50670", "50671", @@ -504,92 +423,30 @@ describe("Item", () => { "51653", "51654", "51655", - "52684", - "53063", "53324", "53325", - "53762", - "53818", - "53820", - "54436", - "55596", - "55673", - "55675", - "56717", - "57295", "58285", "59848", - "60751", - "62302", "62939", - "63077", - "63464", "64195", "64387", - "66493", "67317", "68228", - "68293", - "68470", "69311", - "69743", - "69748", - "69754", - "69755", - "69756", - "69761", - "69772", - "69773", - "69782", - "69998", "70843", "71110", - "71658", "71937", "71938", - "72188", - "72553", - "72897", - "72898", - "72899", - "72906", - "72907", - "72908", - "72912", - "72913", - "72914", - "73094", - "73405", - "73598", "73707", "73708", "73724", - "73766", - "74055", "74259", "74260", "74261", - "74314", - "74315", - "75197", - "75198", - "75199", "76108", "76109", "77441", "77442", - "78318", - "78320", - "78560", - "78754", - "79847", - "80024", - "80427", - "80428", - "80774", - "81060", - "81061", - "81062", "81144", "81145", "81229", @@ -605,72 +462,81 @@ describe("Item", () => { "81243", "81245", "81246", - "81274", - "81371", - "81396", "81547", - "81563", + "81619", "81630", + "81657", + "81658", + "81659", + "81660", + "81664", + "81667", + "81670", + "81671", + "81672", + "81674", + "81675", + "81693", ], ], Array [ "SELECT * FROM species_translations WHERE species_id IN (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) AND locale = \\"en\\"", Array [ - "18", - "24", - "25", - "48", - "49", - "20", - "6", - "27", - "41", - "42", - "5", - "47", - "50", - "51", - "4", - "11", - "12", - "14", - "23", - "37", - "21", "1", + "4", + "5", + "6", "7", "8", + "11", + "12", "15", "16", "17", "19", + "20", + "21", "22", + "23", + "24", "26", + "27", "30", "32", "34", "36", "39", "40", + "42", "44", + "47", + "48", + "49", + "50", "54", - "31", - "33", - "3", - "9", - "28", + "2", + "13", + "14", + "25", "29", - "35", + "37", "38", "43", "45", "46", + "51", "52", "53", - "2", + "3", + "9", + "31", + "41", "10", - "13", + "18", + "28", + "35", + "33", "55", ], ], diff --git a/src/server/query-tests/__snapshots__/Item.test.js.snap b/src/server/query-tests/__snapshots__/Item.test.js.snap index 84747a3..937e073 100644 --- a/src/server/query-tests/__snapshots__/Item.test.js.snap +++ b/src/server/query-tests/__snapshots__/Item.test.js.snap @@ -84,158 +84,6 @@ Object { exports[`Item loads items that need models 1`] = ` Object { "itemsThatNeedModels": Array [ - Object { - "id": "24534", - "name": "Kreludan Grundo Slippers", - "speciesThatNeedModels": Array [ - Object { - "id": "18", - "name": "Hissi", - }, - Object { - "id": "24", - "name": "Kiko", - }, - Object { - "id": "25", - "name": "Koi", - }, - Object { - "id": "48", - "name": "Tuskaninny", - }, - ], - }, - Object { - "id": "33850", - "name": "Winter Blechy Hat", - "speciesThatNeedModels": Array [ - Object { - "id": "49", - "name": "Uni", - }, - ], - }, - Object { - "id": "34167", - "name": "Plushie Skeith Socks", - "speciesThatNeedModels": Array [ - Object { - "id": "20", - "name": "Jetsam", - }, - ], - }, - Object { - "id": "36125", - "name": "Blue Newsboy Hat", - "speciesThatNeedModels": Array [ - Object { - "id": "6", - "name": "Buzz", - }, - ], - }, - Object { - "id": "36126", - "name": "Brown Velvet Bow Hat", - "speciesThatNeedModels": Array [ - Object { - "id": "27", - "name": "Kougra", - }, - Object { - "id": "41", - "name": "Quiggle", - }, - Object { - "id": "42", - "name": "Ruki", - }, - ], - }, - Object { - "id": "36245", - "name": "Edna Costume Hat", - "speciesThatNeedModels": Array [ - Object { - "id": "5", - "name": "Bruce", - }, - Object { - "id": "47", - "name": "Tonu", - }, - Object { - "id": "48", - "name": "Tuskaninny", - }, - Object { - "id": "50", - "name": "Usul", - }, - Object { - "id": "51", - "name": "Wocky", - }, - ], - }, - Object { - "id": "36678", - "name": "Novelty Glasses", - "speciesThatNeedModels": Array [ - Object { - "id": "4", - "name": "Bori", - }, - Object { - "id": "6", - "name": "Buzz", - }, - Object { - "id": "11", - "name": "Elephante", - }, - Object { - "id": "12", - "name": "Eyrie", - }, - Object { - "id": "14", - "name": "Gelert", - }, - Object { - "id": "20", - "name": "Jetsam", - }, - Object { - "id": "23", - "name": "Kau", - }, - Object { - "id": "37", - "name": "Ogrin", - }, - Object { - "id": "47", - "name": "Tonu", - }, - Object { - "id": "49", - "name": "Uni", - }, - ], - }, - Object { - "id": "36729", - "name": "Space Trooper Oxygen Tank", - "speciesThatNeedModels": Array [ - Object { - "id": "21", - "name": "Jubjub", - }, - ], - }, Object { "id": "36907", "name": "Slushie Slinger Drinking Cap", @@ -370,654 +218,6 @@ Object { }, ], }, - Object { - "id": "37354", - "name": "Blue Ruki Puppet", - "speciesThatNeedModels": Array [ - Object { - "id": "48", - "name": "Tuskaninny", - }, - ], - }, - Object { - "id": "37368", - "name": "Pandaphant Puppet", - "speciesThatNeedModels": Array [ - Object { - "id": "49", - "name": "Uni", - }, - ], - }, - Object { - "id": "37840", - "name": "Shenkuu Performer Prop Sword", - "speciesThatNeedModels": Array [ - Object { - "id": "19", - "name": "Ixi", - }, - Object { - "id": "23", - "name": "Kau", - }, - Object { - "id": "27", - "name": "Kougra", - }, - Object { - "id": "31", - "name": "Lupe", - }, - Object { - "id": "34", - "name": "Moehog", - }, - ], - }, - Object { - "id": "38003", - "name": "Gobbler Mask", - "speciesThatNeedModels": Array [ - Object { - "id": "33", - "name": "Meerca", - }, - Object { - "id": "36", - "name": "Nimmo", - }, - ], - }, - Object { - "id": "38130", - "name": "Snowager Cap", - "speciesThatNeedModels": Array [ - Object { - "id": "49", - "name": "Uni", - }, - ], - }, - Object { - "id": "38214", - "name": "Giant Moach Costume", - "speciesThatNeedModels": Array [ - Object { - "id": "23", - "name": "Kau", - }, - Object { - "id": "24", - "name": "Kiko", - }, - Object { - "id": "25", - "name": "Koi", - }, - Object { - "id": "26", - "name": "Korbat", - }, - ], - }, - Object { - "id": "38216", - "name": "Seasonal Designer Purse", - "speciesThatNeedModels": Array [ - Object { - "id": "3", - "name": "Blumaroo", - }, - Object { - "id": "5", - "name": "Bruce", - }, - Object { - "id": "9", - "name": "Cybunny", - }, - Object { - "id": "12", - "name": "Eyrie", - }, - Object { - "id": "14", - "name": "Gelert", - }, - Object { - "id": "16", - "name": "Grarrl", - }, - Object { - "id": "18", - "name": "Hissi", - }, - Object { - "id": "21", - "name": "Jubjub", - }, - Object { - "id": "23", - "name": "Kau", - }, - Object { - "id": "25", - "name": "Koi", - }, - Object { - "id": "28", - "name": "Krawk", - }, - Object { - "id": "29", - "name": "Kyrii", - }, - Object { - "id": "30", - "name": "Lenny", - }, - Object { - "id": "31", - "name": "Lupe", - }, - Object { - "id": "32", - "name": "Lutari", - }, - Object { - "id": "33", - "name": "Meerca", - }, - Object { - "id": "34", - "name": "Moehog", - }, - Object { - "id": "35", - "name": "Mynci", - }, - Object { - "id": "36", - "name": "Nimmo", - }, - Object { - "id": "37", - "name": "Ogrin", - }, - Object { - "id": "38", - "name": "Peophin", - }, - Object { - "id": "39", - "name": "Poogle", - }, - Object { - "id": "40", - "name": "Pteri", - }, - Object { - "id": "41", - "name": "Quiggle", - }, - Object { - "id": "42", - "name": "Ruki", - }, - Object { - "id": "43", - "name": "Scorchio", - }, - Object { - "id": "44", - "name": "Shoyru", - }, - Object { - "id": "45", - "name": "Skeith", - }, - Object { - "id": "46", - "name": "Techo", - }, - Object { - "id": "47", - "name": "Tonu", - }, - Object { - "id": "48", - "name": "Tuskaninny", - }, - Object { - "id": "50", - "name": "Usul", - }, - Object { - "id": "51", - "name": "Wocky", - }, - Object { - "id": "52", - "name": "Xweetok", - }, - Object { - "id": "53", - "name": "Yurble", - }, - Object { - "id": "54", - "name": "Zafara", - }, - ], - }, - Object { - "id": "38225", - "name": "Snowflake Wand", - "speciesThatNeedModels": Array [ - Object { - "id": "1", - "name": "Acara", - }, - Object { - "id": "2", - "name": "Aisha", - }, - Object { - "id": "3", - "name": "Blumaroo", - }, - Object { - "id": "4", - "name": "Bori", - }, - Object { - "id": "5", - "name": "Bruce", - }, - Object { - "id": "6", - "name": "Buzz", - }, - Object { - "id": "8", - "name": "Chomby", - }, - Object { - "id": "9", - "name": "Cybunny", - }, - ], - }, - Object { - "id": "38311", - "name": "Pant Devil Pants", - "speciesThatNeedModels": Array [ - Object { - "id": "1", - "name": "Acara", - }, - Object { - "id": "4", - "name": "Bori", - }, - Object { - "id": "7", - "name": "Chia", - }, - Object { - "id": "9", - "name": "Cybunny", - }, - Object { - "id": "10", - "name": "Draik", - }, - Object { - "id": "11", - "name": "Elephante", - }, - Object { - "id": "12", - "name": "Eyrie", - }, - Object { - "id": "13", - "name": "Flotsam", - }, - Object { - "id": "14", - "name": "Gelert", - }, - Object { - "id": "16", - "name": "Grarrl", - }, - Object { - "id": "18", - "name": "Hissi", - }, - Object { - "id": "19", - "name": "Ixi", - }, - Object { - "id": "23", - "name": "Kau", - }, - Object { - "id": "27", - "name": "Kougra", - }, - Object { - "id": "28", - "name": "Krawk", - }, - Object { - "id": "32", - "name": "Lutari", - }, - Object { - "id": "33", - "name": "Meerca", - }, - Object { - "id": "43", - "name": "Scorchio", - }, - Object { - "id": "50", - "name": "Usul", - }, - ], - }, - Object { - "id": "38314", - "name": "Tacky Lighted Holiday Shoes", - "speciesThatNeedModels": Array [ - Object { - "id": "1", - "name": "Acara", - }, - Object { - "id": "2", - "name": "Aisha", - }, - Object { - "id": "3", - "name": "Blumaroo", - }, - Object { - "id": "5", - "name": "Bruce", - }, - Object { - "id": "6", - "name": "Buzz", - }, - Object { - "id": "7", - "name": "Chia", - }, - Object { - "id": "8", - "name": "Chomby", - }, - Object { - "id": "9", - "name": "Cybunny", - }, - Object { - "id": "10", - "name": "Draik", - }, - Object { - "id": "11", - "name": "Elephante", - }, - Object { - "id": "12", - "name": "Eyrie", - }, - Object { - "id": "13", - "name": "Flotsam", - }, - Object { - "id": "14", - "name": "Gelert", - }, - Object { - "id": "15", - "name": "Gnorbu", - }, - Object { - "id": "16", - "name": "Grarrl", - }, - Object { - "id": "17", - "name": "Grundo", - }, - Object { - "id": "18", - "name": "Hissi", - }, - Object { - "id": "20", - "name": "Jetsam", - }, - Object { - "id": "21", - "name": "Jubjub", - }, - Object { - "id": "22", - "name": "Kacheek", - }, - Object { - "id": "23", - "name": "Kau", - }, - Object { - "id": "24", - "name": "Kiko", - }, - Object { - "id": "25", - "name": "Koi", - }, - Object { - "id": "26", - "name": "Korbat", - }, - Object { - "id": "27", - "name": "Kougra", - }, - Object { - "id": "32", - "name": "Lutari", - }, - Object { - "id": "34", - "name": "Moehog", - }, - Object { - "id": "35", - "name": "Mynci", - }, - Object { - "id": "37", - "name": "Ogrin", - }, - Object { - "id": "41", - "name": "Quiggle", - }, - Object { - "id": "43", - "name": "Scorchio", - }, - Object { - "id": "45", - "name": "Skeith", - }, - Object { - "id": "46", - "name": "Techo", - }, - Object { - "id": "47", - "name": "Tonu", - }, - Object { - "id": "49", - "name": "Uni", - }, - Object { - "id": "50", - "name": "Usul", - }, - Object { - "id": "51", - "name": "Wocky", - }, - Object { - "id": "52", - "name": "Xweetok", - }, - ], - }, - Object { - "id": "38391", - "name": "Branched Antlers", - "speciesThatNeedModels": Array [ - Object { - "id": "40", - "name": "Pteri", - }, - ], - }, - Object { - "id": "39147", - "name": "Space Bounty Hunter Helmet", - "speciesThatNeedModels": Array [ - Object { - "id": "24", - "name": "Kiko", - }, - ], - }, - Object { - "id": "39148", - "name": "Space Bounty Hunter Trousers", - "speciesThatNeedModels": Array [ - Object { - "id": "21", - "name": "Jubjub", - }, - Object { - "id": "24", - "name": "Kiko", - }, - Object { - "id": "25", - "name": "Koi", - }, - ], - }, - Object { - "id": "39149", - "name": "Space Bounty Hunter Shirt", - "speciesThatNeedModels": Array [ - Object { - "id": "21", - "name": "Jubjub", - }, - ], - }, - Object { - "id": "39313", - "name": "Destruct-O-Match Shirt", - "speciesThatNeedModels": Array [ - Object { - "id": "49", - "name": "Uni", - }, - ], - }, - Object { - "id": "39817", - "name": "Net of Fish", - "speciesThatNeedModels": Array [ - Object { - "id": "31", - "name": "Lupe", - }, - ], - }, - Object { - "id": "39884", - "name": "Wicker Purse", - "speciesThatNeedModels": Array [ - Object { - "id": "47", - "name": "Tonu", - }, - ], - }, - Object { - "id": "41216", - "name": "Designer Trick-or-Treat Bag", - "speciesThatNeedModels": Array [ - Object { - "id": "49", - "name": "Uni", - }, - ], - }, - Object { - "id": "41690", - "name": "Nutcracker Jacket", - "speciesThatNeedModels": Array [ - Object { - "id": "31", - "name": "Lupe", - }, - ], - }, - Object { - "id": "41691", - "name": "Nutcracker Slacks and Boots", - "speciesThatNeedModels": Array [ - Object { - "id": "19", - "name": "Ixi", - }, - ], - }, - Object { - "id": "42169", - "name": "Ski Trousers and Boots", - "speciesThatNeedModels": Array [ - Object { - "id": "24", - "name": "Kiko", - }, - ], - }, - Object { - "id": "42171", - "name": "Ski Gloves", - "speciesThatNeedModels": Array [ - Object { - "id": "21", - "name": "Jubjub", - }, - ], - }, Object { "id": "42448", "name": "Blue Acara Kite", @@ -1168,228 +368,6 @@ Object { }, ], }, - Object { - "id": "42449", - "name": "Pink Poogle and Red Scorchio Kite", - "speciesThatNeedModels": Array [ - Object { - "id": "2", - "name": "Aisha", - }, - Object { - "id": "4", - "name": "Bori", - }, - Object { - "id": "5", - "name": "Bruce", - }, - Object { - "id": "6", - "name": "Buzz", - }, - Object { - "id": "7", - "name": "Chia", - }, - Object { - "id": "8", - "name": "Chomby", - }, - Object { - "id": "9", - "name": "Cybunny", - }, - Object { - "id": "10", - "name": "Draik", - }, - Object { - "id": "11", - "name": "Elephante", - }, - Object { - "id": "12", - "name": "Eyrie", - }, - Object { - "id": "13", - "name": "Flotsam", - }, - Object { - "id": "14", - "name": "Gelert", - }, - Object { - "id": "15", - "name": "Gnorbu", - }, - Object { - "id": "16", - "name": "Grarrl", - }, - Object { - "id": "18", - "name": "Hissi", - }, - Object { - "id": "19", - "name": "Ixi", - }, - Object { - "id": "20", - "name": "Jetsam", - }, - Object { - "id": "21", - "name": "Jubjub", - }, - Object { - "id": "23", - "name": "Kau", - }, - Object { - "id": "24", - "name": "Kiko", - }, - Object { - "id": "25", - "name": "Koi", - }, - Object { - "id": "26", - "name": "Korbat", - }, - Object { - "id": "27", - "name": "Kougra", - }, - Object { - "id": "29", - "name": "Kyrii", - }, - Object { - "id": "30", - "name": "Lenny", - }, - Object { - "id": "32", - "name": "Lutari", - }, - Object { - "id": "33", - "name": "Meerca", - }, - Object { - "id": "34", - "name": "Moehog", - }, - Object { - "id": "35", - "name": "Mynci", - }, - Object { - "id": "36", - "name": "Nimmo", - }, - Object { - "id": "37", - "name": "Ogrin", - }, - Object { - "id": "38", - "name": "Peophin", - }, - Object { - "id": "39", - "name": "Poogle", - }, - Object { - "id": "40", - "name": "Pteri", - }, - Object { - "id": "41", - "name": "Quiggle", - }, - Object { - "id": "42", - "name": "Ruki", - }, - Object { - "id": "43", - "name": "Scorchio", - }, - Object { - "id": "44", - "name": "Shoyru", - }, - Object { - "id": "45", - "name": "Skeith", - }, - Object { - "id": "46", - "name": "Techo", - }, - Object { - "id": "47", - "name": "Tonu", - }, - Object { - "id": "48", - "name": "Tuskaninny", - }, - Object { - "id": "49", - "name": "Uni", - }, - Object { - "id": "50", - "name": "Usul", - }, - Object { - "id": "51", - "name": "Wocky", - }, - Object { - "id": "52", - "name": "Xweetok", - }, - Object { - "id": "53", - "name": "Yurble", - }, - Object { - "id": "54", - "name": "Zafara", - }, - ], - }, - Object { - "id": "42475", - "name": "Woodland Archer Shoes", - "speciesThatNeedModels": Array [ - Object { - "id": "18", - "name": "Hissi", - }, - Object { - "id": "24", - "name": "Kiko", - }, - ], - }, - Object { - "id": "42478", - "name": "Classic Beauty Mark", - "speciesThatNeedModels": Array [ - Object { - "id": "1", - "name": "Acara", - }, - ], - }, Object { "id": "42544", "name": "Red Bruce Star Balloon With Screen", @@ -1642,252 +620,6 @@ Object { }, ], }, - Object { - "id": "42823", - "name": "Funky Ruffle Skirt with Striped Leggings", - "speciesThatNeedModels": Array [ - Object { - "id": "5", - "name": "Bruce", - }, - Object { - "id": "6", - "name": "Buzz", - }, - Object { - "id": "28", - "name": "Krawk", - }, - ], - }, - Object { - "id": "42885", - "name": "Carnival Trousers", - "speciesThatNeedModels": Array [ - Object { - "id": "21", - "name": "Jubjub", - }, - Object { - "id": "24", - "name": "Kiko", - }, - ], - }, - Object { - "id": "42886", - "name": "Carnival Shoes", - "speciesThatNeedModels": Array [ - Object { - "id": "21", - "name": "Jubjub", - }, - Object { - "id": "24", - "name": "Kiko", - }, - Object { - "id": "25", - "name": "Koi", - }, - ], - }, - Object { - "id": "42993", - "name": "Deluxe Polarchuck Costume", - "speciesThatNeedModels": Array [ - Object { - "id": "21", - "name": "Jubjub", - }, - Object { - "id": "24", - "name": "Kiko", - }, - ], - }, - Object { - "id": "42994", - "name": "Deluxe Polarchuck Costume Gloves", - "speciesThatNeedModels": Array [ - Object { - "id": "21", - "name": "Jubjub", - }, - ], - }, - Object { - "id": "43079", - "name": "Garden Tea Shoes", - "speciesThatNeedModels": Array [ - Object { - "id": "24", - "name": "Kiko", - }, - ], - }, - Object { - "id": "43081", - "name": "Garden Tea Gloves", - "speciesThatNeedModels": Array [ - Object { - "id": "21", - "name": "Jubjub", - }, - ], - }, - Object { - "id": "43677", - "name": "Oranella Slushie Slinger Drinking Cap", - "speciesThatNeedModels": Array [ - Object { - "id": "49", - "name": "Uni", - }, - ], - }, - Object { - "id": "43694", - "name": "Reusable Altador Cup Grocery Bag", - "speciesThatNeedModels": Array [ - Object { - "id": "1", - "name": "Acara", - }, - Object { - "id": "2", - "name": "Aisha", - }, - Object { - "id": "4", - "name": "Bori", - }, - Object { - "id": "8", - "name": "Chomby", - }, - Object { - "id": "12", - "name": "Eyrie", - }, - Object { - "id": "14", - "name": "Gelert", - }, - Object { - "id": "15", - "name": "Gnorbu", - }, - Object { - "id": "19", - "name": "Ixi", - }, - Object { - "id": "23", - "name": "Kau", - }, - Object { - "id": "27", - "name": "Kougra", - }, - Object { - "id": "31", - "name": "Lupe", - }, - Object { - "id": "34", - "name": "Moehog", - }, - Object { - "id": "37", - "name": "Ogrin", - }, - Object { - "id": "38", - "name": "Peophin", - }, - Object { - "id": "39", - "name": "Poogle", - }, - Object { - "id": "47", - "name": "Tonu", - }, - Object { - "id": "49", - "name": "Uni", - }, - Object { - "id": "51", - "name": "Wocky", - }, - ], - }, - Object { - "id": "44456", - "name": "Tower Princess Shoes", - "speciesThatNeedModels": Array [ - Object { - "id": "24", - "name": "Kiko", - }, - ], - }, - Object { - "id": "44507", - "name": "Fighting Staff", - "speciesThatNeedModels": Array [ - Object { - "id": "49", - "name": "Uni", - }, - ], - }, - Object { - "id": "45301", - "name": "Wonderland Gloves", - "speciesThatNeedModels": Array [ - Object { - "id": "21", - "name": "Jubjub", - }, - ], - }, - Object { - "id": "47054", - "name": "Moltara Inventor Trousers", - "speciesThatNeedModels": Array [ - Object { - "id": "21", - "name": "Jubjub", - }, - Object { - "id": "24", - "name": "Kiko", - }, - ], - }, - Object { - "id": "47066", - "name": "Commemorative Jordie Plushie", - "speciesThatNeedModels": Array [ - Object { - "id": "49", - "name": "Uni", - }, - ], - }, - Object { - "id": "49408", - "name": "Stepdance Tights and Shoes", - "speciesThatNeedModels": Array [ - Object { - "id": "49", - "name": "Uni", - }, - ], - }, Object { "id": "50669", "name": "MME6-S6: Trapped in a Bubble Foreground", @@ -3634,30 +2366,6 @@ Object { }, ], }, - Object { - "id": "52684", - "name": "Meepit Costume Shoes", - "speciesThatNeedModels": Array [ - Object { - "id": "21", - "name": "Jubjub", - }, - Object { - "id": "24", - "name": "Kiko", - }, - ], - }, - Object { - "id": "53063", - "name": "Festive Tree Hat", - "speciesThatNeedModels": Array [ - Object { - "id": "29", - "name": "Kyrii", - }, - ], - }, Object { "id": "53324", "name": "Shining Princess Gloves", @@ -3678,96 +2386,6 @@ Object { }, ], }, - Object { - "id": "53762", - "name": "Gingerbread Shield", - "speciesThatNeedModels": Array [ - Object { - "id": "33", - "name": "Meerca", - }, - ], - }, - Object { - "id": "53818", - "name": "Fingerless Caroler Gloves", - "speciesThatNeedModels": Array [ - Object { - "id": "21", - "name": "Jubjub", - }, - ], - }, - Object { - "id": "53820", - "name": "Sturdy Caroler Shoes", - "speciesThatNeedModels": Array [ - Object { - "id": "24", - "name": "Kiko", - }, - ], - }, - Object { - "id": "54436", - "name": "Snow Queen Shoes", - "speciesThatNeedModels": Array [ - Object { - "id": "24", - "name": "Kiko", - }, - ], - }, - Object { - "id": "55596", - "name": "Shiny Silver Neopets Shield", - "speciesThatNeedModels": Array [ - Object { - "id": "13", - "name": "Flotsam", - }, - ], - }, - Object { - "id": "55673", - "name": "King of Green Gloves", - "speciesThatNeedModels": Array [ - Object { - "id": "21", - "name": "Jubjub", - }, - ], - }, - Object { - "id": "55675", - "name": "King of Green Boots", - "speciesThatNeedModels": Array [ - Object { - "id": "24", - "name": "Kiko", - }, - ], - }, - Object { - "id": "56717", - "name": "Mad Tea Party Shoes", - "speciesThatNeedModels": Array [ - Object { - "id": "24", - "name": "Kiko", - }, - ], - }, - Object { - "id": "57295", - "name": "Purple Patchwork Caplet", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, Object { "id": "58285", "name": "MiniMME7-S2: Sweet Honeycomb Wings", @@ -3786,10 +2404,6 @@ Object { "id": "1", "name": "Acara", }, - Object { - "id": "6", - "name": "Buzz", - }, Object { "id": "8", "name": "Chomby", @@ -3798,14 +2412,6 @@ Object { "id": "9", "name": "Cybunny", }, - Object { - "id": "10", - "name": "Draik", - }, - Object { - "id": "16", - "name": "Grarrl", - }, Object { "id": "17", "name": "Grundo", @@ -3814,10 +2420,6 @@ Object { "id": "19", "name": "Ixi", }, - Object { - "id": "21", - "name": "Jubjub", - }, Object { "id": "24", "name": "Kiko", @@ -3838,18 +2440,6 @@ Object { "id": "33", "name": "Meerca", }, - Object { - "id": "35", - "name": "Mynci", - }, - Object { - "id": "43", - "name": "Scorchio", - }, - Object { - "id": "47", - "name": "Tonu", - }, Object { "id": "51", "name": "Wocky", @@ -3860,26 +2450,6 @@ Object { }, ], }, - Object { - "id": "60751", - "name": "Tied to the Mast Background", - "speciesThatNeedModels": Array [ - Object { - "id": "23", - "name": "Kau", - }, - ], - }, - Object { - "id": "62302", - "name": "Mystery Island Team Vuvuzela", - "speciesThatNeedModels": Array [ - Object { - "id": "32", - "name": "Lutari", - }, - ], - }, Object { "id": "62939", "name": "MME12-S4b: Orchestra Pit Foreground", @@ -4086,58 +2656,6 @@ Object { }, ], }, - Object { - "id": "63077", - "name": "Usukicon Y14 Attendee Badge", - "speciesThatNeedModels": Array [ - Object { - "id": "1", - "name": "Acara", - }, - Object { - "id": "40", - "name": "Pteri", - }, - ], - }, - Object { - "id": "63464", - "name": "Water Curtains Foreground", - "speciesThatNeedModels": Array [ - Object { - "id": "10", - "name": "Draik", - }, - Object { - "id": "18", - "name": "Hissi", - }, - Object { - "id": "22", - "name": "Kacheek", - }, - Object { - "id": "29", - "name": "Kyrii", - }, - Object { - "id": "38", - "name": "Peophin", - }, - Object { - "id": "47", - "name": "Tonu", - }, - Object { - "id": "48", - "name": "Tuskaninny", - }, - Object { - "id": "53", - "name": "Yurble", - }, - ], - }, Object { "id": "64195", "name": "Ninja Shadow Attack", @@ -4374,176 +2892,6 @@ Object { }, ], }, - Object { - "id": "66493", - "name": "Radiant Flower Skirt", - "speciesThatNeedModels": Array [ - Object { - "id": "1", - "name": "Acara", - }, - Object { - "id": "4", - "name": "Bori", - }, - Object { - "id": "6", - "name": "Buzz", - }, - Object { - "id": "7", - "name": "Chia", - }, - Object { - "id": "11", - "name": "Elephante", - }, - Object { - "id": "12", - "name": "Eyrie", - }, - Object { - "id": "13", - "name": "Flotsam", - }, - Object { - "id": "14", - "name": "Gelert", - }, - Object { - "id": "15", - "name": "Gnorbu", - }, - Object { - "id": "16", - "name": "Grarrl", - }, - Object { - "id": "17", - "name": "Grundo", - }, - Object { - "id": "18", - "name": "Hissi", - }, - Object { - "id": "19", - "name": "Ixi", - }, - Object { - "id": "20", - "name": "Jetsam", - }, - Object { - "id": "21", - "name": "Jubjub", - }, - Object { - "id": "24", - "name": "Kiko", - }, - Object { - "id": "25", - "name": "Koi", - }, - Object { - "id": "26", - "name": "Korbat", - }, - Object { - "id": "27", - "name": "Kougra", - }, - Object { - "id": "29", - "name": "Kyrii", - }, - Object { - "id": "30", - "name": "Lenny", - }, - Object { - "id": "31", - "name": "Lupe", - }, - Object { - "id": "32", - "name": "Lutari", - }, - Object { - "id": "33", - "name": "Meerca", - }, - Object { - "id": "36", - "name": "Nimmo", - }, - Object { - "id": "37", - "name": "Ogrin", - }, - Object { - "id": "40", - "name": "Pteri", - }, - Object { - "id": "41", - "name": "Quiggle", - }, - Object { - "id": "42", - "name": "Ruki", - }, - Object { - "id": "43", - "name": "Scorchio", - }, - Object { - "id": "44", - "name": "Shoyru", - }, - Object { - "id": "45", - "name": "Skeith", - }, - Object { - "id": "46", - "name": "Techo", - }, - Object { - "id": "47", - "name": "Tonu", - }, - Object { - "id": "48", - "name": "Tuskaninny", - }, - Object { - "id": "49", - "name": "Uni", - }, - Object { - "id": "50", - "name": "Usul", - }, - Object { - "id": "51", - "name": "Wocky", - }, - Object { - "id": "52", - "name": "Xweetok", - }, - Object { - "id": "53", - "name": "Yurble", - }, - Object { - "id": "54", - "name": "Zafara", - }, - ], - }, Object { "id": "67317", "name": "Rainy Day Umbrella", @@ -4552,10 +2900,6 @@ Object { "id": "4", "name": "Bori", }, - Object { - "id": "8", - "name": "Chomby", - }, Object { "id": "9", "name": "Cybunny", @@ -4564,66 +2908,22 @@ Object { "id": "13", "name": "Flotsam", }, - Object { - "id": "16", - "name": "Grarrl", - }, Object { "id": "19", "name": "Ixi", }, - Object { - "id": "20", - "name": "Jetsam", - }, - Object { - "id": "24", - "name": "Kiko", - }, - Object { - "id": "25", - "name": "Koi", - }, Object { "id": "26", "name": "Korbat", }, - Object { - "id": "27", - "name": "Kougra", - }, - Object { - "id": "29", - "name": "Kyrii", - }, Object { "id": "30", "name": "Lenny", }, - Object { - "id": "31", - "name": "Lupe", - }, Object { "id": "38", "name": "Peophin", }, - Object { - "id": "40", - "name": "Pteri", - }, - Object { - "id": "43", - "name": "Scorchio", - }, - Object { - "id": "45", - "name": "Skeith", - }, - Object { - "id": "47", - "name": "Tonu", - }, Object { "id": "51", "name": "Wocky", @@ -4642,30 +2942,6 @@ Object { "id": "18", "name": "Hissi", }, - Object { - "id": "34", - "name": "Moehog", - }, - ], - }, - Object { - "id": "68293", - "name": "Candy Cane Pirate Hook", - "speciesThatNeedModels": Array [ - Object { - "id": "50", - "name": "Usul", - }, - ], - }, - Object { - "id": "68470", - "name": "Crown of Light and Shadow", - "speciesThatNeedModels": Array [ - Object { - "id": "47", - "name": "Tonu", - }, ], }, Object { @@ -4858,106 +3134,6 @@ Object { }, ], }, - Object { - "id": "69743", - "name": "Giant Clover Bunch", - "speciesThatNeedModels": Array [ - Object { - "id": "37", - "name": "Ogrin", - }, - ], - }, - Object { - "id": "69748", - "name": "Basic Red Gloves", - "speciesThatNeedModels": Array [ - Object { - "id": "45", - "name": "Skeith", - }, - ], - }, - Object { - "id": "69754", - "name": "Basic White Lace-Up Shoes", - "speciesThatNeedModels": Array [ - Object { - "id": "45", - "name": "Skeith", - }, - ], - }, - Object { - "id": "69755", - "name": "Basic Blue Lace-Up Shoes", - "speciesThatNeedModels": Array [ - Object { - "id": "45", - "name": "Skeith", - }, - ], - }, - Object { - "id": "69756", - "name": "Basic Pink Lace-Up Shoes", - "speciesThatNeedModels": Array [ - Object { - "id": "45", - "name": "Skeith", - }, - ], - }, - Object { - "id": "69761", - "name": "Basic Blue Cardigan", - "speciesThatNeedModels": Array [ - Object { - "id": "45", - "name": "Skeith", - }, - ], - }, - Object { - "id": "69772", - "name": "Radiant Wig and Crown", - "speciesThatNeedModels": Array [ - Object { - "id": "45", - "name": "Skeith", - }, - ], - }, - Object { - "id": "69773", - "name": "Spring Argyle Caplet", - "speciesThatNeedModels": Array [ - Object { - "id": "45", - "name": "Skeith", - }, - ], - }, - Object { - "id": "69782", - "name": "Floral Bandana Braided Wig", - "speciesThatNeedModels": Array [ - Object { - "id": "45", - "name": "Skeith", - }, - ], - }, - Object { - "id": "69998", - "name": "Gleaming Rainbow Parasol", - "speciesThatNeedModels": Array [ - Object { - "id": "45", - "name": "Skeith", - }, - ], - }, Object { "id": "70843", "name": "MiniMME18-S2c: Holomorphic Foliage and Dandan Set", @@ -5182,16 +3358,6 @@ Object { }, ], }, - Object { - "id": "71658", - "name": "Striped Holiday Parasol", - "speciesThatNeedModels": Array [ - Object { - "id": "21", - "name": "Jubjub", - }, - ], - }, Object { "id": "71937", "name": "MME20-S5: Melted Snowman Trinket", @@ -5528,146 +3694,6 @@ Object { }, ], }, - Object { - "id": "72188", - "name": "Valentine Clown Makeup", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "72553", - "name": "Colourful Boat Shoes", - "speciesThatNeedModels": Array [ - Object { - "id": "25", - "name": "Koi", - }, - ], - }, - Object { - "id": "72897", - "name": "Dyeworks Silver: Rich Golden Eye Makeup", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "72898", - "name": "Dyeworks Pink: Rich Golden Eye Makeup", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "72899", - "name": "Dyeworks Black: Rich Golden Eye Makeup", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "72906", - "name": "Dyeworks Red: Shimmery Seashell Dress", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "72907", - "name": "Dyeworks Green: Shimmery Seashell Dress", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "72908", - "name": "Dyeworks Orange: Shimmery Seashell Dress", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "72912", - "name": "Dyeworks Brown: Mint and Aqua Flower Wig", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "72913", - "name": "Dyeworks Yellow: Mint and Aqua Flower Wig", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "72914", - "name": "Dyeworks Red: Mint and Aqua Flower Wig", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "73094", - "name": "Premium Collectible: Silver Swirl Contacts", - "speciesThatNeedModels": Array [ - Object { - "id": "7", - "name": "Chia", - }, - ], - }, - Object { - "id": "73405", - "name": "Color Block Dress", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "73598", - "name": "Sequin Patterned Leggings", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, Object { "id": "73707", "name": "MME21-S5: Crystal Candles Foreground", @@ -6062,496 +4088,58 @@ Object { }, ], }, - Object { - "id": "73766", - "name": "Roses Twist Wig", - "speciesThatNeedModels": Array [ - Object { - "id": "47", - "name": "Tonu", - }, - ], - }, - Object { - "id": "74055", - "name": "Bright Green Lipstick", - "speciesThatNeedModels": Array [ - Object { - "id": "8", - "name": "Chomby", - }, - Object { - "id": "16", - "name": "Grarrl", - }, - Object { - "id": "51", - "name": "Wocky", - }, - ], - }, Object { "id": "74259", "name": "Dyeworks Pink: Rainy Day Umbrella", "speciesThatNeedModels": Array [ - Object { - "id": "16", - "name": "Grarrl", - }, - Object { - "id": "20", - "name": "Jetsam", - }, Object { "id": "30", "name": "Lenny", }, - Object { - "id": "31", - "name": "Lupe", - }, - Object { - "id": "46", - "name": "Techo", - }, ], }, Object { "id": "74260", "name": "Dyeworks Green: Rainy Day Umbrella", "speciesThatNeedModels": Array [ - Object { - "id": "1", - "name": "Acara", - }, - Object { - "id": "5", - "name": "Bruce", - }, - Object { - "id": "8", - "name": "Chomby", - }, - Object { - "id": "9", - "name": "Cybunny", - }, - Object { - "id": "14", - "name": "Gelert", - }, - Object { - "id": "16", - "name": "Grarrl", - }, Object { "id": "19", "name": "Ixi", }, - Object { - "id": "21", - "name": "Jubjub", - }, - Object { - "id": "29", - "name": "Kyrii", - }, - Object { - "id": "31", - "name": "Lupe", - }, - Object { - "id": "33", - "name": "Meerca", - }, Object { "id": "38", "name": "Peophin", }, - Object { - "id": "40", - "name": "Pteri", - }, Object { "id": "44", "name": "Shoyru", }, - Object { - "id": "46", - "name": "Techo", - }, ], }, Object { "id": "74261", "name": "Dyeworks Blue: Rainy Day Umbrella", "speciesThatNeedModels": Array [ - Object { - "id": "1", - "name": "Acara", - }, - Object { - "id": "5", - "name": "Bruce", - }, - Object { - "id": "12", - "name": "Eyrie", - }, - Object { - "id": "14", - "name": "Gelert", - }, - Object { - "id": "16", - "name": "Grarrl", - }, - Object { - "id": "17", - "name": "Grundo", - }, - Object { - "id": "20", - "name": "Jetsam", - }, Object { "id": "22", "name": "Kacheek", }, - Object { - "id": "23", - "name": "Kau", - }, Object { "id": "30", "name": "Lenny", }, - Object { - "id": "31", - "name": "Lupe", - }, - Object { - "id": "34", - "name": "Moehog", - }, - Object { - "id": "35", - "name": "Mynci", - }, Object { "id": "38", "name": "Peophin", }, - Object { - "id": "40", - "name": "Pteri", - }, - Object { - "id": "41", - "name": "Quiggle", - }, - Object { - "id": "43", - "name": "Scorchio", - }, Object { "id": "44", "name": "Shoyru", }, - Object { - "id": "46", - "name": "Techo", - }, Object { "id": "49", "name": "Uni", }, - Object { - "id": "51", - "name": "Wocky", - }, - Object { - "id": "53", - "name": "Yurble", - }, - ], - }, - Object { - "id": "74314", - "name": "Velvet Black Lipstick", - "speciesThatNeedModels": Array [ - Object { - "id": "3", - "name": "Blumaroo", - }, - Object { - "id": "7", - "name": "Chia", - }, - Object { - "id": "10", - "name": "Draik", - }, - Object { - "id": "14", - "name": "Gelert", - }, - Object { - "id": "15", - "name": "Gnorbu", - }, - Object { - "id": "16", - "name": "Grarrl", - }, - Object { - "id": "18", - "name": "Hissi", - }, - Object { - "id": "22", - "name": "Kacheek", - }, - Object { - "id": "23", - "name": "Kau", - }, - Object { - "id": "28", - "name": "Krawk", - }, - Object { - "id": "30", - "name": "Lenny", - }, - Object { - "id": "31", - "name": "Lupe", - }, - Object { - "id": "32", - "name": "Lutari", - }, - Object { - "id": "37", - "name": "Ogrin", - }, - Object { - "id": "38", - "name": "Peophin", - }, - Object { - "id": "43", - "name": "Scorchio", - }, - Object { - "id": "44", - "name": "Shoyru", - }, - Object { - "id": "53", - "name": "Yurble", - }, - ], - }, - Object { - "id": "74315", - "name": "Purple Lipstick", - "speciesThatNeedModels": Array [ - Object { - "id": "3", - "name": "Blumaroo", - }, - Object { - "id": "4", - "name": "Bori", - }, - Object { - "id": "5", - "name": "Bruce", - }, - Object { - "id": "6", - "name": "Buzz", - }, - Object { - "id": "7", - "name": "Chia", - }, - Object { - "id": "8", - "name": "Chomby", - }, - Object { - "id": "9", - "name": "Cybunny", - }, - Object { - "id": "11", - "name": "Elephante", - }, - Object { - "id": "12", - "name": "Eyrie", - }, - Object { - "id": "13", - "name": "Flotsam", - }, - Object { - "id": "14", - "name": "Gelert", - }, - Object { - "id": "16", - "name": "Grarrl", - }, - Object { - "id": "17", - "name": "Grundo", - }, - Object { - "id": "18", - "name": "Hissi", - }, - Object { - "id": "19", - "name": "Ixi", - }, - Object { - "id": "20", - "name": "Jetsam", - }, - Object { - "id": "21", - "name": "Jubjub", - }, - Object { - "id": "22", - "name": "Kacheek", - }, - Object { - "id": "23", - "name": "Kau", - }, - Object { - "id": "24", - "name": "Kiko", - }, - Object { - "id": "25", - "name": "Koi", - }, - Object { - "id": "28", - "name": "Krawk", - }, - Object { - "id": "30", - "name": "Lenny", - }, - Object { - "id": "33", - "name": "Meerca", - }, - Object { - "id": "34", - "name": "Moehog", - }, - Object { - "id": "35", - "name": "Mynci", - }, - Object { - "id": "36", - "name": "Nimmo", - }, - Object { - "id": "37", - "name": "Ogrin", - }, - Object { - "id": "40", - "name": "Pteri", - }, - Object { - "id": "41", - "name": "Quiggle", - }, - Object { - "id": "42", - "name": "Ruki", - }, - Object { - "id": "43", - "name": "Scorchio", - }, - Object { - "id": "44", - "name": "Shoyru", - }, - Object { - "id": "45", - "name": "Skeith", - }, - Object { - "id": "46", - "name": "Techo", - }, - Object { - "id": "47", - "name": "Tonu", - }, - Object { - "id": "48", - "name": "Tuskaninny", - }, - Object { - "id": "49", - "name": "Uni", - }, - Object { - "id": "51", - "name": "Wocky", - }, - Object { - "id": "53", - "name": "Yurble", - }, - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "75197", - "name": "Dyeworks Gold: Pristine White Snowflake Stole", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "75198", - "name": "Dyeworks Purple: Pristine White Snowflake Stole", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "75199", - "name": "Dyeworks Brown: Pristine White Snowflake Stole", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, ], }, Object { @@ -7054,170 +4642,6 @@ Object { }, ], }, - Object { - "id": "78318", - "name": "Vandagyre Flight Suit Bottoms", - "speciesThatNeedModels": Array [ - Object { - "id": "24", - "name": "Kiko", - }, - ], - }, - Object { - "id": "78320", - "name": "Vandagyre Handheld Plushie", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "78560", - "name": "Traditional Shenkuu Gown", - "speciesThatNeedModels": Array [ - Object { - "id": "54", - "name": "Zafara", - }, - ], - }, - Object { - "id": "78754", - "name": "Sparkling Body Paint", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "79847", - "name": "Summer Surfboard", - "speciesThatNeedModels": Array [ - Object { - "id": "55", - "name": "Vandagyre", - }, - ], - }, - Object { - "id": "80024", - "name": "Team Maraqua Wrist Bands", - "speciesThatNeedModels": Array [ - Object { - "id": "53", - "name": "Yurble", - }, - Object { - "id": "54", - "name": "Zafara", - }, - ], - }, - Object { - "id": "80427", - "name": "Lyra Warrior Garb", - "speciesThatNeedModels": Array [ - Object { - "id": "44", - "name": "Shoyru", - }, - ], - }, - Object { - "id": "80428", - "name": "The Traveler Outfit", - "speciesThatNeedModels": Array [ - Object { - "id": "48", - "name": "Tuskaninny", - }, - ], - }, - Object { - "id": "80774", - "name": "All Wrapped Up", - "speciesThatNeedModels": Array [ - Object { - "id": "32", - "name": "Lutari", - }, - ], - }, - Object { - "id": "81060", - "name": "Dyeworks Silver: Garden Tea Parasol", - "speciesThatNeedModels": Array [ - Object { - "id": "13", - "name": "Flotsam", - }, - Object { - "id": "18", - "name": "Hissi", - }, - Object { - "id": "41", - "name": "Quiggle", - }, - Object { - "id": "53", - "name": "Yurble", - }, - ], - }, - Object { - "id": "81061", - "name": "Dyeworks Purple: Garden Tea Parasol", - "speciesThatNeedModels": Array [ - Object { - "id": "13", - "name": "Flotsam", - }, - Object { - "id": "18", - "name": "Hissi", - }, - Object { - "id": "41", - "name": "Quiggle", - }, - Object { - "id": "53", - "name": "Yurble", - }, - ], - }, - Object { - "id": "81062", - "name": "Dyeworks Green: Garden Tea Parasol", - "speciesThatNeedModels": Array [ - Object { - "id": "13", - "name": "Flotsam", - }, - Object { - "id": "18", - "name": "Hissi", - }, - Object { - "id": "21", - "name": "Jubjub", - }, - Object { - "id": "41", - "name": "Quiggle", - }, - Object { - "id": "53", - "name": "Yurble", - }, - ], - }, Object { "id": "81144", "name": "MME25-S5a: Storage Gear Trinket", @@ -7560,36 +4984,6 @@ Object { }, ], }, - Object { - "id": "81274", - "name": "Rose Gold Shoulder Jewelry", - "speciesThatNeedModels": Array [ - Object { - "id": "32", - "name": "Lutari", - }, - ], - }, - Object { - "id": "81371", - "name": "Team Lost Desert Gym Bag", - "speciesThatNeedModels": Array [ - Object { - "id": "52", - "name": "Xweetok", - }, - ], - }, - Object { - "id": "81396", - "name": "Breezy Summer Dress", - "speciesThatNeedModels": Array [ - Object { - "id": "41", - "name": "Quiggle", - }, - ], - }, Object { "id": "81547", "name": "Garins Collectors Outfit", @@ -7601,32 +4995,56 @@ Object { ], }, Object { - "id": "81563", - "name": "Greaser Hairdo", + "id": "81619", + "name": "Ancient Dacardite Necklace", "speciesThatNeedModels": Array [ + Object { + "id": "1", + "name": "Acara", + }, + Object { + "id": "8", + "name": "Chomby", + }, Object { "id": "13", "name": "Flotsam", }, + Object { + "id": "14", + "name": "Gelert", + }, Object { "id": "15", "name": "Gnorbu", }, Object { - "id": "23", - "name": "Kau", + "id": "17", + "name": "Grundo", }, Object { - "id": "34", - "name": "Moehog", + "id": "22", + "name": "Kacheek", }, Object { - "id": "35", - "name": "Mynci", + "id": "24", + "name": "Kiko", }, Object { - "id": "37", - "name": "Ogrin", + "id": "26", + "name": "Korbat", + }, + Object { + "id": "28", + "name": "Krawk", + }, + Object { + "id": "41", + "name": "Quiggle", + }, + Object { + "id": "53", + "name": "Yurble", }, ], }, @@ -7634,6 +5052,116 @@ Object { "id": "81630", "name": "Rainbow Overalls", "speciesThatNeedModels": Array [ + Object { + "id": "11", + "name": "Elephante", + }, + Object { + "id": "26", + "name": "Korbat", + }, + Object { + "id": "36", + "name": "Nimmo", + }, + Object { + "id": "46", + "name": "Techo", + }, + ], + }, + Object { + "id": "81657", + "name": "Autumn Goblet", + "speciesThatNeedModels": Array [ + Object { + "id": "4", + "name": "Bori", + }, + Object { + "id": "24", + "name": "Kiko", + }, + Object { + "id": "47", + "name": "Tonu", + }, + Object { + "id": "53", + "name": "Yurble", + }, + ], + }, + Object { + "id": "81658", + "name": "Autumn Leaf Cowl", + "speciesThatNeedModels": Array [ + Object { + "id": "47", + "name": "Tonu", + }, + Object { + "id": "53", + "name": "Yurble", + }, + ], + }, + Object { + "id": "81659", + "name": "Fall Knapsack", + "speciesThatNeedModels": Array [ + Object { + "id": "11", + "name": "Elephante", + }, + Object { + "id": "13", + "name": "Flotsam", + }, + Object { + "id": "51", + "name": "Wocky", + }, + ], + }, + Object { + "id": "81660", + "name": "Colours of Fall Wig", + "speciesThatNeedModels": Array [ + Object { + "id": "11", + "name": "Elephante", + }, + Object { + "id": "24", + "name": "Kiko", + }, + Object { + "id": "47", + "name": "Tonu", + }, + Object { + "id": "53", + "name": "Yurble", + }, + ], + }, + Object { + "id": "81664", + "name": "Seashell Dress", + "speciesThatNeedModels": Array [ + Object { + "id": "1", + "name": "Acara", + }, + Object { + "id": "4", + "name": "Bori", + }, + Object { + "id": "5", + "name": "Bruce", + }, Object { "id": "6", "name": "Buzz", @@ -7642,6 +5170,14 @@ Object { "id": "7", "name": "Chia", }, + Object { + "id": "8", + "name": "Chomby", + }, + Object { + "id": "9", + "name": "Cybunny", + }, Object { "id": "11", "name": "Elephante", @@ -7650,6 +5186,22 @@ Object { "id": "13", "name": "Flotsam", }, + Object { + "id": "14", + "name": "Gelert", + }, + Object { + "id": "15", + "name": "Gnorbu", + }, + Object { + "id": "16", + "name": "Grarrl", + }, + Object { + "id": "17", + "name": "Grundo", + }, Object { "id": "18", "name": "Hissi", @@ -7662,6 +5214,14 @@ Object { "id": "21", "name": "Jubjub", }, + Object { + "id": "22", + "name": "Kacheek", + }, + Object { + "id": "23", + "name": "Kau", + }, Object { "id": "24", "name": "Kiko", @@ -7674,22 +5234,1212 @@ Object { "id": "26", "name": "Korbat", }, + Object { + "id": "28", + "name": "Krawk", + }, + Object { + "id": "29", + "name": "Kyrii", + }, + Object { + "id": "30", + "name": "Lenny", + }, + Object { + "id": "33", + "name": "Meerca", + }, + Object { + "id": "34", + "name": "Moehog", + }, + Object { + "id": "35", + "name": "Mynci", + }, Object { "id": "36", "name": "Nimmo", }, + Object { + "id": "37", + "name": "Ogrin", + }, + Object { + "id": "39", + "name": "Poogle", + }, Object { "id": "40", "name": "Pteri", }, + Object { + "id": "41", + "name": "Quiggle", + }, Object { "id": "43", "name": "Scorchio", }, + Object { + "id": "45", + "name": "Skeith", + }, Object { "id": "46", "name": "Techo", }, + Object { + "id": "47", + "name": "Tonu", + }, + Object { + "id": "51", + "name": "Wocky", + }, + Object { + "id": "53", + "name": "Yurble", + }, + Object { + "id": "54", + "name": "Zafara", + }, + ], + }, + Object { + "id": "81667", + "name": "Groovy Wet Suit", + "speciesThatNeedModels": Array [ + Object { + "id": "3", + "name": "Blumaroo", + }, + Object { + "id": "4", + "name": "Bori", + }, + Object { + "id": "6", + "name": "Buzz", + }, + Object { + "id": "7", + "name": "Chia", + }, + Object { + "id": "8", + "name": "Chomby", + }, + Object { + "id": "9", + "name": "Cybunny", + }, + Object { + "id": "13", + "name": "Flotsam", + }, + Object { + "id": "14", + "name": "Gelert", + }, + Object { + "id": "15", + "name": "Gnorbu", + }, + Object { + "id": "16", + "name": "Grarrl", + }, + Object { + "id": "19", + "name": "Ixi", + }, + Object { + "id": "20", + "name": "Jetsam", + }, + Object { + "id": "22", + "name": "Kacheek", + }, + Object { + "id": "23", + "name": "Kau", + }, + Object { + "id": "24", + "name": "Kiko", + }, + Object { + "id": "25", + "name": "Koi", + }, + Object { + "id": "26", + "name": "Korbat", + }, + Object { + "id": "27", + "name": "Kougra", + }, + Object { + "id": "28", + "name": "Krawk", + }, + Object { + "id": "29", + "name": "Kyrii", + }, + Object { + "id": "30", + "name": "Lenny", + }, + Object { + "id": "32", + "name": "Lutari", + }, + Object { + "id": "33", + "name": "Meerca", + }, + Object { + "id": "34", + "name": "Moehog", + }, + Object { + "id": "35", + "name": "Mynci", + }, + Object { + "id": "36", + "name": "Nimmo", + }, + Object { + "id": "39", + "name": "Poogle", + }, + Object { + "id": "40", + "name": "Pteri", + }, + Object { + "id": "41", + "name": "Quiggle", + }, + Object { + "id": "43", + "name": "Scorchio", + }, + Object { + "id": "45", + "name": "Skeith", + }, + Object { + "id": "46", + "name": "Techo", + }, + Object { + "id": "47", + "name": "Tonu", + }, + Object { + "id": "49", + "name": "Uni", + }, + Object { + "id": "50", + "name": "Usul", + }, + Object { + "id": "51", + "name": "Wocky", + }, + Object { + "id": "52", + "name": "Xweetok", + }, + Object { + "id": "54", + "name": "Zafara", + }, + ], + }, + Object { + "id": "81670", + "name": "Mermaid Wig", + "speciesThatNeedModels": Array [ + Object { + "id": "1", + "name": "Acara", + }, + Object { + "id": "4", + "name": "Bori", + }, + Object { + "id": "6", + "name": "Buzz", + }, + Object { + "id": "7", + "name": "Chia", + }, + Object { + "id": "8", + "name": "Chomby", + }, + Object { + "id": "9", + "name": "Cybunny", + }, + Object { + "id": "13", + "name": "Flotsam", + }, + Object { + "id": "14", + "name": "Gelert", + }, + Object { + "id": "15", + "name": "Gnorbu", + }, + Object { + "id": "16", + "name": "Grarrl", + }, + Object { + "id": "17", + "name": "Grundo", + }, + Object { + "id": "18", + "name": "Hissi", + }, + Object { + "id": "19", + "name": "Ixi", + }, + Object { + "id": "20", + "name": "Jetsam", + }, + Object { + "id": "21", + "name": "Jubjub", + }, + Object { + "id": "23", + "name": "Kau", + }, + Object { + "id": "24", + "name": "Kiko", + }, + Object { + "id": "25", + "name": "Koi", + }, + Object { + "id": "26", + "name": "Korbat", + }, + Object { + "id": "28", + "name": "Krawk", + }, + Object { + "id": "29", + "name": "Kyrii", + }, + Object { + "id": "30", + "name": "Lenny", + }, + Object { + "id": "33", + "name": "Meerca", + }, + Object { + "id": "34", + "name": "Moehog", + }, + Object { + "id": "36", + "name": "Nimmo", + }, + Object { + "id": "39", + "name": "Poogle", + }, + Object { + "id": "40", + "name": "Pteri", + }, + Object { + "id": "41", + "name": "Quiggle", + }, + Object { + "id": "43", + "name": "Scorchio", + }, + Object { + "id": "45", + "name": "Skeith", + }, + Object { + "id": "46", + "name": "Techo", + }, + Object { + "id": "47", + "name": "Tonu", + }, + Object { + "id": "51", + "name": "Wocky", + }, + Object { + "id": "53", + "name": "Yurble", + }, + Object { + "id": "54", + "name": "Zafara", + }, + ], + }, + Object { + "id": "81671", + "name": "Flower Pinwheel", + "speciesThatNeedModels": Array [ + Object { + "id": "1", + "name": "Acara", + }, + Object { + "id": "3", + "name": "Blumaroo", + }, + Object { + "id": "4", + "name": "Bori", + }, + Object { + "id": "5", + "name": "Bruce", + }, + Object { + "id": "6", + "name": "Buzz", + }, + Object { + "id": "7", + "name": "Chia", + }, + Object { + "id": "8", + "name": "Chomby", + }, + Object { + "id": "9", + "name": "Cybunny", + }, + Object { + "id": "11", + "name": "Elephante", + }, + Object { + "id": "13", + "name": "Flotsam", + }, + Object { + "id": "14", + "name": "Gelert", + }, + Object { + "id": "15", + "name": "Gnorbu", + }, + Object { + "id": "16", + "name": "Grarrl", + }, + Object { + "id": "17", + "name": "Grundo", + }, + Object { + "id": "18", + "name": "Hissi", + }, + Object { + "id": "20", + "name": "Jetsam", + }, + Object { + "id": "21", + "name": "Jubjub", + }, + Object { + "id": "22", + "name": "Kacheek", + }, + Object { + "id": "23", + "name": "Kau", + }, + Object { + "id": "24", + "name": "Kiko", + }, + Object { + "id": "25", + "name": "Koi", + }, + Object { + "id": "26", + "name": "Korbat", + }, + Object { + "id": "28", + "name": "Krawk", + }, + Object { + "id": "29", + "name": "Kyrii", + }, + Object { + "id": "30", + "name": "Lenny", + }, + Object { + "id": "33", + "name": "Meerca", + }, + Object { + "id": "34", + "name": "Moehog", + }, + Object { + "id": "35", + "name": "Mynci", + }, + Object { + "id": "36", + "name": "Nimmo", + }, + Object { + "id": "37", + "name": "Ogrin", + }, + Object { + "id": "39", + "name": "Poogle", + }, + Object { + "id": "40", + "name": "Pteri", + }, + Object { + "id": "41", + "name": "Quiggle", + }, + Object { + "id": "43", + "name": "Scorchio", + }, + Object { + "id": "45", + "name": "Skeith", + }, + Object { + "id": "46", + "name": "Techo", + }, + Object { + "id": "47", + "name": "Tonu", + }, + Object { + "id": "51", + "name": "Wocky", + }, + Object { + "id": "53", + "name": "Yurble", + }, + Object { + "id": "54", + "name": "Zafara", + }, + ], + }, + Object { + "id": "81672", + "name": "Ombre Island Button up", + "speciesThatNeedModels": Array [ + Object { + "id": "1", + "name": "Acara", + }, + Object { + "id": "3", + "name": "Blumaroo", + }, + Object { + "id": "4", + "name": "Bori", + }, + Object { + "id": "5", + "name": "Bruce", + }, + Object { + "id": "6", + "name": "Buzz", + }, + Object { + "id": "7", + "name": "Chia", + }, + Object { + "id": "8", + "name": "Chomby", + }, + Object { + "id": "9", + "name": "Cybunny", + }, + Object { + "id": "11", + "name": "Elephante", + }, + Object { + "id": "13", + "name": "Flotsam", + }, + Object { + "id": "14", + "name": "Gelert", + }, + Object { + "id": "15", + "name": "Gnorbu", + }, + Object { + "id": "16", + "name": "Grarrl", + }, + Object { + "id": "17", + "name": "Grundo", + }, + Object { + "id": "18", + "name": "Hissi", + }, + Object { + "id": "19", + "name": "Ixi", + }, + Object { + "id": "20", + "name": "Jetsam", + }, + Object { + "id": "21", + "name": "Jubjub", + }, + Object { + "id": "22", + "name": "Kacheek", + }, + Object { + "id": "23", + "name": "Kau", + }, + Object { + "id": "24", + "name": "Kiko", + }, + Object { + "id": "25", + "name": "Koi", + }, + Object { + "id": "26", + "name": "Korbat", + }, + Object { + "id": "28", + "name": "Krawk", + }, + Object { + "id": "29", + "name": "Kyrii", + }, + Object { + "id": "30", + "name": "Lenny", + }, + Object { + "id": "32", + "name": "Lutari", + }, + Object { + "id": "33", + "name": "Meerca", + }, + Object { + "id": "34", + "name": "Moehog", + }, + Object { + "id": "35", + "name": "Mynci", + }, + Object { + "id": "36", + "name": "Nimmo", + }, + Object { + "id": "39", + "name": "Poogle", + }, + Object { + "id": "40", + "name": "Pteri", + }, + Object { + "id": "41", + "name": "Quiggle", + }, + Object { + "id": "43", + "name": "Scorchio", + }, + Object { + "id": "45", + "name": "Skeith", + }, + Object { + "id": "46", + "name": "Techo", + }, + Object { + "id": "47", + "name": "Tonu", + }, + Object { + "id": "51", + "name": "Wocky", + }, + Object { + "id": "53", + "name": "Yurble", + }, + Object { + "id": "54", + "name": "Zafara", + }, + ], + }, + Object { + "id": "81674", + "name": "Surfer Dude Hair", + "speciesThatNeedModels": Array [ + Object { + "id": "4", + "name": "Bori", + }, + Object { + "id": "5", + "name": "Bruce", + }, + Object { + "id": "6", + "name": "Buzz", + }, + Object { + "id": "7", + "name": "Chia", + }, + Object { + "id": "8", + "name": "Chomby", + }, + Object { + "id": "9", + "name": "Cybunny", + }, + Object { + "id": "11", + "name": "Elephante", + }, + Object { + "id": "13", + "name": "Flotsam", + }, + Object { + "id": "14", + "name": "Gelert", + }, + Object { + "id": "15", + "name": "Gnorbu", + }, + Object { + "id": "16", + "name": "Grarrl", + }, + Object { + "id": "17", + "name": "Grundo", + }, + Object { + "id": "18", + "name": "Hissi", + }, + Object { + "id": "20", + "name": "Jetsam", + }, + Object { + "id": "21", + "name": "Jubjub", + }, + Object { + "id": "22", + "name": "Kacheek", + }, + Object { + "id": "23", + "name": "Kau", + }, + Object { + "id": "24", + "name": "Kiko", + }, + Object { + "id": "25", + "name": "Koi", + }, + Object { + "id": "26", + "name": "Korbat", + }, + Object { + "id": "29", + "name": "Kyrii", + }, + Object { + "id": "30", + "name": "Lenny", + }, + Object { + "id": "33", + "name": "Meerca", + }, + Object { + "id": "34", + "name": "Moehog", + }, + Object { + "id": "35", + "name": "Mynci", + }, + Object { + "id": "36", + "name": "Nimmo", + }, + Object { + "id": "39", + "name": "Poogle", + }, + Object { + "id": "40", + "name": "Pteri", + }, + Object { + "id": "41", + "name": "Quiggle", + }, + Object { + "id": "43", + "name": "Scorchio", + }, + Object { + "id": "45", + "name": "Skeith", + }, + Object { + "id": "46", + "name": "Techo", + }, + Object { + "id": "47", + "name": "Tonu", + }, + Object { + "id": "51", + "name": "Wocky", + }, + Object { + "id": "53", + "name": "Yurble", + }, + Object { + "id": "54", + "name": "Zafara", + }, + ], + }, + Object { + "id": "81675", + "name": "Seashell Body Jewellery", + "speciesThatNeedModels": Array [ + Object { + "id": "1", + "name": "Acara", + }, + Object { + "id": "4", + "name": "Bori", + }, + Object { + "id": "6", + "name": "Buzz", + }, + Object { + "id": "7", + "name": "Chia", + }, + Object { + "id": "8", + "name": "Chomby", + }, + Object { + "id": "9", + "name": "Cybunny", + }, + Object { + "id": "10", + "name": "Draik", + }, + Object { + "id": "13", + "name": "Flotsam", + }, + Object { + "id": "14", + "name": "Gelert", + }, + Object { + "id": "15", + "name": "Gnorbu", + }, + Object { + "id": "16", + "name": "Grarrl", + }, + Object { + "id": "17", + "name": "Grundo", + }, + Object { + "id": "18", + "name": "Hissi", + }, + Object { + "id": "20", + "name": "Jetsam", + }, + Object { + "id": "21", + "name": "Jubjub", + }, + Object { + "id": "22", + "name": "Kacheek", + }, + Object { + "id": "23", + "name": "Kau", + }, + Object { + "id": "24", + "name": "Kiko", + }, + Object { + "id": "25", + "name": "Koi", + }, + Object { + "id": "26", + "name": "Korbat", + }, + Object { + "id": "28", + "name": "Krawk", + }, + Object { + "id": "29", + "name": "Kyrii", + }, + Object { + "id": "30", + "name": "Lenny", + }, + Object { + "id": "33", + "name": "Meerca", + }, + Object { + "id": "34", + "name": "Moehog", + }, + Object { + "id": "35", + "name": "Mynci", + }, + Object { + "id": "36", + "name": "Nimmo", + }, + Object { + "id": "39", + "name": "Poogle", + }, + Object { + "id": "40", + "name": "Pteri", + }, + Object { + "id": "41", + "name": "Quiggle", + }, + Object { + "id": "43", + "name": "Scorchio", + }, + Object { + "id": "45", + "name": "Skeith", + }, + Object { + "id": "46", + "name": "Techo", + }, + Object { + "id": "47", + "name": "Tonu", + }, + Object { + "id": "51", + "name": "Wocky", + }, + Object { + "id": "53", + "name": "Yurble", + }, + Object { + "id": "54", + "name": "Zafara", + }, + ], + }, + Object { + "id": "81693", + "name": "Premium Collectible: Cowboy Boots", + "speciesThatNeedModels": Array [ + Object { + "id": "1", + "name": "Acara", + }, + Object { + "id": "2", + "name": "Aisha", + }, + Object { + "id": "3", + "name": "Blumaroo", + }, + Object { + "id": "4", + "name": "Bori", + }, + Object { + "id": "5", + "name": "Bruce", + }, + Object { + "id": "6", + "name": "Buzz", + }, + Object { + "id": "7", + "name": "Chia", + }, + Object { + "id": "8", + "name": "Chomby", + }, + Object { + "id": "9", + "name": "Cybunny", + }, + Object { + "id": "11", + "name": "Elephante", + }, + Object { + "id": "12", + "name": "Eyrie", + }, + Object { + "id": "13", + "name": "Flotsam", + }, + Object { + "id": "14", + "name": "Gelert", + }, + Object { + "id": "15", + "name": "Gnorbu", + }, + Object { + "id": "16", + "name": "Grarrl", + }, + Object { + "id": "17", + "name": "Grundo", + }, + Object { + "id": "19", + "name": "Ixi", + }, + Object { + "id": "20", + "name": "Jetsam", + }, + Object { + "id": "21", + "name": "Jubjub", + }, + Object { + "id": "23", + "name": "Kau", + }, + Object { + "id": "24", + "name": "Kiko", + }, + Object { + "id": "25", + "name": "Koi", + }, + Object { + "id": "26", + "name": "Korbat", + }, + Object { + "id": "27", + "name": "Kougra", + }, + Object { + "id": "28", + "name": "Krawk", + }, + Object { + "id": "29", + "name": "Kyrii", + }, + Object { + "id": "30", + "name": "Lenny", + }, + Object { + "id": "34", + "name": "Moehog", + }, + Object { + "id": "35", + "name": "Mynci", + }, + Object { + "id": "36", + "name": "Nimmo", + }, + Object { + "id": "37", + "name": "Ogrin", + }, + Object { + "id": "38", + "name": "Peophin", + }, + Object { + "id": "39", + "name": "Poogle", + }, + Object { + "id": "40", + "name": "Pteri", + }, + Object { + "id": "41", + "name": "Quiggle", + }, + Object { + "id": "42", + "name": "Ruki", + }, + Object { + "id": "44", + "name": "Shoyru", + }, + Object { + "id": "45", + "name": "Skeith", + }, + Object { + "id": "46", + "name": "Techo", + }, + Object { + "id": "47", + "name": "Tonu", + }, + Object { + "id": "48", + "name": "Tuskaninny", + }, + Object { + "id": "49", + "name": "Uni", + }, + Object { + "id": "50", + "name": "Usul", + }, + Object { + "id": "51", + "name": "Wocky", + }, + Object { + "id": "53", + "name": "Yurble", + }, + Object { + "id": "54", + "name": "Zafara", + }, ], }, ], diff --git a/src/server/types/Item.js b/src/server/types/Item.js index 4cf1b5e..47fbb37 100644 --- a/src/server/types/Item.js +++ b/src/server/types/Item.js @@ -137,7 +137,9 @@ const resolvers = { }, speciesThatNeedModels: async ({ id }, _, { itemsThatNeedModelsLoader }) => { const allItems = await itemsThatNeedModelsLoader.load("all"); - const item = allItems.find((i) => i.id === id); + const item = allItems.find( + (row) => row.itemId === id && row.colorId === "8" + ); const modeledSpeciesIds = item.modeledSpeciesIds.split(","); // HACK: Needs to be updated if more species are added! const allSpeciesIds = Array.from( @@ -207,8 +209,13 @@ const resolvers = { return { query, zones, items }; }, itemsThatNeedModels: async (_, __, { itemsThatNeedModelsLoader }) => { - const items = await itemsThatNeedModelsLoader.load("all"); - return items.map(({ id }) => ({ id })); + const rows = await itemsThatNeedModelsLoader.load("all"); + let itemIds = rows + .filter((row) => row.colorId === "8") + .map((row) => row.itemId); + itemIds = new Set(itemIds); + itemIds = [...itemIds].sort(); + return itemIds.map((id) => ({ id })); }, }, };