// // Emoji.swift // Pachyderm // // Created by Shadowfacts on 9/8/18. // Copyright © 2018 Shadowfacts. All rights reserved. // import Foundation public class Emoji: Codable { public let shortcode: String public let url: URL public let staticURL: URL public let visibleInPicker: Bool public required init(from decoder: Decoder) throws { let container = try decoder.container(keyedBy: CodingKeys.self) self.shortcode = try container.decode(String.self, forKey: .shortcode) if let url = try? container.decode(URL.self, forKey: .url) { self.url = url } else { let str = try container.decode(String.self, forKey: .url) self.url = URL(string: str.replacingOccurrences(of: " ", with: "%20"))! } if let url = try? container.decode(URL.self, forKey: .staticURL) { self.staticURL = url } else { let staticStr = try container.decode(String.self, forKey: .staticURL) self.staticURL = URL(string: staticStr.replacingOccurrences(of: " ", with: "%20"))! } self.visibleInPicker = try container.decode(Bool.self, forKey: .visibleInPicker) } private enum CodingKeys: String, CodingKey { case shortcode case url case staticURL = "static_url" case visibleInPicker = "visible_in_picker" } } extension Emoji: CustomDebugStringConvertible { public var debugDescription: String { return ":\(shortcode):" } }