habitica/migrations/archive/2013/20131109_refactor_pets.js

41 lines
1.1 KiB
JavaScript
Raw Normal View History

db.users.find(
{$where: 'Array.isArray(this.items.pets) || Array.isArray(this.items.eggs) || Array.isArray(this.items.hatchingPotions)'},
{backer: 1, items: 1}
).forEach(function (user) {
if (_.isArray(user.items.pets)) {
user.items.pets = _.reduce(user.items.pets, function (m, v) {
m[v] = 5; return m;
}, {});
}
if (!_.isString(user.items.currentPet)) {
user.items.currentPet = user.items.currentPet ? user.items.currentPet.str : '';
}
if (_.isArray(user.items.eggs)) {
user.items.eggs = _.reduce(user.items.eggs, function (m, v) {
2013-11-10 23:30:25 +00:00
if (!m[v.name]) m[v.name] = 0;
m[v.name]++;
return m;
}, {});
}
2013-11-10 23:30:25 +00:00
if (_.isArray(user.items.hatchingPotions)) {
user.items.hatchingPotions = _.reduce(user.items.hatchingPotions, function (m, v) {
2013-11-10 23:30:25 +00:00
if (!m[v]) m[v] = 0;
m[v]++;
return m;
}, {});
}
2013-11-10 23:30:25 +00:00
user.items.food = {};
user.items.mounts = {};
user.items.currentMount = '';
2013-11-10 23:30:25 +00:00
if (user.backer && user.backer.tier && user.backer.tier >= 90) {
user.items.mounts['LionCub-Ethereal'] = true;
}
db.users.update({_id: user._id}, {$set: {items: user.items}});
2013-11-10 23:30:25 +00:00
});