summaryrefslogtreecommitdiff
path: root/Sora/Data
diff options
context:
space:
mode:
Diffstat (limited to 'Sora/Data')
-rw-r--r--Sora/Data/Booru/BooruPost.swift2
-rw-r--r--Sora/Data/Booru/BooruPostXMLParser.swift2
-rw-r--r--Sora/Data/Booru/BooruRating.swift18
3 files changed, 20 insertions, 2 deletions
diff --git a/Sora/Data/Booru/BooruPost.swift b/Sora/Data/Booru/BooruPost.swift
index 7f995a3..e2e043e 100644
--- a/Sora/Data/Booru/BooruPost.swift
+++ b/Sora/Data/Booru/BooruPost.swift
@@ -10,7 +10,7 @@ struct BooruPost: Identifiable, Hashable {
let sampleWidth: Int
let sampleHeight: Int
let previewURL: URL
- let rating: String
+ let rating: BooruRating
let tags: [String]
let width: Int
let change: String
diff --git a/Sora/Data/Booru/BooruPostXMLParser.swift b/Sora/Data/Booru/BooruPostXMLParser.swift
index 3bce127..d316177 100644
--- a/Sora/Data/Booru/BooruPostXMLParser.swift
+++ b/Sora/Data/Booru/BooruPostXMLParser.swift
@@ -68,7 +68,7 @@ class BooruPostXMLParser: NSObject, XMLParserDelegate {
sampleWidth: sampleWidth,
sampleHeight: sampleHeight,
previewURL: URL(string: previewUrl)!,
- rating: rating,
+ rating: BooruRating(rating),
tags: tags.components(separatedBy: " ").filter { !$0.isEmpty },
width: width,
change: change,
diff --git a/Sora/Data/Booru/BooruRating.swift b/Sora/Data/Booru/BooruRating.swift
new file mode 100644
index 0000000..8327868
--- /dev/null
+++ b/Sora/Data/Booru/BooruRating.swift
@@ -0,0 +1,18 @@
+enum BooruRating {
+ case explicit
+ case questionable
+ case safe
+
+ init(_ string: String) {
+ switch string {
+ case "e":
+ self = .explicit
+
+ case "s":
+ self = .safe
+
+ default:
+ self = .questionable
+ }
+ }
+}