From b8287acff373a372e9f4c5dfb7faea21041add6f Mon Sep 17 00:00:00 2001
From: lyswhut <lyswhut@qq.com>
Date: Sat, 25 May 2024 19:54:46 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=AF=BC=E5=85=A5=E6=AD=8C?=
 =?UTF-8?q?=E5=8D=95=E7=9A=84id=E7=94=9F=E6=88=90=E6=96=B9=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/renderer/views/Leaderboard/action.ts     | 5 +++--
 src/renderer/views/songList/Detail/action.ts | 5 +++--
 2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/src/renderer/views/Leaderboard/action.ts b/src/renderer/views/Leaderboard/action.ts
index 2b0f651a..ca7699a5 100644
--- a/src/renderer/views/Leaderboard/action.ts
+++ b/src/renderer/views/Leaderboard/action.ts
@@ -5,6 +5,7 @@ import { getListDetail, getListDetailAll } from '@renderer/store/leaderboard/act
 import { createUserList, setTempList } from '@renderer/store/list/action'
 import { playList } from '@renderer/core/player/action'
 import { LIST_IDS } from '@common/constants'
+import { toMD5 } from '@renderer/utils'
 
 const getListId = (id: string) => `board__${id}`
 
@@ -12,7 +13,7 @@ export const addSongListDetail = async(id: string, name: string, source: LX.Onli
   // console.log(this.listDetail.info)
   // if (!this.listDetail.info.name) return
   const listId = getListId(id)
-  const targetList = userLists.find(l => l.id == listId)
+  const targetList = userLists.find(l => l.sourceListId == listId)
   if (targetList) {
     const confirm = await dialog.confirm({
       message: window.i18n.t('duplicate_list_tip', { name: targetList.name }),
@@ -27,7 +28,7 @@ export const addSongListDetail = async(id: string, name: string, source: LX.Onli
   const list = await getListDetailAll(id)
   await createUserList({
     name,
-    id: listId,
+    id: `${source}_${toMD5(listId)}`,
     list,
     source,
     sourceListId: listId,
diff --git a/src/renderer/views/songList/Detail/action.ts b/src/renderer/views/songList/Detail/action.ts
index b8d95350..5ab4b09c 100644
--- a/src/renderer/views/songList/Detail/action.ts
+++ b/src/renderer/views/songList/Detail/action.ts
@@ -5,6 +5,7 @@ import { getListDetail, getListDetailAll } from '@renderer/store/songList/action
 import { createUserList, setTempList } from '@renderer/store/list/action'
 import { playList } from '@renderer/core/player/action'
 import { LIST_IDS } from '@common/constants'
+import { toMD5 } from '@renderer/utils'
 
 const getListId = (id: string, source: LX.OnlineSource) => `${source}__${id}`
 
@@ -12,7 +13,7 @@ export const addSongListDetail = async(id: string, source: LX.OnlineSource, name
   // console.log(this.listDetail.info)
   // if (!this.listDetail.info.name) return
   const listId = getListId(id, source)
-  const targetList = userLists.find(l => l.id == listId)
+  const targetList = userLists.find(l => l.sourceListId == listId)
   if (targetList) {
     const confirm = await dialog.confirm({
       message: window.i18n.t('duplicate_list_tip', { name: targetList.name }),
@@ -27,7 +28,7 @@ export const addSongListDetail = async(id: string, source: LX.OnlineSource, name
   const list = await getListDetailAll(id, source)
   await createUserList({
     name,
-    id: listId,
+    id: `${source}_${toMD5(listId)}`,
     list,
     source,
     sourceListId: id,