mirror of
https://github.com/jxxghp/MoviePilot-Frontend.git
synced 2026-09-05 15:36:49 +08:00
feat:添加媒体季信息接口,更新相关组件以支持季信息
This commit is contained in:
@@ -288,6 +288,24 @@ export interface MediaInfo {
|
|||||||
names?: string[]
|
names?: string[]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 季信息
|
||||||
|
export interface MediaSeason {
|
||||||
|
// 上映日期
|
||||||
|
air_date?: string
|
||||||
|
// 总集数
|
||||||
|
episode_count?: number
|
||||||
|
// 季名称
|
||||||
|
name?: string
|
||||||
|
// 描述
|
||||||
|
overview?: string
|
||||||
|
// 海报
|
||||||
|
poster_path?: string
|
||||||
|
// 季号
|
||||||
|
season_number?: number
|
||||||
|
// 评分
|
||||||
|
vote_average?: number
|
||||||
|
}
|
||||||
|
|
||||||
// TMDB季信息
|
// TMDB季信息
|
||||||
export interface TmdbSeason {
|
export interface TmdbSeason {
|
||||||
// 上映日期
|
// 上映日期
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ import SubscribeEditDialog from '../dialog/SubscribeEditDialog.vue'
|
|||||||
import { formatSeason, formatRating } from '@/@core/utils/formatters'
|
import { formatSeason, formatRating } from '@/@core/utils/formatters'
|
||||||
import api from '@/api'
|
import api from '@/api'
|
||||||
import { doneNProgress, startNProgress } from '@/api/nprogress'
|
import { doneNProgress, startNProgress } from '@/api/nprogress'
|
||||||
import type { MediaInfo, NotExistMediaInfo, Subscribe, TmdbSeason } from '@/api/types'
|
import type { MediaInfo, NotExistMediaInfo, Subscribe, MediaSeason } from '@/api/types'
|
||||||
import router, { registerAbortController } from '@/router'
|
import router, { registerAbortController } from '@/router'
|
||||||
import noImage from '@images/no-image.jpeg'
|
import noImage from '@images/no-image.jpeg'
|
||||||
import tmdbImage from '@images/logos/tmdb.png'
|
import tmdbImage from '@images/logos/tmdb.png'
|
||||||
@@ -55,10 +55,10 @@ const subscribeEditDialog = ref(false)
|
|||||||
const subscribeId = ref<number>()
|
const subscribeId = ref<number>()
|
||||||
|
|
||||||
// 季详情
|
// 季详情
|
||||||
const seasonInfos = ref<TmdbSeason[]>([])
|
const seasonInfos = ref<MediaSeason[]>([])
|
||||||
|
|
||||||
// 选中的订阅季
|
// 选中的订阅季
|
||||||
const seasonsSelected = ref<TmdbSeason[]>([])
|
const seasonsSelected = ref<MediaSeason[]>([])
|
||||||
|
|
||||||
// 来源角标字典
|
// 来源角标字典
|
||||||
const sourceIconDict: { [key: string]: any } = {
|
const sourceIconDict: { [key: string]: any } = {
|
||||||
@@ -98,11 +98,10 @@ function getChipColor(type: string) {
|
|||||||
|
|
||||||
// 添加订阅处理
|
// 添加订阅处理
|
||||||
async function handleAddSubscribe() {
|
async function handleAddSubscribe() {
|
||||||
if (props.media?.type === '电视剧' && props.media?.tmdb_id) {
|
if (props.media?.type === '电视剧') {
|
||||||
// TMDB电视剧
|
// 查询所有季信息
|
||||||
// 查询TMDB所有季信息
|
|
||||||
await getMediaSeasons()
|
await getMediaSeasons()
|
||||||
if (!seasonInfos.value) {
|
if (!seasonInfos.value || seasonInfos.value.length === 0) {
|
||||||
$toast.error(`${props.media?.title} 查询剧集信息失败!`)
|
$toast.error(`${props.media?.title} 查询剧集信息失败!`)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
@@ -118,11 +117,6 @@ async function handleAddSubscribe() {
|
|||||||
seasonsSelected.value = []
|
seasonsSelected.value = []
|
||||||
subscribeSeasonDialog.value = true
|
subscribeSeasonDialog.value = true
|
||||||
}
|
}
|
||||||
} else if (props.media?.type === '电视剧') {
|
|
||||||
// 豆瓣电视剧,只会有一季
|
|
||||||
const season = props.media?.season ?? 1
|
|
||||||
// 添加订阅
|
|
||||||
addSubscribe(season)
|
|
||||||
} else {
|
} else {
|
||||||
// 电影
|
// 电影
|
||||||
addSubscribe()
|
addSubscribe()
|
||||||
@@ -295,11 +289,20 @@ async function checkSeasonsNotExists() {
|
|||||||
|
|
||||||
// 查询TMDB的所有季信息
|
// 查询TMDB的所有季信息
|
||||||
async function getMediaSeasons() {
|
async function getMediaSeasons() {
|
||||||
|
startNProgress()
|
||||||
try {
|
try {
|
||||||
seasonInfos.value = await api.get(`tmdb/seasons/${props.media?.tmdb_id}`)
|
seasonInfos.value = await api.get('media/seasons', {
|
||||||
|
params: {
|
||||||
|
mediaid: getMediaId(),
|
||||||
|
title: props.media?.title,
|
||||||
|
year: props.media?.year,
|
||||||
|
season: props.media?.season,
|
||||||
|
},
|
||||||
|
})
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
console.error(error)
|
console.error(error)
|
||||||
}
|
}
|
||||||
|
doneNProgress()
|
||||||
}
|
}
|
||||||
|
|
||||||
// 查询订阅弹窗规则
|
// 查询订阅弹窗规则
|
||||||
|
|||||||
Reference in New Issue
Block a user