From 6dcc4e7f5290122396b605dcfce8be1edce7864f Mon Sep 17 00:00:00 2001 From: yw1573 Date: Fri, 10 Apr 2026 08:39:25 +0800 Subject: [PATCH] fix: use collection title for subdirectory name MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复合集目录名称问题: - 添加 collectionTitle 字段存储视频合集标题(ugc_season.title) - 创建子目录时使用合集名称而非视频标题 Co-Authored-By: Claude Opus 4.6 --- web/src/work/mixin.ts | 3 ++- web/src/work/type.ts | 3 +++ web/src/work/view/parseModal.ts | 9 ++++++--- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/web/src/work/mixin.ts b/web/src/work/mixin.ts index 9e0c88d..55f70ea 100644 --- a/web/src/work/mixin.ts +++ b/web/src/work/mixin.ts @@ -61,7 +61,8 @@ export const start = async ( })), dimension: info.dimension, owner: info.owner, - staff: info.staff?.map(i => `${i.name}[${i.title}]`) || [] + staff: info.staff?.map(i => `${i.name}[${i.title}]`) || [], + collectionTitle: info.ugc_season?.title } workRoute.videoInfoCardMode.val = 'video' }) diff --git a/web/src/work/type.ts b/web/src/work/type.ts index 0e321fe..191ee2c 100644 --- a/web/src/work/type.ts +++ b/web/src/work/type.ts @@ -37,6 +37,9 @@ export type VideoParseResult = { section: SectionItem[] + /** 视频合集标题(ugc_season.title),用于创建子目录 */ + collectionTitle?: string + /** 合集作者 */ owner: { mid: number diff --git a/web/src/work/view/parseModal.ts b/web/src/work/view/parseModal.ts index c332012..ab9e0e7 100644 --- a/web/src/work/view/parseModal.ts +++ b/web/src/work/view/parseModal.ts @@ -156,9 +156,12 @@ export class ParseModalComp implements VanComponent { const activeVideoInfo = getActiveFormatVideo(info.info!, info.info!.accept_quality[info.formatIndex.val], this.preferredCodec.val) const pagesLength = workRoute.videoInfoCardData.val.pages.length // 合集标题,用于创建子目录 - // season 模式(番剧)或有多个 section(视频合集)时创建子目录 - const hasMultipleSections = workRoute.videoInfoCardData.val.section.length > 0 - const seasonTitle = (workRoute.videoInfoCardMode.val == 'season' || (isVideoMode && hasMultipleSections)) ? cardTitle.trim() : undefined + // season 模式(番剧)使用视频标题 + // video 模式有 collectionTitle(视频合集)时使用合集名称 + const collectionTitle = workRoute.videoInfoCardData.val.collectionTitle + const seasonTitle = workRoute.videoInfoCardMode.val == 'season' + ? cardTitle.trim() + : (isVideoMode && collectionTitle ? collectionTitle.trim() : undefined) return ({ bvid: info.page.bvid,