mirror of
https://github.com/yattee/yattee.git
synced 2025-08-09 20:24:06 +00:00
UI improvements, player state refactor
This commit is contained in:
36
Fixtures/Thumbnail+Fixtures.swift
Normal file
36
Fixtures/Thumbnail+Fixtures.swift
Normal file
@@ -0,0 +1,36 @@
|
||||
import Foundation
|
||||
|
||||
extension Thumbnail {
|
||||
static func fixture(videoId: String, quality: Thumbnail.Quality = .maxres) -> Thumbnail {
|
||||
Thumbnail(url: fixtureUrl(videoId: videoId, quality: quality), quality: quality)
|
||||
}
|
||||
|
||||
static func fixturesForAllQualities(videoId: String) -> [Thumbnail] {
|
||||
Thumbnail.Quality.allCases.map { fixture(videoId: videoId, quality: $0) }
|
||||
}
|
||||
|
||||
private static var fixturesHost: String {
|
||||
"https://invidious.home.arekf.net"
|
||||
}
|
||||
|
||||
private static func fixtureUrl(videoId: String, quality: Thumbnail.Quality) -> URL {
|
||||
URL(string: "\(fixturesHost)/vi/\(videoId)/\(filenameForQuality(quality)).jpg")!
|
||||
}
|
||||
|
||||
private static func filenameForQuality(_ quality: Thumbnail.Quality) -> String {
|
||||
switch quality {
|
||||
case .high:
|
||||
return "hqdefault"
|
||||
case .medium:
|
||||
return "mqdefault"
|
||||
case .start:
|
||||
return "1"
|
||||
case .middle:
|
||||
return "2"
|
||||
case .end:
|
||||
return "3"
|
||||
default:
|
||||
return quality.rawValue
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user