2023-01-09 18:47:54 +00:00
|
|
|
import Foundation
|
2023-01-25 05:28:16 +00:00
|
|
|
import SwiftUI
|
2023-01-09 18:47:54 +00:00
|
|
|
|
|
|
|
public struct ServerPreferences: Decodable {
|
2023-01-09 19:39:42 +00:00
|
|
|
public let postVisibility: Visibility?
|
|
|
|
public let postIsSensitive: Bool?
|
|
|
|
public let postLanguage: String?
|
2023-01-17 14:14:50 +00:00
|
|
|
public let autoExpandMedia: AutoExpandMedia?
|
2023-01-09 19:39:42 +00:00
|
|
|
public let autoExpandSpoilers: Bool?
|
2023-01-17 10:36:01 +00:00
|
|
|
|
2023-01-25 05:28:16 +00:00
|
|
|
public enum AutoExpandMedia: String, Decodable, CaseIterable {
|
2023-01-09 18:47:54 +00:00
|
|
|
case showAll = "show_all"
|
|
|
|
case hideAll = "hide_all"
|
|
|
|
case hideSensitive = "default"
|
2023-01-27 19:36:40 +00:00
|
|
|
|
2023-01-25 05:28:16 +00:00
|
|
|
public var description: LocalizedStringKey {
|
|
|
|
switch self {
|
|
|
|
case .showAll:
|
|
|
|
return "enum.expand-media.show"
|
|
|
|
case .hideAll:
|
|
|
|
return "enum.expand-media.hide"
|
|
|
|
case .hideSensitive:
|
|
|
|
return "enum.expand-media.hide-sensitive"
|
|
|
|
}
|
|
|
|
}
|
2023-01-09 18:47:54 +00:00
|
|
|
}
|
2023-01-17 10:36:01 +00:00
|
|
|
|
2023-01-09 18:47:54 +00:00
|
|
|
enum CodingKeys: String, CodingKey {
|
|
|
|
case postVisibility = "posting:default:visibility"
|
|
|
|
case postIsSensitive = "posting:default:sensitive"
|
|
|
|
case postLanguage = "posting:default:language"
|
2023-01-17 14:14:50 +00:00
|
|
|
case autoExpandMedia = "reading:expand:media"
|
2023-01-09 18:47:54 +00:00
|
|
|
case autoExpandSpoilers = "reading:expand:spoilers"
|
|
|
|
}
|
|
|
|
}
|
2023-02-27 05:39:07 +00:00
|
|
|
|
|
|
|
extension ServerPreferences: Sendable {}
|
|
|
|
extension ServerPreferences.AutoExpandMedia: Sendable {}
|