From bda1df0b84a00bee844e3eadf0c62acc5f2212ed Mon Sep 17 00:00:00 2001 From: cranci1 <100066266+cranci1@users.noreply.github.com> Date: Tue, 31 Dec 2024 09:12:18 +0100 Subject: [PATCH] oh lol it works --- Sora/Views/MediaViews/MediaView.swift | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/Sora/Views/MediaViews/MediaView.swift b/Sora/Views/MediaViews/MediaView.swift index 4c87bce..9675766 100644 --- a/Sora/Views/MediaViews/MediaView.swift +++ b/Sora/Views/MediaViews/MediaView.swift @@ -107,6 +107,7 @@ struct MediaView: View { HStack { Button(action: { + startWatchingFirstUnfinishedEpisode() }) { HStack { Image(systemName: "play.fill") @@ -224,6 +225,22 @@ struct MediaView: View { } } + private func startWatchingFirstUnfinishedEpisode() { + for (index, episode) in episodes.enumerated() { + let episodeURL = episode.hasPrefix("https") ? episode : "\(module.module[0].details.baseURL)\(episode)" + let totalTime = UserDefaults.standard.double(forKey: "totalTime_\(episodeURL)") + let lastPlayedTime = UserDefaults.standard.double(forKey: "lastPlayedTime_\(episodeURL)") + let progress = totalTime > 0 ? lastPlayedTime / totalTime : 0 + + if progress < 0.90 { + selectedEpisode = episode + selectedEpisodeNumber = index + 1 + fetchEpisodeStream(urlString: episodeURL) + break + } + } + } + func playStream(urlString: String?, fullURL: String) { guard let streamUrl = urlString else { return }