From 001eba6729325726f1ded8e639851c4173583315 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Wed, 6 Oct 2021 13:37:23 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=88=97=E8=A1=A8=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E4=BB=A3=E7=A0=81=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 5 ++--- src/main/modules/sync/server/server.js | 4 +++- src/main/modules/sync/server/syncList.js | 12 +++--------- 3 files changed, 8 insertions(+), 13 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index 88b1d370..910772a1 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -1,4 +1,3 @@ -### 修复 +### 优化 -- 修复我的列表搜索无法搜索小括号、中括号等字符的问题 -- 修复v1.14.0出现的备份与恢复功能备份的数据无法恢复的问题,同时兼容使用v1.14.0导出的存在问题的数据 +- 优化列表同步代码逻辑 diff --git a/src/main/modules/sync/server/server.js b/src/main/modules/sync/server/server.js index aed2d2c3..645e0557 100644 --- a/src/main/modules/sync/server/server.js +++ b/src/main/modules/sync/server/server.js @@ -5,6 +5,7 @@ const modules = require('../modules') const { authCode, authConnect } = require('./auth') const { getAddress, getServerId, generateCode, getClientKeyInfo } = require('./utils') const syncList = require('./syncList') +const { log } = require('@common/utils') let status = { @@ -88,7 +89,8 @@ const handleStartServer = (port = 9527) => new Promise((resolve, reject) => { try { await syncList(io, socket) } catch (err) { - console.log(err) + // console.log(err) + log.warn(err) return } status.devices.push(keyInfo) diff --git a/src/main/modules/sync/server/syncList.js b/src/main/modules/sync/server/syncList.js index 5897e385..69b68468 100644 --- a/src/main/modules/sync/server/syncList.js +++ b/src/main/modules/sync/server/syncList.js @@ -260,10 +260,7 @@ const mergeListDataFromSnapshot = (sourceList, targetList, snapshotList, addMusi for (const m of sourceList.list) sourceListItemIds.add(m.songmid) for (const m of targetList.list) targetListItemIds.add(m.songmid) for (const m of snapshotList.list) { - if (!sourceListItemIds.has(m.songmid)) removedListIds.add(m.songmid) - } - for (const m of snapshotList.list) { - if (!targetListItemIds.has(m.songmid)) removedListIds.add(m.songmid) + if (!sourceListItemIds.has(m.songmid) || !targetListItemIds.has(m.songmid)) removedListIds.add(m.songmid) } let newList @@ -311,10 +308,7 @@ const handleMergeListDataFromSnapshot = async(socket, snapshot) => { for (const l of remoteListData.userList) remoteUserListIds.add(l.id) for (const l of snapshot.userList) { - if (!localUserListIds.has(l.id)) removedListIds.add(l.id) - } - for (const l of snapshot.userList) { - if (!remoteUserListIds.has(l.id)) removedListIds.add(l.id) + if (!localUserListIds.has(l.id) || !remoteUserListIds.has(l.id)) removedListIds.add(l.id) } let newUserList = [] @@ -353,7 +347,7 @@ const registerUpdateSnapshotTask = (socket, snapshot) => { if (loveList != null) snapshot.loveList = loveList if (userList != null) snapshot.userList = userList updateSnapshot(socket.data.snapshotFilePath, JSON.stringify(snapshot)) - }, 10000) + }, 2000) global.lx_event.common.on(COMMON_EVENT_NAME.saveMyList, handleUpdateSnapshot) socket.on('disconnect', () => { global.lx_event.common.off(COMMON_EVENT_NAME.saveMyList, handleUpdateSnapshot)