38 lines
1.2 KiB
Swift
38 lines
1.2 KiB
Swift
//
|
|
// Preferences.swift
|
|
// Pachyderm
|
|
//
|
|
// Created by Shadowfacts on 10/26/23.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
public struct Preferences: Codable, Sendable {
|
|
public let postingDefaultVisibility: Visibility
|
|
public let postingDefaultSensitive: Bool
|
|
public let postingDefaultLanguage: String
|
|
// Whether posts federate or not (local-only) on Hometown
|
|
public let postingDefaultFederation: Bool?
|
|
public let readingExpandMedia: ExpandMedia
|
|
public let readingExpandSpoilers: Bool
|
|
public let readingAutoplayGifs: Bool
|
|
|
|
enum CodingKeys: String, CodingKey {
|
|
case postingDefaultVisibility = "posting:default:visibility"
|
|
case postingDefaultSensitive = "posting:default:sensitive"
|
|
case postingDefaultLanguage = "posting:default:language"
|
|
case postingDefaultFederation = "posting:default:federation"
|
|
case readingExpandMedia = "reading:expand:media"
|
|
case readingExpandSpoilers = "reading:expand:spoilers"
|
|
case readingAutoplayGifs = "reading:autoplay:gifs"
|
|
}
|
|
}
|
|
|
|
extension Preferences {
|
|
public enum ExpandMedia: String, Codable, Sendable {
|
|
case `default`
|
|
case always = "show_all"
|
|
case never = "hide_all"
|
|
}
|
|
}
|