增加注解
This commit is contained in:
@@ -2,16 +2,27 @@ import Foundation
|
||||
|
||||
/// 视频详情模型 - 对应 Android 版 VodInfo.java
|
||||
struct VodInfo: Codable, Identifiable {
|
||||
/// 视频唯一 ID。
|
||||
var id: String
|
||||
/// 标题。
|
||||
var name: String = ""
|
||||
/// 海报地址。
|
||||
var pic: String = ""
|
||||
/// 备注(更新状态等)。
|
||||
var note: String = ""
|
||||
/// 年份。
|
||||
var year: String = ""
|
||||
/// 地区。
|
||||
var area: String = ""
|
||||
/// 类型名。
|
||||
var typeName: String = ""
|
||||
/// 导演。
|
||||
var director: String = ""
|
||||
/// 演员。
|
||||
var actor: String = ""
|
||||
/// 简介。
|
||||
var des: String = ""
|
||||
/// 来源站点 key。
|
||||
var sourceKey: String = ""
|
||||
|
||||
/// 播放来源(线路)列表
|
||||
@@ -19,13 +30,17 @@ struct VodInfo: Codable, Identifiable {
|
||||
/// key: flag名称, value: 剧集列表
|
||||
var playUrlMap: [String: [Episode]] = [:]
|
||||
|
||||
var playFlag: String = "" // 当前选中线路
|
||||
var playIndex: Int = 0 // 当前播放剧集索引
|
||||
/// 当前选中线路。
|
||||
var playFlag: String = ""
|
||||
/// 当前播放剧集索引。
|
||||
var playIndex: Int = 0
|
||||
|
||||
/// 单集信息
|
||||
struct Episode: Codable, Identifiable, Hashable {
|
||||
var id: String { name }
|
||||
/// 集标题。
|
||||
let name: String
|
||||
/// 集播放地址。
|
||||
let url: String
|
||||
|
||||
init(name: String, url: String) {
|
||||
@@ -48,7 +63,7 @@ struct VodInfo: Codable, Identifiable {
|
||||
info.des = video.des.replacingOccurrences(of: "<[^>]+>", with: "", options: .regularExpression)
|
||||
info.sourceKey = video.sourceKey
|
||||
|
||||
// 解析播放列表
|
||||
// 解析播放列表:
|
||||
// playFrom 格式: "线路1$$$线路2$$$线路3"
|
||||
// playUrl 格式: "第1集$url1#第2集$url2$$$第1集$url3#第2集$url4"
|
||||
let flags = playFrom.components(separatedBy: "$$$").filter { !$0.isEmpty }
|
||||
@@ -73,10 +88,12 @@ struct VodInfo: Codable, Identifiable {
|
||||
return info
|
||||
}
|
||||
|
||||
/// 当前线路下的剧集。
|
||||
var currentEpisodes: [Episode] {
|
||||
playUrlMap[playFlag] ?? []
|
||||
}
|
||||
|
||||
/// 当前线路 + 当前索引对应的剧集对象。
|
||||
var currentEpisode: Episode? {
|
||||
let eps = currentEpisodes
|
||||
guard playIndex >= 0, playIndex < eps.count else { return nil }
|
||||
|
||||
Reference in New Issue
Block a user