summaryrefslogtreecommitdiff
path: root/Sora/Data
diff options
context:
space:
mode:
authorFuwn <[email protected]>2025-02-26 21:12:05 -0800
committerFuwn <[email protected]>2025-02-26 21:12:05 -0800
commit0bfca77163ee472883c848292ce0b0afed26043a (patch)
tree0d8c1167231d84e5fdf1798ca9f7b8461469a9fc /Sora/Data
parentfeat: Development commit (diff)
downloadsora-testing-0bfca77163ee472883c848292ce0b0afed26043a.tar.xz
sora-testing-0bfca77163ee472883c848292ce0b0afed26043a.zip
feat: Development commit
Diffstat (limited to 'Sora/Data')
-rw-r--r--Sora/Data/Booru/BooruManager.swift7
1 files changed, 7 insertions, 0 deletions
diff --git a/Sora/Data/Booru/BooruManager.swift b/Sora/Data/Booru/BooruManager.swift
index b3cd6c7..a72df6c 100644
--- a/Sora/Data/Booru/BooruManager.swift
+++ b/Sora/Data/Booru/BooruManager.swift
@@ -12,6 +12,7 @@ class BooruManager: ObservableObject {
@Published var selectedPost: BooruPost?
@Published var flavor: BooruProviderFlavor
@Published var domain: String
+ @Published var postIndexMap: [String: Int] = [:]
private var currentTask: Task<Void, Never>?
let provider: BooruProvider
var tags: [String] {
@@ -103,6 +104,12 @@ class BooruManager: ObservableObject {
self.endOfData = true
} else {
self.posts += Array(Set(newPosts))
+
+ self.postIndexMap.merge(
+ zip(newPosts.indices, newPosts.map(\.id)).reduce(into: [:]) { result, element in
+ result[element.1] = element.0
+ }
+ ) { _, new in new }
}
}
} catch {