diff options
Diffstat (limited to 'Sora/Data/Booru')
| -rw-r--r-- | Sora/Data/Booru/BooruManager.swift | 12 | ||||
| -rw-r--r-- | Sora/Data/Booru/BooruProvider.swift | 2 |
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" } |