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 }}