From a214168b1e9c986d8d5a177e3fd7c2340f6ae761 Mon Sep 17 00:00:00 2001 From: YuF-9468 <264538812+YuF-9468@users.noreply.github.com> Date: Fri, 13 Mar 2026 14:38:58 +0800 Subject: [PATCH 1/2] fix(media): avoid false in-library badge for TV seasons with zero episodes --- src/components/cards/MediaCard.vue | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/components/cards/MediaCard.vue b/src/components/cards/MediaCard.vue index 2af9919f..93e40246 100644 --- a/src/components/cards/MediaCard.vue +++ b/src/components/cards/MediaCard.vue @@ -232,6 +232,18 @@ async function handleCheckSubscribe() { // 查询当前媒体是否已入库 async function handleCheckExists() { try { + // 对于总集数为 0 的电视剧季(TMDB 未返回有效集数),不展示“已入库”角标,避免误判 + const totalEpisode = + (props.media as any)?.total_episode ?? + (props.media as any)?.episode_count ?? + (props.media as any)?.number_of_episodes ?? + 0 + + if (props.media?.type === '电视剧' && totalEpisode === 0) { + isExists.value = false + return + } + const result: { [key: string]: any } = await api.get('mediaserver/exists', { params: { tmdbid: props.media?.tmdb_id, From 777b3c9445e0af7e655a663a9f03db2397052258 Mon Sep 17 00:00:00 2001 From: YuF-9468 <264538812+YuF-9468@users.noreply.github.com> Date: Fri, 13 Mar 2026 15:31:24 +0800 Subject: [PATCH 2/2] refactor(media): remove any cast for episode count fields --- src/components/cards/MediaCard.vue | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/src/components/cards/MediaCard.vue b/src/components/cards/MediaCard.vue index 93e40246..d131a7e9 100644 --- a/src/components/cards/MediaCard.vue +++ b/src/components/cards/MediaCard.vue @@ -18,9 +18,14 @@ import { hasPermission } from '@/utils/permission' // 国际化 const { t } = useI18n() +interface MediaCardMedia extends MediaInfo { + total_episode?: number + episode_count?: number +} + // 输入参数 const props = defineProps({ - media: Object as PropType, + media: Object as PropType, width: String, height: String, }) @@ -233,11 +238,7 @@ async function handleCheckSubscribe() { async function handleCheckExists() { try { // 对于总集数为 0 的电视剧季(TMDB 未返回有效集数),不展示“已入库”角标,避免误判 - const totalEpisode = - (props.media as any)?.total_episode ?? - (props.media as any)?.episode_count ?? - (props.media as any)?.number_of_episodes ?? - 0 + const totalEpisode = props.media?.total_episode ?? props.media?.episode_count ?? props.media?.number_of_episodes ?? 0 if (props.media?.type === '电视剧' && totalEpisode === 0) { isExists.value = false