mirror of
https://github.com/HabitRPG/habitica.git
synced 2025-12-19 15:48:04 +01:00
95 lines
2.2 KiB
JavaScript
95 lines
2.2 KiB
JavaScript
// Generated by CoffeeScript 1.3.3
|
|
var content, moment, userSchema, _;
|
|
|
|
content = require('./content');
|
|
|
|
moment = require('moment');
|
|
|
|
_ = require('lodash');
|
|
|
|
userSchema = {
|
|
balance: 2,
|
|
stats: {
|
|
money: 0,
|
|
exp: 0,
|
|
lvl: 1,
|
|
hp: 50
|
|
},
|
|
items: {
|
|
itemsEnabled: false,
|
|
armor: 0,
|
|
weapon: 0
|
|
},
|
|
tasks: {},
|
|
habitIds: [],
|
|
dailyIds: [],
|
|
todoIds: [],
|
|
completedIds: [],
|
|
rewardIds: []
|
|
};
|
|
|
|
module.exports.newUserObject = function() {
|
|
var guid, newUser, task, _i, _len, _ref;
|
|
newUser = _.clone(userSchema, true);
|
|
_ref = content.defaultTasks;
|
|
for (_i = 0, _len = _ref.length; _i < _len; _i++) {
|
|
task = _ref[_i];
|
|
guid = task.id = require('derby/node_modules/racer').uuid();
|
|
newUser.tasks[guid] = task;
|
|
switch (task.type) {
|
|
case 'habit':
|
|
newUser.habitIds.push(guid);
|
|
break;
|
|
case 'daily':
|
|
newUser.dailyIds.push(guid);
|
|
break;
|
|
case 'todo':
|
|
newUser.todoIds.push(guid);
|
|
break;
|
|
case 'reward':
|
|
newUser.rewardIds.push(guid);
|
|
}
|
|
}
|
|
return newUser;
|
|
};
|
|
|
|
module.exports.updateSchema = function(model) {
|
|
return;
|
|
return model.fetch('users', function(err, users) {
|
|
return _.each(users.get(), function(userObj) {
|
|
var daysOld, sameTasks, user, userPath;
|
|
userPath = "users." + userObj._id;
|
|
user = model.at(userPath);
|
|
if (userObj.lastCron == null) {
|
|
model.del(userPath);
|
|
return;
|
|
}
|
|
daysOld = helpers.daysBetween(new Date(), userObj.lastCron);
|
|
if (daysOld > 30) {
|
|
sameTasks = _.filter(require('./content').defaultTasks, function(defaultTask) {
|
|
var foundSame;
|
|
foundSame = _.find(userObj.tasks, function(userTask) {
|
|
return userTask.text === defaultTask.text;
|
|
});
|
|
return foundSame != null;
|
|
});
|
|
if (_.size(sameTasks) > 5) {
|
|
model.del(userPath);
|
|
return;
|
|
}
|
|
}
|
|
user.set('history', {
|
|
exp: [],
|
|
todos: []
|
|
});
|
|
return _.each(userObj.tasks, function(taskObj) {
|
|
var task;
|
|
task = user.at("tasks." + taskObj.id);
|
|
if (task.get("history")) {
|
|
return task.set("history", []);
|
|
}
|
|
});
|
|
});
|
|
});
|
|
};
|