summaryrefslogtreecommitdiff
path: root/Sora/Data/Danbooru
diff options
context:
space:
mode:
Diffstat (limited to 'Sora/Data/Danbooru')
-rw-r--r--Sora/Data/Danbooru/DanbooruPostParser.swift26
1 files changed, 17 insertions, 9 deletions
diff --git a/Sora/Data/Danbooru/DanbooruPostParser.swift b/Sora/Data/Danbooru/DanbooruPostParser.swift
index 73db0cc..f990ed5 100644
--- a/Sora/Data/Danbooru/DanbooruPostParser.swift
+++ b/Sora/Data/Danbooru/DanbooruPostParser.swift
@@ -1,6 +1,6 @@
import Foundation
-class DanbooruPostParser {
+nonisolated class DanbooruPostParser {
private let data: Data
init(data: Data) {
@@ -25,20 +25,28 @@ class DanbooruPostParser {
}
}
- private static func parseDate(_ input: String) -> Date? {
- let isoFormatter = ISO8601DateFormatter()
+ nonisolated(unsafe) private static let isoFormatter: ISO8601DateFormatter = {
+ let formatter = ISO8601DateFormatter()
+
+ formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds]
+
+ return formatter
+ }()
+
+ private static let alternativeFormatter: DateFormatter = {
+ let formatter = DateFormatter()
- isoFormatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds]
+ formatter.dateFormat = "EEE MMM dd HH:mm:ss Z yyyy"
+ formatter.locale = Locale(identifier: "en_US_POSIX")
+ return formatter
+ }()
+
+ private static func parseDate(_ input: String) -> Date? {
if let date = isoFormatter.date(from: input) {
return date
}
- let alternativeFormatter = DateFormatter()
-
- alternativeFormatter.dateFormat = "EEE MMM dd HH:mm:ss Z yyyy"
- alternativeFormatter.locale = Locale(identifier: "en_US_POSIX")
-
if let date = alternativeFormatter.date(from: input) {
return date
}