From 08f7367e17d6f9f7a627b95acc87d76b08bd8c5a Mon Sep 17 00:00:00 2001 From: Tyler Renelle Date: Thu, 18 Apr 2013 19:14:05 -0400 Subject: [PATCH] Revert "move task-corruption cleanup to the browser" --- src/app/index.coffee | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/src/app/index.coffee b/src/app/index.coffee index b40bda4ea2..4395dc970f 100644 --- a/src/app/index.coffee +++ b/src/app/index.coffee @@ -27,7 +27,6 @@ _ = require('underscore') cleanupCorruptTasks = (model) -> user = model.at('_user') tasks = user.get('tasks') - wasCorrupt = false ## Remove corrupted tasks _.each tasks, (task, key) -> @@ -35,13 +34,15 @@ cleanupCorruptTasks = (model) -> user.del("tasks.#{key}") delete tasks[key] + batch = null + ## Task List Cleanup _.each ['habit','daily','todo','reward'], (type) -> # 1. remove duplicates # 2. restore missing zombie tasks back into list idList = user.get("#{type}Ids") - taskIds = _.pluck( _.where(tasks, {type:type}), 'id' ) + taskIds = _.pluck( _.where(tasks, {type:type}), 'id') union = _.union idList, taskIds # 2. remove empty (grey) tasks @@ -49,11 +50,13 @@ cleanupCorruptTasks = (model) -> # There were indeed issues found, set the new list if !_.isEqual(idList, preened) - user.set("#{type}Ids", preened) - wasCorrupt = true - "#{type}s were corrupt." + unless batch? + batch = new require('./character').BatchUpdate(model) + batch.startTransaction() + batch.set("#{type}Ids", preened) + console.error user.get('id') + "'s #{type}s were corrupt." - require('./browser').resetDom(model) if wasCorrupt + batch.commit() if batch? get '/', (page, model, params, next) -> return page.redirect '/' if page.params?.query?.play? @@ -63,6 +66,8 @@ get '/', (page, model, params, next) -> require('./party').partySubscribe page, model, params, next, -> model.setNull '_user.apiToken', derby.uuid() + cleanupCorruptTasks(model) # https://github.com/lefnire/habitrpg/issues/634 + require('./items').server(model) #refLists @@ -75,7 +80,6 @@ get '/', (page, model, params, next) -> ready (model) -> user = model.at('_user') - cleanupCorruptTasks(model) # https://github.com/lefnire/habitrpg/issues/634 #set cron immediately lastCron = user.get('lastCron')