From ba8a6bf76ca463810bb61652847c381b60710e34 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Thu, 23 Apr 2026 18:08:37 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E9=9F=B3=E4=B9=90=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E5=92=8C=E6=AD=8C=E6=89=8B=E4=BF=A1=E6=81=AF=E6=A0=BC?= =?UTF-8?q?=E5=BC=8F=E5=8C=96=EF=BC=88#2733=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 1 + src/common/utils/tools.ts | 4 ++++ .../components/layout/PlayBar/FullWidthProgress.vue | 3 ++- .../components/layout/PlayBar/MiddleWidthProgress.vue | 3 ++- .../components/layout/PlayBar/MiniWidthProgress.vue | 3 ++- src/renderer/views/Download/index.vue | 3 ++- src/renderer/views/List/MusicList/useMusicActions.js | 4 ++-- src/renderer/worker/download/utils.ts | 6 ++---- 8 files changed, 17 insertions(+), 10 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index 9c2ffa09..5f98247c 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -10,6 +10,7 @@ - 修复桌面歌词的 鼠标移入歌词区域时提高透明度 设置不稳定的问题(#2679, @Little100) - 修复某些情况下可能播放没有声音的问题(#2693) - 修复 tx 搜索结果显示异常的问题(#2753) +- 修复音乐名称和歌手信息格式化问题(#2733) ### 其他 diff --git a/src/common/utils/tools.ts b/src/common/utils/tools.ts index 3ec8428e..fa4da6d8 100644 --- a/src/common/utils/tools.ts +++ b/src/common/utils/tools.ts @@ -148,3 +148,7 @@ export const clipFileNameLength = (name: string) => { return name.length > MAX_FILE_NAME_LENGTH ? name.substring(0, MAX_FILE_NAME_LENGTH) : name } +export const formatMusicName = (format: string, name: string, singer: string) => { + // return format.replace(/歌名|歌手/g, match => match === '歌名' ? name : singer) + return format.replace('歌手', singer).replace('歌名', name) +} diff --git a/src/renderer/components/layout/PlayBar/FullWidthProgress.vue b/src/renderer/components/layout/PlayBar/FullWidthProgress.vue index 965f8268..2f5666d8 100644 --- a/src/renderer/components/layout/PlayBar/FullWidthProgress.vue +++ b/src/renderer/components/layout/PlayBar/FullWidthProgress.vue @@ -66,6 +66,7 @@ import { import { appSetting } from '@renderer/store/setting' import { togglePlay, playNext, playPrev } from '@renderer/core/player' import { LIST_IDS } from '@common/constants' +import { formatMusicName } from '@renderer/utils' export default { name: 'CorePlayBar', @@ -112,7 +113,7 @@ export default { const title = computed(() => { return musicInfo.name - ? appSetting['download.fileName'].replace('歌名', musicInfo.name).replace('歌手', musicInfo.singer) + ? formatMusicName(appSetting['download.fileName'], musicInfo.name, musicInfo.singer) : '' }) diff --git a/src/renderer/components/layout/PlayBar/MiddleWidthProgress.vue b/src/renderer/components/layout/PlayBar/MiddleWidthProgress.vue index c48c9fc2..d101bd05 100644 --- a/src/renderer/components/layout/PlayBar/MiddleWidthProgress.vue +++ b/src/renderer/components/layout/PlayBar/MiddleWidthProgress.vue @@ -66,6 +66,7 @@ import { import { appSetting } from '@renderer/store/setting' import { togglePlay, playNext, playPrev } from '@renderer/core/player' import { LIST_IDS } from '@common/constants' +import { formatMusicName } from '@renderer/utils' export default { name: 'CorePlayBar', @@ -112,7 +113,7 @@ export default { const title = computed(() => { return musicInfo.name - ? appSetting['download.fileName'].replace('歌名', musicInfo.name).replace('歌手', musicInfo.singer) + ? formatMusicName(appSetting['download.fileName'], musicInfo.name, musicInfo.singer) : '' }) diff --git a/src/renderer/components/layout/PlayBar/MiniWidthProgress.vue b/src/renderer/components/layout/PlayBar/MiniWidthProgress.vue index ce0084d1..0a440dbe 100644 --- a/src/renderer/components/layout/PlayBar/MiniWidthProgress.vue +++ b/src/renderer/components/layout/PlayBar/MiniWidthProgress.vue @@ -68,6 +68,7 @@ import { import { appSetting } from '@renderer/store/setting' import { togglePlay, playNext, playPrev } from '@renderer/core/player' import { LIST_IDS } from '@common/constants' +import { formatMusicName } from '@renderer/utils' export default { name: 'CorePlayBar', @@ -114,7 +115,7 @@ export default { const title = computed(() => { return musicInfo.name - ? appSetting['download.fileName'].replace('歌名', musicInfo.name).replace('歌手', musicInfo.singer) + ? formatMusicName(appSetting['download.fileName'], musicInfo.name, musicInfo.singer) : '' }) diff --git a/src/renderer/views/Download/index.vue b/src/renderer/views/Download/index.vue index e25e5399..b8f1a537 100644 --- a/src/renderer/views/Download/index.vue +++ b/src/renderer/views/Download/index.vue @@ -80,6 +80,7 @@ import useTaskActions from './useTaskActions' import useMusicAdd from './useMusicAdd' import { downloadStatus } from '@renderer/store/download/state' import { appSetting } from '@renderer/store/setting' +import { formatMusicName } from '@renderer/utils' export default { name: 'Download', @@ -203,7 +204,7 @@ export default { } const getName = (downloadInfo) => { - return appSetting['download.fileName'].replace('歌名', downloadInfo.metadata.musicInfo.name).replace('歌手', downloadInfo.metadata.musicInfo.singer) + return formatMusicName(appSetting['download.fileName'], downloadInfo.metadata.musicInfo.name, downloadInfo.metadata.musicInfo.singer) } const getTypeName = (quality) => { return quality == 'flac24bit' ? 'FLAC Hires' : quality?.toUpperCase() diff --git a/src/renderer/views/List/MusicList/useMusicActions.js b/src/renderer/views/List/MusicList/useMusicActions.js index 2f270f61..bb319dfb 100644 --- a/src/renderer/views/List/MusicList/useMusicActions.js +++ b/src/renderer/views/List/MusicList/useMusicActions.js @@ -5,7 +5,7 @@ import { dialog } from '@renderer/plugins/Dialog' import { useI18n } from '@renderer/plugins/i18n' import { removeListMusics } from '@renderer/store/list/action' import { appSetting } from '@renderer/store/setting' -import { toOldMusicInfo } from '@renderer/utils/index' +import { formatMusicName, toOldMusicInfo } from '@renderer/utils/index' import { addDislikeInfo, hasDislike } from '@renderer/core/dislikeList' import { playNext } from '@renderer/core/player' import { playMusicInfo } from '@renderer/store/player/state' @@ -34,7 +34,7 @@ export default ({ props, list, selectedList, removeAllSelect }) => { const handleCopyName = index => { const minfo = list.value[index] - clipboardWriteText(appSetting['download.fileName'].replace('歌名', minfo.name).replace('歌手', minfo.singer)) + clipboardWriteText(formatMusicName(appSetting['download.fileName'], minfo.name, minfo.singer)) } const handleDislikeMusic = async(index) => { diff --git a/src/renderer/worker/download/utils.ts b/src/renderer/worker/download/utils.ts index 69f25f14..b9a4297c 100644 --- a/src/renderer/worker/download/utils.ts +++ b/src/renderer/worker/download/utils.ts @@ -2,7 +2,7 @@ import { DOWNLOAD_STATUS, QUALITYS } from '@common/constants' import { filterFileName } from '@common/utils/common' import { buildLyrics } from './lrcTool' import fs from 'fs' -import { clipFileNameLength, clipNameLength } from '@common/utils/tools' +import { clipFileNameLength, clipNameLength, formatMusicName } from '@common/utils/tools' /** * 保存歌词文件 @@ -91,9 +91,7 @@ export const createDownloadInfo = (musicInfo: LX.Music.MusicInfoOnline, type: LX ext, filePath: '', listId, - fileName: filterFileName(`${clipFileNameLength(fileName - .replace('歌名', musicInfo.name) - .replace('歌手', clipNameLength(musicInfo.singer)))}.${ext}`), + fileName: filterFileName(`${clipFileNameLength(formatMusicName(fileName, musicInfo.name, clipNameLength(musicInfo.singer)))}.${ext}`), }, } // downloadInfo.metadata.filePath = joinPath(savePath, downloadInfo.metadata.fileName)