summaryrefslogtreecommitdiff
path: root/Sora/Data/Booru
diff options
context:
space:
mode:
Diffstat (limited to 'Sora/Data/Booru')
-rw-r--r--Sora/Data/Booru/BooruManager.swift12
-rw-r--r--Sora/Data/Booru/BooruProvider.swift2
2 files changed, 13 insertions, 1 deletions
diff --git a/Sora/Data/Booru/BooruManager.swift b/Sora/Data/Booru/BooruManager.swift
index d650593..3c9c5ca 100644
--- a/Sora/Data/Booru/BooruManager.swift
+++ b/Sora/Data/Booru/BooruManager.swift
@@ -125,12 +125,22 @@ class BooruManager: ObservableObject {
}
}
+ private func moebooruURL(domain: String, page: Int, limit: Int, tagString: String) -> URL? {
+ URL(string: "https://\(domain)/post.xml?page=\(page)&limit=\(limit)&tags=\(tagString)")
+ }
+
private func urlForPosts(page: Int, limit: Int, tags: [String]) -> URL? {
let tagString = tags.joined(separator: "+")
switch provider {
case .yandere:
- return URL(string: "https://yande.re/post.xml?page=\(page)&limit=\(limit)&tags=\(tagString)")
+ return moebooruURL(domain: "yande.re", page: page, limit: limit, tagString: tagString)
+
+ case .konachan:
+ return moebooruURL(domain: "konachan.com", page: page, limit: limit, tagString: tagString)
+
+ case .sakugabooru:
+ return moebooruURL(domain: "sakugabooru.com", page: page, limit: limit, tagString: tagString)
case .safebooru:
return URL(
diff --git a/Sora/Data/Booru/BooruProvider.swift b/Sora/Data/Booru/BooruProvider.swift
index 19e5234..2aa9238 100644
--- a/Sora/Data/Booru/BooruProvider.swift
+++ b/Sora/Data/Booru/BooruProvider.swift
@@ -1,4 +1,6 @@
enum BooruProvider: String, CaseIterable, Decodable, Encodable {
+ case konachan = "Konachan.com"
case safebooru = "Safebooru"
+ case sakugabooru = "sakugabooru"
case yandere = "yande.re"
}