mirror of
https://github.com/cranci1/Sora.git
synced 2026-04-21 08:32:00 +00:00
idk this works
This commit is contained in:
parent
53ae9b2d23
commit
832cd759d3
5 changed files with 3 additions and 110 deletions
|
|
@ -280,22 +280,6 @@ class EpisodeMetadataManager: ObservableObject {
|
||||||
)
|
)
|
||||||
|
|
||||||
// Cache the metadata
|
// Cache the metadata
|
||||||
if MetadataCacheManager.shared.isCachingEnabled {
|
|
||||||
let metadata = EpisodeMetadata(
|
|
||||||
title: title,
|
|
||||||
imageUrl: image,
|
|
||||||
anilistId: anilistId,
|
|
||||||
episodeNumber: episodeNumber
|
|
||||||
)
|
|
||||||
|
|
||||||
if let metadataData = metadata.toData() {
|
|
||||||
MetadataCacheManager.shared.storeMetadata(
|
|
||||||
metadataData,
|
|
||||||
forKey: cacheKey
|
|
||||||
)
|
|
||||||
Logger.shared.log("Cached metadata for episode \(episodeNumber)", type: "Debug")
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Reset retry count on success (even with missing fields)
|
// Reset retry count on success (even with missing fields)
|
||||||
self.currentRetryAttempts.removeValue(forKey: cacheKey)
|
self.currentRetryAttempts.removeValue(forKey: cacheKey)
|
||||||
|
|
@ -473,22 +457,6 @@ class EpisodeMetadataManager: ObservableObject {
|
||||||
results[episodeNumber] = metadataInfo
|
results[episodeNumber] = metadataInfo
|
||||||
|
|
||||||
// Cache the metadata
|
// Cache the metadata
|
||||||
if MetadataCacheManager.shared.isCachingEnabled {
|
|
||||||
let metadata = EpisodeMetadata(
|
|
||||||
title: title,
|
|
||||||
imageUrl: image,
|
|
||||||
anilistId: anilistId,
|
|
||||||
episodeNumber: episodeNumber
|
|
||||||
)
|
|
||||||
|
|
||||||
let cacheKey = "anilist_\(anilistId)_episode_\(episodeNumber)"
|
|
||||||
if let metadataData = metadata.toData() {
|
|
||||||
MetadataCacheManager.shared.storeMetadata(
|
|
||||||
metadataData,
|
|
||||||
forKey: cacheKey
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
} else {
|
||||||
missingEpisodes.append(episodeNumber)
|
missingEpisodes.append(episodeNumber)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -58,7 +58,6 @@ struct SoraApp: App {
|
||||||
@StateObject private var jsController = JSController.shared
|
@StateObject private var jsController = JSController.shared
|
||||||
|
|
||||||
init() {
|
init() {
|
||||||
_ = MetadataCacheManager.shared
|
|
||||||
_ = KingfisherCacheManager.shared
|
_ = KingfisherCacheManager.shared
|
||||||
|
|
||||||
if let userAccentColor = UserDefaults.standard.color(forKey: "accentColor") {
|
if let userAccentColor = UserDefaults.standard.color(forKey: "accentColor") {
|
||||||
|
|
|
||||||
|
|
@ -616,25 +616,6 @@ struct EpisodeCell: View {
|
||||||
}
|
}
|
||||||
|
|
||||||
private func fetchEpisodeDetails() {
|
private func fetchEpisodeDetails() {
|
||||||
if MetadataCacheManager.shared.isCachingEnabled &&
|
|
||||||
(UserDefaults.standard.object(forKey: "fetchEpisodeMetadata") == nil ||
|
|
||||||
UserDefaults.standard.bool(forKey: "fetchEpisodeMetadata")) {
|
|
||||||
|
|
||||||
let cacheKey = "anilist_\(itemID)_episode_\(episodeID + 1)"
|
|
||||||
|
|
||||||
if let cachedData = MetadataCacheManager.shared.getMetadata(forKey: cacheKey),
|
|
||||||
let metadata = EpisodeMetadata.fromData(cachedData) {
|
|
||||||
|
|
||||||
DispatchQueue.main.async {
|
|
||||||
self.episodeTitle = metadata.title["en"] ?? ""
|
|
||||||
self.episodeImageUrl = metadata.imageUrl
|
|
||||||
self.isLoading = false
|
|
||||||
self.loadedFromCache = true
|
|
||||||
}
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fetchAnimeEpisodeDetails()
|
fetchAnimeEpisodeDetails()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -711,21 +692,6 @@ struct EpisodeCell: View {
|
||||||
Logger.shared.log("Episode \(episodeKey) missing fields: \(missingFields.joined(separator: ", "))", type: "Warning")
|
Logger.shared.log("Episode \(episodeKey) missing fields: \(missingFields.joined(separator: ", "))", type: "Warning")
|
||||||
}
|
}
|
||||||
|
|
||||||
if MetadataCacheManager.shared.isCachingEnabled && (!title.isEmpty || !image.isEmpty) {
|
|
||||||
let metadata = EpisodeMetadata(
|
|
||||||
title: title,
|
|
||||||
imageUrl: image,
|
|
||||||
anilistId: self.itemID,
|
|
||||||
episodeNumber: self.episodeID + 1
|
|
||||||
)
|
|
||||||
|
|
||||||
if let metadataData = metadata.toData() {
|
|
||||||
MetadataCacheManager.shared.storeMetadata(
|
|
||||||
metadataData,
|
|
||||||
forKey: metadata.cacheKey
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
DispatchQueue.main.async {
|
DispatchQueue.main.async {
|
||||||
self.isLoading = false
|
self.isLoading = false
|
||||||
|
|
|
||||||
|
|
@ -1781,24 +1781,6 @@ struct MediaInfoView: View {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if MetadataCacheManager.shared.isCachingEnabled {
|
|
||||||
let cacheKey = "anilist_\(anilistId)_episode_\(episode.number)"
|
|
||||||
|
|
||||||
if let cachedData = MetadataCacheManager.shared.getMetadata(forKey: cacheKey),
|
|
||||||
let metadata = EpisodeMetadata.fromData(cachedData) {
|
|
||||||
|
|
||||||
print("[Bulk Download] Using cached metadata for episode \(episode.number)")
|
|
||||||
let metadataInfo = EpisodeMetadataInfo(
|
|
||||||
title: metadata.title,
|
|
||||||
imageUrl: metadata.imageUrl,
|
|
||||||
anilistId: metadata.anilistId,
|
|
||||||
episodeNumber: metadata.episodeNumber
|
|
||||||
)
|
|
||||||
completion(metadataInfo)
|
|
||||||
return
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fetchEpisodeMetadataFromNetwork(anilistId: anilistId, episodeNumber: episode.number, completion: completion)
|
fetchEpisodeMetadataFromNetwork(anilistId: anilistId, episodeNumber: episode.number, completion: completion)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1857,22 +1839,6 @@ struct MediaInfoView: View {
|
||||||
if let imageUrl = episodeDetails["image"] as? String, !imageUrl.isEmpty {
|
if let imageUrl = episodeDetails["image"] as? String, !imageUrl.isEmpty {
|
||||||
image = imageUrl
|
image = imageUrl
|
||||||
}
|
}
|
||||||
if MetadataCacheManager.shared.isCachingEnabled {
|
|
||||||
let metadata = EpisodeMetadata(
|
|
||||||
title: title,
|
|
||||||
imageUrl: image,
|
|
||||||
anilistId: anilistId,
|
|
||||||
episodeNumber: episodeNumber
|
|
||||||
)
|
|
||||||
|
|
||||||
let cacheKey = "anilist_\(anilistId)_episode_\(episodeNumber)"
|
|
||||||
if let metadataData = metadata.toData() {
|
|
||||||
MetadataCacheManager.shared.storeMetadata(
|
|
||||||
metadataData,
|
|
||||||
forKey: cacheKey
|
|
||||||
)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
let metadataInfo = EpisodeMetadataInfo(
|
let metadataInfo = EpisodeMetadataInfo(
|
||||||
title: title,
|
title: title,
|
||||||
|
|
|
||||||
|
|
@ -169,7 +169,7 @@ struct SettingsViewData: View {
|
||||||
isOn: $isMetadataCachingEnabled
|
isOn: $isMetadataCachingEnabled
|
||||||
)
|
)
|
||||||
.onChange(of: isMetadataCachingEnabled) { newValue in
|
.onChange(of: isMetadataCachingEnabled) { newValue in
|
||||||
MetadataCacheManager.shared.isCachingEnabled = newValue
|
// MetadataCacheManager removed
|
||||||
if !newValue {
|
if !newValue {
|
||||||
calculateCacheSize()
|
calculateCacheSize()
|
||||||
}
|
}
|
||||||
|
|
@ -194,9 +194,8 @@ struct SettingsViewData: View {
|
||||||
isOn: $isMemoryOnlyMode
|
isOn: $isMemoryOnlyMode
|
||||||
)
|
)
|
||||||
.onChange(of: isMemoryOnlyMode) { newValue in
|
.onChange(of: isMemoryOnlyMode) { newValue in
|
||||||
MetadataCacheManager.shared.isMemoryOnlyMode = newValue
|
// MetadataCacheManager removed
|
||||||
if newValue {
|
if newValue {
|
||||||
MetadataCacheManager.shared.clearAllCache()
|
|
||||||
calculateCacheSize()
|
calculateCacheSize()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -274,9 +273,7 @@ struct SettingsViewData: View {
|
||||||
.scrollViewBottomPadding()
|
.scrollViewBottomPadding()
|
||||||
.navigationTitle("App Data")
|
.navigationTitle("App Data")
|
||||||
.onAppear {
|
.onAppear {
|
||||||
isMetadataCachingEnabled = MetadataCacheManager.shared.isCachingEnabled
|
|
||||||
isImageCachingEnabled = KingfisherCacheManager.shared.isCachingEnabled
|
isImageCachingEnabled = KingfisherCacheManager.shared.isCachingEnabled
|
||||||
isMemoryOnlyMode = MetadataCacheManager.shared.isMemoryOnlyMode
|
|
||||||
calculateCacheSize()
|
calculateCacheSize()
|
||||||
updateSizes()
|
updateSizes()
|
||||||
}
|
}
|
||||||
|
|
@ -319,9 +316,6 @@ struct SettingsViewData: View {
|
||||||
cacheSizeText = "Calculating..."
|
cacheSizeText = "Calculating..."
|
||||||
DispatchQueue.global(qos: .background).async {
|
DispatchQueue.global(qos: .background).async {
|
||||||
var totalSize: Int64 = 0
|
var totalSize: Int64 = 0
|
||||||
let metadataSize = MetadataCacheManager.shared.getCacheSize()
|
|
||||||
totalSize += metadataSize
|
|
||||||
|
|
||||||
KingfisherCacheManager.shared.calculateCacheSize { imageSize in
|
KingfisherCacheManager.shared.calculateCacheSize { imageSize in
|
||||||
totalSize += Int64(imageSize)
|
totalSize += Int64(imageSize)
|
||||||
DispatchQueue.main.async {
|
DispatchQueue.main.async {
|
||||||
|
|
@ -333,7 +327,7 @@ struct SettingsViewData: View {
|
||||||
}
|
}
|
||||||
|
|
||||||
func clearAllCaches() {
|
func clearAllCaches() {
|
||||||
MetadataCacheManager.shared.clearAllCache()
|
// MetadataCacheManager removed
|
||||||
KingfisherCacheManager.shared.clearCache {
|
KingfisherCacheManager.shared.clearCache {
|
||||||
calculateCacheSize()
|
calculateCacheSize()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue