From 02faa9b955f0e1e82d953935c962708ce23f5617 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Thu, 24 Jul 2025 18:44:55 +0200 Subject: feat: Development commit --- Sora/Data/Booru/BooruManager.swift | 6 +++++- Sora/Data/Booru/BooruPageCacheEntry.swift | 6 ++++-- Sora/Data/Settings/SettingsManager.swift | 10 ++++++++-- 3 files changed, 17 insertions(+), 5 deletions(-) diff --git a/Sora/Data/Booru/BooruManager.swift b/Sora/Data/Booru/BooruManager.swift index 1458636..8f6fbd7 100644 --- a/Sora/Data/Booru/BooruManager.swift +++ b/Sora/Data/Booru/BooruManager.swift @@ -126,7 +126,11 @@ class BooruManager: ObservableObject { // swiftlint:disable:this type_body_leng } } - let cacheEntry = BooruPageCacheEntry(posts: finalPosts, timestamp: Date()) + let cacheEntry = BooruPageCacheEntry( + posts: finalPosts, + timestamp: Date(), + expiration: cacheDuration + ) pageCache.setObject(cacheEntry, forKey: cacheKey) diff --git a/Sora/Data/Booru/BooruPageCacheEntry.swift b/Sora/Data/Booru/BooruPageCacheEntry.swift index c2466f0..29fc419 100644 --- a/Sora/Data/Booru/BooruPageCacheEntry.swift +++ b/Sora/Data/Booru/BooruPageCacheEntry.swift @@ -3,13 +3,15 @@ import Foundation class BooruPageCacheEntry { let posts: [BooruPost] let timestamp: Date + private let expiration: TimeInterval var isExpired: Bool { - Date().timeIntervalSince(timestamp) > 300 + Date().timeIntervalSince(timestamp) > expiration } - init(posts: [BooruPost], timestamp: Date) { + init(posts: [BooruPost], timestamp: Date, expiration: TimeInterval = 300) { self.posts = posts self.timestamp = timestamp + self.expiration = expiration } } diff --git a/Sora/Data/Settings/SettingsManager.swift b/Sora/Data/Settings/SettingsManager.swift index 08c1696..8f18ef6 100644 --- a/Sora/Data/Settings/SettingsManager.swift +++ b/Sora/Data/Settings/SettingsManager.swift @@ -309,10 +309,16 @@ class SettingsManager: ObservableObject { // swiftlint:disable:this type_body_l ) { let sortedValues = sort(newValue) - localData.wrappedValue = Self.encode(sortedValues) ?? Data() + guard let encoded = Self.encode(sortedValues) else { + localData.wrappedValue = Data() + + return + } + + localData.wrappedValue = encoded if enableSync { - NSUbiquitousKeyValueStore.default.set(Self.encode(sortedValues), forKey: key) + NSUbiquitousKeyValueStore.default.set(encoded, forKey: key) NSUbiquitousKeyValueStore.default.synchronize() } } -- cgit v1.2.3