From 32822b250d7d9e28084a9887254f2698f7c3facd Mon Sep 17 00:00:00 2001 From: Matchu Date: Tue, 15 Sep 2020 02:38:23 -0700 Subject: [PATCH] add colors to modeling query, no change to gql yet This updates the MySQL procedure to get the important special colors, but keeps the GQL behavior the same by only filtering to Blue. Just an incremental step before changing the behavior, to make sure I've gotten it right so far! Snapshots significantly updated, but, from scanning it, I think that's expected changes from actual modeling progress. Hooray! --- setup-mysql.sql | 36 +- src/server/loaders.js | 27 +- src/server/query-tests/Item.test.js | 220 +- .../__snapshots__/Item.test.js.snap | 3982 ++++++----------- src/server/types/Item.js | 13 +- 5 files changed, 1454 insertions(+), 2824 deletions(-) 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 })); }, }, };