From a35fa6850c78844c15144fe961c2d6d3d418d0e4 Mon Sep 17 00:00:00 2001 From: Alys Date: Sat, 6 Jun 2015 07:34:47 +1000 Subject: [PATCH] changed ultimateGearSets migration script to require only one run for all classes - NOT TESTED YET --- migrations/20150604_ultimateGearSets.js | 82 +++++++++++++++++-------- 1 file changed, 56 insertions(+), 26 deletions(-) diff --git a/migrations/20150604_ultimateGearSets.js b/migrations/20150604_ultimateGearSets.js index a094b88aef..1c9c1a412b 100644 --- a/migrations/20150604_ultimateGearSets.js +++ b/migrations/20150604_ultimateGearSets.js @@ -20,35 +20,29 @@ var dbUsers = mongo.db(dbserver + '/' + dbname + '?auto_reconnect').collection(' var fields = { 'achievements.ultimateGearSets':1 + 'items.gear.owned':1 }; var query = { - 'items.gear.owned.weapon_wizard_6': {$exists: true}, - 'items.gear.owned.armor_wizard_5': {$exists: true}, - 'items.gear.owned.head_wizard_5': {$exists: true} + $or: [ + 'items.gear.owned.weapon_wizard_6': {$exists: true}, + 'items.gear.owned.armor_wizard_5': {$exists: true}, + 'items.gear.owned.head_wizard_5': {$exists: true} + 'items.gear.owned.weapon_warrior_6': {$exists: true}, + 'items.gear.owned.armor_warrior_5': {$exists: true}, + 'items.gear.owned.head_warrior_5': {$exists: true}, + 'items.gear.owned.shield_warrior_5': {$exists: true} + 'items.gear.owned.weapon_healer_6': {$exists: true}, + 'items.gear.owned.armor_healer_5': {$exists: true}, + 'items.gear.owned.head_healer_5': {$exists: true}, + 'items.gear.owned.shield_healer_5': {$exists: true} + 'items.gear.owned.weapon_rogue_6': {$exists: true}, + 'items.gear.owned.armor_rogue_5': {$exists: true}, + 'items.gear.owned.head_rogue_5': {$exists: true}, + 'items.gear.owned.shield_rogue_6': {$exists: true} + ] }; -/* var query = { - 'items.gear.owned.weapon_warrior_6': {$exists: true}, - 'items.gear.owned.armor_warrior_5': {$exists: true}, - 'items.gear.owned.head_warrior_5': {$exists: true}, - 'items.gear.owned.shield_warrior_5': {$exists: true} -}; */ - -/* var query = { - 'items.gear.owned.weapon_healer_6': {$exists: true}, - 'items.gear.owned.armor_healer_5': {$exists: true}, - 'items.gear.owned.head_healer_5': {$exists: true}, - 'items.gear.owned.shield_healer_5': {$exists: true} -}; */ - -/* var query = { - 'items.gear.owned.weapon_rogue_6': {$exists: true}, - 'items.gear.owned.armor_rogue_5': {$exists: true}, - 'items.gear.owned.head_rogue_5': {$exists: true}, - 'items.gear.owned.shield_rogue_6': {$exists: true} -}; */ - console.warn('Updating users...'); var progressCount = 1000; var count = 0; @@ -60,8 +54,44 @@ dbUsers.findEach(query, fields, {batchSize:250}, function(err, user) { } count++; - var set = {'migration':migrationName, 'achievements.ultimateGearSets.wizard':true}; // Change per class - dbUsers.update({_id:user._id}, {$set:set}); + var achievementArray = []; + var changeUser = false; + if ( (typeof user.items.gear.owned.weapon_wizard_6 !== 'undefined') + && (typeof user.items.gear.owned.armor_wizard_5 !== 'undefined') + && (typeof user.items.gear.owned.head_wizard_5 !== 'undefined') + ) { + achievementArray.push({'wizard':true}); + changeUser = true; + } + if ( (typeof user.items.gear.owned.weapon_warrior_6 !== 'undefined') + && (typeof user.items.gear.owned.armor_warrior_5 !== 'undefined') + && (typeof user.items.gear.owned.head_warrior_5 !== 'undefined') + && (typeof user.items.gear.owned.shield_warrior_5 !== 'undefined') + ) { + achievementArray.push({'warrior':true}); + changeUser = true; + } + if ( (typeof user.items.gear.owned.weapon_healer_6 !== 'undefined') + && (typeof user.items.gear.owned.armor_healer_5 !== 'undefined') + && (typeof user.items.gear.owned.head_healer_5 !== 'undefined') + && (typeof user.items.gear.owned.shield_healer_5 !== 'undefined') + ) { + achievementArray.push({'healer':true}); + changeUser = true; + } + if ( (typeof user.items.gear.owned.weapon_rogue_6 !== 'undefined') + && (typeof user.items.gear.owned.armor_rogue_5 !== 'undefined') + && (typeof user.items.gear.owned.head_rogue_5 !== 'undefined') + && (typeof user.items.gear.owned.shield_rogue_6 !== 'undefined') + ) { + achievementArray.push({'rogue':true}); + changeUser = true; + } + + if (changeUser) { + var set = {'migration':migrationName, 'achievements.ultimateGearSets':achievementArray, 'flags.armoireEnabled':true}; + dbUsers.update({_id:user._id}, {$set:set}); + } if (count%progressCount == 0) console.warn(count + ' ' + user._id); if (user._id == authorUuid) console.warn(authorName + ' processed');