diff options
Diffstat (limited to 'Sora/Data/Danbooru')
| -rw-r--r-- | Sora/Data/Danbooru/DanbooruPostParser.swift | 26 |
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 } |