mirror of
https://github.com/cranci1/Sora.git
synced 2026-04-20 08:02:16 +00:00
Please
This commit is contained in:
parent
613232615a
commit
de9e826176
5 changed files with 21 additions and 5 deletions
|
|
@ -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)")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -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,
|
||||
|
|
|
|||
|
|
@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in a new issue