move task-corruption cleanup to the browser. @yangit see if this fixes

the freeze on your end?
This commit is contained in:
Tyler Renelle 2013-04-18 16:52:47 -04:00
parent 251890f7b6
commit 3772672e95

View file

@ -27,6 +27,7 @@ _ = require('underscore')
cleanupCorruptTasks = (model) ->
user = model.at('_user')
tasks = user.get('tasks')
wasCorrupt = false
## Remove corrupted tasks
_.each tasks, (task, key) ->
@ -34,8 +35,6 @@ cleanupCorruptTasks = (model) ->
user.del("tasks.#{key}")
delete tasks[key]
batch = null
## Task List Cleanup
_.each ['habit','daily','todo','reward'], (type) ->
@ -50,13 +49,11 @@ cleanupCorruptTasks = (model) ->
# There were indeed issues found, set the new list
if !_.isEqual(idList, preened)
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."
user.set("#{type}Ids", preened)
wasCorrupt = true
"#{type}s were corrupt."
batch.commit() if batch?
require('./browser').resetDom(model) if wasCorrupt
get '/', (page, model, params, next) ->
return page.redirect '/' if page.params?.query?.play?
@ -69,8 +66,6 @@ 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
@ -83,6 +78,7 @@ 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')