summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Sora/Data/Booru/BooruProviderFlavor.swift24
-rw-r--r--Sora/Data/Booru/BooruRating.swift20
2 files changed, 22 insertions, 22 deletions
diff --git a/Sora/Data/Booru/BooruProviderFlavor.swift b/Sora/Data/Booru/BooruProviderFlavor.swift
index 8917ab1..c94a40d 100644
--- a/Sora/Data/Booru/BooruProviderFlavor.swift
+++ b/Sora/Data/Booru/BooruProviderFlavor.swift
@@ -1,18 +1,20 @@
-enum BooruProviderFlavor: String, CaseIterable, Decodable, Encodable {
+enum BooruProviderFlavor: String, CaseIterable, Codable {
case danbooru = "Danbooru"
case gelbooru = "Gelbooru"
case moebooru = "Moebooru"
+ // MARK: - Initialization
init(provider: BooruProvider) {
- switch provider {
- case .danbooru:
- self = .danbooru
-
- case .yandere, .konachan, .sakugabooru:
- self = .moebooru
-
- case .safebooru, .gelbooru:
- self = .gelbooru
- }
+ self = Self.providerMap[provider] ?? .gelbooru
}
+
+ // MARK: - Private
+ private static let providerMap: [BooruProvider: Self] = [
+ .danbooru: .danbooru,
+ .yandere: .moebooru,
+ .konachan: .moebooru,
+ .sakugabooru: .moebooru,
+ .safebooru: .gelbooru,
+ .gelbooru: .gelbooru,
+ ]
}
diff --git a/Sora/Data/Booru/BooruRating.swift b/Sora/Data/Booru/BooruRating.swift
index f4814e8..1135add 100644
--- a/Sora/Data/Booru/BooruRating.swift
+++ b/Sora/Data/Booru/BooruRating.swift
@@ -1,18 +1,16 @@
-enum BooruRating: String, CaseIterable, Decodable, Encodable {
+enum BooruRating: String, CaseIterable, Codable {
case explicit = "Explicit"
case questionable = "Questionable"
case safe = "Safe"
+ // MARK: - Initialization
init(_ string: String) {
- switch string {
- case "e":
- self = .explicit
-
- case "s":
- self = .safe
-
- default:
- self = .questionable
- }
+ self = Self.shortCodeMap[string] ?? .questionable
}
+
+ // MARK: - Private
+ private static let shortCodeMap: [String: Self] = [
+ "e": .explicit,
+ "s": .safe,
+ ]
}