diff --git a/Pachyderm/Model/Attachment.swift b/Pachyderm/Model/Attachment.swift index 2e428258..309e9fcf 100644 --- a/Pachyderm/Model/Attachment.swift +++ b/Pachyderm/Model/Attachment.swift @@ -56,6 +56,23 @@ extension Attachment { case gifv case audio case unknown + + public init(from decoder: Decoder) throws { + let container = try decoder.singleValueContainer() + switch try container.decode(String.self) { + // gotosocial uses "gif" for gif images + case "image", "gif": + self = .image + case "video": + self = .video + case "gifv": + self = .gifv + case "audio": + self = .audio + default: + self = .unknown + } + } } }