yattee/Model/ThumbnailsModel.swift

31 lines
675 B
Swift
Raw Normal View History

2021-10-24 22:26:25 +00:00
import Foundation
final class ThumbnailsModel: ObservableObject {
@Published var unloadable = Set<URL>()
func insertUnloadable(_ url: URL) {
unloadable.insert(url)
}
func isUnloadable(_ url: URL!) -> Bool {
guard !url.isNil else {
return true
}
return unloadable.contains(url)
}
2021-11-05 20:53:43 +00:00
func best(_ video: Video) -> URL? {
let qualities = [Thumbnail.Quality.maxresdefault, .medium, .default]
for quality in qualities {
let url = video.thumbnailURL(quality: quality)
if !isUnloadable(url) {
return url
}
2021-10-24 22:26:25 +00:00
}
2021-11-05 20:53:43 +00:00
return nil
2021-10-24 22:26:25 +00:00
}
}