diff --git a/src/components/cards/MediaCard.vue b/src/components/cards/MediaCard.vue index b5763b44..77b2acbe 100644 --- a/src/components/cards/MediaCard.vue +++ b/src/components/cards/MediaCard.vue @@ -254,7 +254,7 @@ async function checkSubscribe(season = 0) { return null } -// 检查所有季的缺失状态 +// 检查所有季的缺失状态(数据库) async function checkSeasonsNotExists() { // 开始处理 startNProgress() diff --git a/src/views/discover/MediaDetailView.vue b/src/views/discover/MediaDetailView.vue index 3b87b49a..3ebf9e88 100644 --- a/src/views/discover/MediaDetailView.vue +++ b/src/views/discover/MediaDetailView.vue @@ -9,6 +9,7 @@ import { doneNProgress, startNProgress } from '@/api/nprogress' import { formatSeason } from '@/@core/utils/formatters' import router from '@/router' import SubscribeEditDialog from '@/components/dialog/SubscribeEditDialog.vue' +import { isNullOrEmptyObject } from '@/@core/utils' // 输入参数 const mediaProps = defineProps({ @@ -39,6 +40,9 @@ const isRefreshed = ref(false) // 存储每一季的集信息 const seasonEpisodesInfo = ref({} as { [key: number]: TmdbEpisode[] }) +// 存储存在的季集 +const existsEpisodes = ref({} as { [key: number]: number[] }) + // 各季缺失状态:0-已入库 1-部分缺失 2-全部缺失,没有数据也是已入库 const seasonsNotExisted = ref<{ [key: number]: number }>({}) @@ -77,10 +81,12 @@ async function getMediaDetail() { } } -// 调用API加载季集信息 +// 调用API加载季集信息(TMDB) async function loadSeasonEpisodes(season: number) { + // 加载季集存在信息 + loadEpisodeExists() + // 加载季集信息 if (seasonEpisodesInfo.value[season]) return - try { const result: TmdbEpisode[] = await api.get(`tmdb/${mediaDetail.value.tmdb_id}/${season}`) seasonEpisodesInfo.value[season] = result || [] @@ -89,7 +95,19 @@ async function loadSeasonEpisodes(season: number) { } } -// 查询当前媒体是否已入库 +// 调用API加载季集存在信息(媒体服务器) +async function loadEpisodeExists() { + // 查询季集存在状态 + if (!isNullOrEmptyObject(existsEpisodes.value)) return + try { + const result: { [key: number]: number[] } = await api.post(`mediaserver/exists_remote`, mediaDetail.value) + existsEpisodes.value = result || {} + } catch (error) { + console.error(error) + } +} + +// 查询当前媒体是否已入库(数据库) async function checkExists() { try { const result: { [key: string]: any } = await api.get('mediaserver/exists', { @@ -634,6 +652,16 @@ onBeforeMount(() => { {{ episode.air_date }} +

{{ episode.overview }}