82 lines
3.0 KiB
Swift
82 lines
3.0 KiB
Swift
/* SwiftFin is subject to the terms of the Mozilla Public
|
|
* License, v2.0. If a copy of the MPL was not distributed with this
|
|
* file, you can obtain one at https://mozilla.org/MPL/2.0/.
|
|
*
|
|
* Copyright 2021 Aiden Vigue & Jellyfin Contributors
|
|
*/
|
|
|
|
import Foundation
|
|
import JellyfinAPI
|
|
import UIKit
|
|
|
|
//001fC^ = dark grey plain blurhash
|
|
|
|
extension BaseItemDto {
|
|
func getSeriesPrimaryImageBlurHash() -> String {
|
|
let rawImgURL = self.getSeriesPrimaryImage(baseURL: "", maxWidth: 1).absoluteString;
|
|
let imgTag = rawImgURL.components(separatedBy: "&tag=")[1];
|
|
|
|
return self.imageBlurHashes?.primary?[imgTag] ?? "001fC^";
|
|
}
|
|
|
|
func getPrimaryImageBlurHash() -> String {
|
|
let rawImgURL = self.getPrimaryImage(baseURL: "", maxWidth: 1).absoluteString;
|
|
let imgTag = rawImgURL.components(separatedBy: "&tag=")[1];
|
|
|
|
return self.imageBlurHashes?.primary?[imgTag] ?? "001fC^";
|
|
}
|
|
|
|
func getBackdropImageBlurHash() -> String {
|
|
let rawImgURL = self.getBackdropImage(baseURL: "", maxWidth: 1).absoluteString;
|
|
let imgTag = rawImgURL.components(separatedBy: "&tag=")[1];
|
|
|
|
if(rawImgURL.contains("Backdrop")) {
|
|
return self.imageBlurHashes?.backdrop?[imgTag] ?? "001fC^";
|
|
} else {
|
|
return self.imageBlurHashes?.primary?[imgTag] ?? "001fC^";
|
|
}
|
|
}
|
|
|
|
func getBackdropImage(baseURL: String, maxWidth: Int) -> URL {
|
|
var imageType = "";
|
|
var imageTag = "";
|
|
|
|
if(self.primaryImageAspectRatio ?? 0.0 < 1.0) {
|
|
imageType = "Backdrop";
|
|
imageTag = (self.backdropImageTags ?? [""])[0]
|
|
} else {
|
|
imageType = "Primary";
|
|
imageTag = self.imageTags?["Primary"] ?? ""
|
|
}
|
|
|
|
if(imageTag == "") {
|
|
imageType = "Backdrop";
|
|
imageTag = self.parentBackdropImageTags?[0] ?? ""
|
|
}
|
|
let x = UIScreen.main.nativeScale * CGFloat(maxWidth)
|
|
let urlString = "\(baseURL)/Items/\(self.id ?? "")/Images/\(imageType)?maxWidth=\(String(Int(x)))&quality=85&tag=\(imageTag)"
|
|
return URL(string: urlString)!
|
|
}
|
|
|
|
func getSeriesPrimaryImage(baseURL: String, maxWidth: Int) -> URL {
|
|
let imageType = "Primary";
|
|
let imageTag = self.seriesPrimaryImageTag ?? ""
|
|
let x = UIScreen.main.nativeScale * CGFloat(maxWidth)
|
|
let urlString = "\(baseURL)/Items/\(self.seriesId ?? "")/Images/\(imageType)?maxWidth=\(String(Int(x)))&quality=85&tag=\(imageTag)"
|
|
return URL(string: urlString)!
|
|
}
|
|
|
|
func getPrimaryImage(baseURL: String, maxWidth: Int) -> URL {
|
|
let imageType = "Primary";
|
|
var imageTag = self.imageTags?["Primary"] ?? "";
|
|
|
|
if(imageTag == "") {
|
|
imageTag = self.seriesPrimaryImageTag ?? ""
|
|
}
|
|
let x = UIScreen.main.nativeScale * CGFloat(maxWidth)
|
|
|
|
let urlString = "\(baseURL)/Items/\(self.id ?? "")/Images/\(imageType)?maxWidth=\(String(Int(x)))&quality=85&tag=\(imageTag)"
|
|
return URL(string: urlString)!
|
|
}
|
|
}
|