This commit is contained in:
scigward 2025-08-20 00:02:22 +03:00
parent 613232615a
commit de9e826176
5 changed files with 21 additions and 5 deletions

View file

@ -3871,6 +3871,8 @@ class GradientBlurButton: UIButton {
/// Load OP/ED skip data from a simple sidecar JSON saved next to the local video (if present)
extension CustomMediaPlayerViewController {
extension CustomMediaPlayerViewController {
private func loadLocalSkipSidecar(for fileURL: URL) {
let fm = FileManager.default
var dir = fileURL.deletingLastPathComponent()
@ -3903,4 +3905,8 @@ class GradientBlurButton: UIButton {
print("[Player] No local skip sidecar found or failed to load: \(error.localizedDescription)")
}
}
}
}

View file

@ -62,7 +62,8 @@ extension JSController {
showTitle: String? = nil, season: Int? = nil, episode: Int? = nil,
subtitleURL: URL? = nil, showPosterURL: URL? = nil,
aniListID: Int? = nil, malID: Int? = nil, isFiller: Bool? = nil,
completionHandler: ((Bool, String) -> Void)? = nil) -> Void)? = nil) {
completionHandler: ((Bool, String) -> Void)? = nil) {
let request = DownloadRequest(
url: url, headers: headers, title: title, imageURL: imageURL,
@ -133,7 +134,8 @@ extension JSController {
imageURL: URL? = nil, isEpisode: Bool = false, showTitle: String? = nil,
season: Int? = nil, episode: Int? = nil, subtitleURL: URL? = nil,
showPosterURL: URL? = nil, aniListID: Int? = nil, malID: Int? = nil, isFiller: Bool? = nil,
completionHandler: ((Bool, String) -> Void)? = nil) -> Void)? = nil) {
completionHandler: ((Bool, String) -> Void)? = nil) {
let request = DownloadRequest(
url: url, headers: headers, title: title, imageURL: imageURL,

View file

@ -1218,7 +1218,7 @@ extension JSController: AVAssetDownloadDelegate {
// If there's a subtitle URL, download it now that the video is saved
// Also fetch OP/ED skip timestamps in parallel and save simple sidecar JSON next to the video
if download.metadata?.episode != nil && download.isEpisode {
if download.metadata?.episode != nil && download.type == .episode {
fetchSkipTimestampsFor(request: download, persistentURL: persistentURL) { ok in
if ok {
print("[SkipSidecar] Saved OP/ED sidecar for episode \(download.metadata?.episode ?? -1) at: \(persistentURL.path)")
@ -1603,7 +1603,10 @@ struct JSActiveDownload: Identifiable, Equatable {
subtitleURL: URL? = nil,
asset: AVURLAsset? = nil,
headers: [String: String] = [:],
module: ScrapingModule? = nil // Add module parameter to initializer
module: ScrapingModule? = nil,
aniListID: Int? = nil,
malID: Int? = nil,
isFiller: Bool? = nil
) {
self.id = id
self.originalURL = originalURL
@ -1619,6 +1622,9 @@ struct JSActiveDownload: Identifiable, Equatable {
self.asset = asset
self.headers = headers
self.module = module // Store the module
self.aniListID = aniListID
self.malID = malID
self.isFiller = isFiller
}
}

View file

@ -39,7 +39,7 @@ extension JSController {
aniListID: Int? = nil,
malID: Int? = nil,
isFiller: Bool? = nil,
completionHandler: ((Bool, String) -> Void)? = nil) -> Void)? = nil
completionHandler: ((Bool, String) -> Void)? = nil
) {
let streamType = module.metadata.streamType.lowercased()

View file

@ -66,6 +66,7 @@ struct EpisodeCell: View {
episodeIndex: Int,
episode: String,
episodeID: Int,
malID: Int? = nil,
progress: Double,
itemID: Int,
totalEpisodes: Int? = nil,
@ -85,6 +86,7 @@ struct EpisodeCell: View {
self.episodeIndex = episodeIndex
self.episode = episode
self.episodeID = episodeID
self.malID = malID
self.progress = progress
self.itemID = itemID
self.totalEpisodes = totalEpisodes