mirror of
https://github.com/cranci1/Sora.git
synced 2026-04-21 08:32:00 +00:00
imma touch sky
This commit is contained in:
parent
4be7382843
commit
8cd5c55dd4
3 changed files with 49 additions and 1 deletions
38
Sora/Utils/Cache/JPEGCompressionProcessor.swift
Normal file
38
Sora/Utils/Cache/JPEGCompressionProcessor.swift
Normal file
|
|
@ -0,0 +1,38 @@
|
||||||
|
//
|
||||||
|
// JPEGCompressionProcessor.swift
|
||||||
|
// Sora
|
||||||
|
//
|
||||||
|
// Created by Francesco on 02/06/25.
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
import Kingfisher
|
||||||
|
import UIKit
|
||||||
|
|
||||||
|
struct JPEGCompressionProcessor: ImageProcessor {
|
||||||
|
let identifier: String
|
||||||
|
let compressionQuality: CGFloat
|
||||||
|
|
||||||
|
init(compressionQuality: CGFloat) {
|
||||||
|
self.compressionQuality = compressionQuality
|
||||||
|
self.identifier = "me.cranci.JPEGCompressionProcessor_\(compressionQuality)"
|
||||||
|
}
|
||||||
|
|
||||||
|
func process(item: ImageProcessItem, options: KingfisherParsedOptionsInfo) -> KFCrossPlatformImage? {
|
||||||
|
switch item {
|
||||||
|
case .image(let image):
|
||||||
|
guard let data = image.jpegData(compressionQuality: compressionQuality),
|
||||||
|
let compressedImage = UIImage(data: data) else {
|
||||||
|
return image
|
||||||
|
}
|
||||||
|
return compressedImage
|
||||||
|
case .data(let data):
|
||||||
|
guard let image = UIImage(data: data) else { return nil }
|
||||||
|
guard let compressedData = image.jpegData(compressionQuality: compressionQuality),
|
||||||
|
let compressedImage = UIImage(data: compressedData) else {
|
||||||
|
return image
|
||||||
|
}
|
||||||
|
return compressedImage
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -5,9 +5,11 @@
|
||||||
// Created by doomsboygaming on 5/22/25
|
// Created by doomsboygaming on 5/22/25
|
||||||
//
|
//
|
||||||
|
|
||||||
|
|
||||||
import SwiftUI
|
import SwiftUI
|
||||||
import Foundation
|
import Foundation
|
||||||
import Kingfisher
|
import Kingfisher
|
||||||
|
import Sora.Utils.Cache.JPEGCompressionProcessor
|
||||||
|
|
||||||
class KingfisherCacheManager {
|
class KingfisherCacheManager {
|
||||||
private let jpegCompressionQuality: CGFloat = 0.7
|
private let jpegCompressionQuality: CGFloat = 0.7
|
||||||
|
|
@ -54,7 +56,11 @@ class KingfisherCacheManager {
|
||||||
cache.memoryStorage.config.cleanInterval = 60
|
cache.memoryStorage.config.cleanInterval = 60
|
||||||
|
|
||||||
KingfisherManager.shared.downloader.downloadTimeout = 15.0
|
KingfisherManager.shared.downloader.downloadTimeout = 15.0
|
||||||
Logger.shared.log("Configured Kingfisher cache. Enabled: \(isCachingEnabled)", type: "Debug")
|
|
||||||
|
let processor = JPEGCompressionProcessor(compressionQuality: jpegCompressionQuality)
|
||||||
|
KingfisherManager.shared.defaultOptions = [.processor(processor)]
|
||||||
|
|
||||||
|
Logger.shared.log("Configured Kingfisher cache. Enabled: \(isCachingEnabled) | JPEG Compression: \(jpegCompressionQuality)", type: "Debug")
|
||||||
}
|
}
|
||||||
|
|
||||||
func clearCache(completion: (() -> Void)? = nil) {
|
func clearCache(completion: (() -> Void)? = nil) {
|
||||||
|
|
|
||||||
|
|
@ -53,6 +53,7 @@
|
||||||
13637B902DE0ECD200BDA2FC /* Drops in Frameworks */ = {isa = PBXBuildFile; productRef = 13637B8F2DE0ECD200BDA2FC /* Drops */; };
|
13637B902DE0ECD200BDA2FC /* Drops in Frameworks */ = {isa = PBXBuildFile; productRef = 13637B8F2DE0ECD200BDA2FC /* Drops */; };
|
||||||
13637B932DE0ECDB00BDA2FC /* MarqueeLabel in Frameworks */ = {isa = PBXBuildFile; productRef = 13637B922DE0ECDB00BDA2FC /* MarqueeLabel */; };
|
13637B932DE0ECDB00BDA2FC /* MarqueeLabel in Frameworks */ = {isa = PBXBuildFile; productRef = 13637B922DE0ECDB00BDA2FC /* MarqueeLabel */; };
|
||||||
136BBE802DB1038000906B5E /* Notification+Name.swift in Sources */ = {isa = PBXBuildFile; fileRef = 136BBE7F2DB1038000906B5E /* Notification+Name.swift */; };
|
136BBE802DB1038000906B5E /* Notification+Name.swift in Sources */ = {isa = PBXBuildFile; fileRef = 136BBE7F2DB1038000906B5E /* Notification+Name.swift */; };
|
||||||
|
138A7F542DEDA978005E148F /* JPEGCompressionProcessor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 138A7F532DEDA978005E148F /* JPEGCompressionProcessor.swift */; };
|
||||||
138AA1B82D2D66FD0021F9DF /* EpisodeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 138AA1B62D2D66FD0021F9DF /* EpisodeCell.swift */; };
|
138AA1B82D2D66FD0021F9DF /* EpisodeCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = 138AA1B62D2D66FD0021F9DF /* EpisodeCell.swift */; };
|
||||||
138AA1B92D2D66FD0021F9DF /* CircularProgressBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 138AA1B72D2D66FD0021F9DF /* CircularProgressBar.swift */; };
|
138AA1B92D2D66FD0021F9DF /* CircularProgressBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 138AA1B72D2D66FD0021F9DF /* CircularProgressBar.swift */; };
|
||||||
138FE1D02DECA00D00936D81 /* TMDB-FetchID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 138FE1CF2DECA00D00936D81 /* TMDB-FetchID.swift */; };
|
138FE1D02DECA00D00936D81 /* TMDB-FetchID.swift in Sources */ = {isa = PBXBuildFile; fileRef = 138FE1CF2DECA00D00936D81 /* TMDB-FetchID.swift */; };
|
||||||
|
|
@ -147,6 +148,7 @@
|
||||||
135CCBE12D4D1138008B9C0E /* SettingsViewPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewPlayer.swift; sourceTree = "<group>"; };
|
135CCBE12D4D1138008B9C0E /* SettingsViewPlayer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewPlayer.swift; sourceTree = "<group>"; };
|
||||||
13637B892DE0EA1100BDA2FC /* UserDefaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaults.swift; sourceTree = "<group>"; };
|
13637B892DE0EA1100BDA2FC /* UserDefaults.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UserDefaults.swift; sourceTree = "<group>"; };
|
||||||
136BBE7F2DB1038000906B5E /* Notification+Name.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Notification+Name.swift"; sourceTree = "<group>"; };
|
136BBE7F2DB1038000906B5E /* Notification+Name.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Notification+Name.swift"; sourceTree = "<group>"; };
|
||||||
|
138A7F532DEDA978005E148F /* JPEGCompressionProcessor.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = JPEGCompressionProcessor.swift; sourceTree = "<group>"; };
|
||||||
138AA1B62D2D66FD0021F9DF /* EpisodeCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EpisodeCell.swift; sourceTree = "<group>"; };
|
138AA1B62D2D66FD0021F9DF /* EpisodeCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = EpisodeCell.swift; sourceTree = "<group>"; };
|
||||||
138AA1B72D2D66FD0021F9DF /* CircularProgressBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CircularProgressBar.swift; sourceTree = "<group>"; };
|
138AA1B72D2D66FD0021F9DF /* CircularProgressBar.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CircularProgressBar.swift; sourceTree = "<group>"; };
|
||||||
138FE1CF2DECA00D00936D81 /* TMDB-FetchID.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TMDB-FetchID.swift"; sourceTree = "<group>"; };
|
138FE1CF2DECA00D00936D81 /* TMDB-FetchID.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "TMDB-FetchID.swift"; sourceTree = "<group>"; };
|
||||||
|
|
@ -604,6 +606,7 @@
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
7205AED72DCCEF9500943F3F /* EpisodeMetadata.swift */,
|
7205AED72DCCEF9500943F3F /* EpisodeMetadata.swift */,
|
||||||
|
138A7F532DEDA978005E148F /* JPEGCompressionProcessor.swift */,
|
||||||
7205AED82DCCEF9500943F3F /* KingfisherManager.swift */,
|
7205AED82DCCEF9500943F3F /* KingfisherManager.swift */,
|
||||||
7205AED92DCCEF9500943F3F /* MetadataCacheManager.swift */,
|
7205AED92DCCEF9500943F3F /* MetadataCacheManager.swift */,
|
||||||
);
|
);
|
||||||
|
|
@ -788,6 +791,7 @@
|
||||||
72443C7F2DC8038300A61321 /* SettingsViewDownloads.swift in Sources */,
|
72443C7F2DC8038300A61321 /* SettingsViewDownloads.swift in Sources */,
|
||||||
13DB46922D900BCE008CBC03 /* SettingsViewTrackers.swift in Sources */,
|
13DB46922D900BCE008CBC03 /* SettingsViewTrackers.swift in Sources */,
|
||||||
7222485F2DCBAA2C00CABE2D /* DownloadModels.swift in Sources */,
|
7222485F2DCBAA2C00CABE2D /* DownloadModels.swift in Sources */,
|
||||||
|
138A7F542DEDA978005E148F /* JPEGCompressionProcessor.swift in Sources */,
|
||||||
722248602DCBAA2C00CABE2D /* M3U8StreamExtractor.swift in Sources */,
|
722248602DCBAA2C00CABE2D /* M3U8StreamExtractor.swift in Sources */,
|
||||||
13C0E5EA2D5F85EA00E7F619 /* ContinueWatchingManager.swift in Sources */,
|
13C0E5EA2D5F85EA00E7F619 /* ContinueWatchingManager.swift in Sources */,
|
||||||
13637B8A2DE0EA1100BDA2FC /* UserDefaults.swift in Sources */,
|
13637B8A2DE0EA1100BDA2FC /* UserDefaults.swift in Sources */,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue