summaryrefslogtreecommitdiff
path: root/Sora/Data/Booru/BooruProvider.swift
diff options
context:
space:
mode:
Diffstat (limited to 'Sora/Data/Booru/BooruProvider.swift')
-rw-r--r--Sora/Data/Booru/BooruProvider.swift35
1 files changed, 14 insertions, 21 deletions
diff --git a/Sora/Data/Booru/BooruProvider.swift b/Sora/Data/Booru/BooruProvider.swift
index aa3acf3..3642da0 100644
--- a/Sora/Data/Booru/BooruProvider.swift
+++ b/Sora/Data/Booru/BooruProvider.swift
@@ -1,4 +1,4 @@
-enum BooruProvider: String, CaseIterable, Decodable, Encodable {
+enum BooruProvider: String, CaseIterable, Codable {
case danbooru = "Danbooru"
case gelbooru = "Gelbooru"
case konachan = "Konachan.com"
@@ -6,29 +6,22 @@ enum BooruProvider: String, CaseIterable, Decodable, Encodable {
case sakugabooru = "sakugabooru"
case yandere = "yande.re"
+ // MARK: - Properties
var domain: String {
- switch self {
- case .yandere:
- return "yande.re"
-
- case .konachan:
- return "konachan.com"
-
- case .sakugabooru:
- return "sakugabooru.com"
-
- case .safebooru:
- return "safebooru.org"
-
- case .gelbooru:
- return "gelbooru.com"
-
- case .danbooru:
- return "danbooru.donmai.us"
- }
+ Self.domains[self] ?? rawValue.lowercased()
}
- func asFileNameComponent() -> String {
+ var asFileNameComponent: String {
rawValue.lowercased().replacingOccurrences(of: ".", with: "_")
}
+
+ // MARK: - Private
+ private static let domains: [Self: String] = [
+ .yandere: "yande.re",
+ .konachan: "konachan.com",
+ .sakugabooru: "sakugabooru.com",
+ .safebooru: "safebooru.org",
+ .gelbooru: "gelbooru.com",
+ .danbooru: "danbooru.donmai.us",
+ ]
}