diff options
Diffstat (limited to 'Sora/Data/Booru/BooruProvider.swift')
| -rw-r--r-- | Sora/Data/Booru/BooruProvider.swift | 35 |
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", + ] } |