summaryrefslogtreecommitdiff
path: root/Sora/Data
diff options
context:
space:
mode:
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 {