Improve history migration performance

Signed-off-by: Max Wu <jackymaxj@gmail.com>
This commit is contained in:
Max Wu 2018-03-10 16:51:00 +08:00
parent d08c9522c0
commit 16cb842b94
1 changed files with 5 additions and 11 deletions

View File

@ -31,20 +31,14 @@ function getHistory (userid, callback) {
history = JSON.parse(user.history) history = JSON.parse(user.history)
// migrate LZString encoded note id to base64url encoded note id // migrate LZString encoded note id to base64url encoded note id
for (let i = 0, l = history.length; i < l; i++) { for (let i = 0, l = history.length; i < l; i++) {
let item = history[i] try {
// try to parse in base64url let id = LZString.decompressFromBase64(history[i].id)
let id = models.Note.decodeNoteId(item.id)
if (!id || !models.Note.checkNoteIdValid(id)) {
// try to parse in LZString if it can't be parsed in base64url
try {
id = LZString.decompressFromBase64(item.id)
} catch (err) {
id = null
}
if (id && models.Note.checkNoteIdValid(id)) { if (id && models.Note.checkNoteIdValid(id)) {
// replace the note id to base64url encoded note id
history[i].id = models.Note.encodeNoteId(id) history[i].id = models.Note.encodeNoteId(id)
} }
} catch (err) {
// most error here comes from LZString, ignore
logger.error(err)
} }
} }
history = parseHistoryToObject(history) history = parseHistoryToObject(history)