summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-07-24 18:44:55 +0200
committerFuwn <[email protected]>2025-07-24 18:44:55 +0200
commit02faa9b955f0e1e82d953935c962708ce23f5617 (patch)
tree645da7c55b0c27d490349688496707f9f76d7a4f
parentfeat: Development commit (diff)
downloadsora-testing-02faa9b955f0e1e82d953935c962708ce23f5617.tar.xz
sora-testing-02faa9b955f0e1e82d953935c962708ce23f5617.zip
feat: Development commit
-rw-r--r--Sora/Data/Booru/BooruManager.swift6
-rw-r--r--Sora/Data/Booru/BooruPageCacheEntry.swift6
-rw-r--r--Sora/Data/Settings/SettingsManager.swift10
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()
}
}