2021-04-16 14:22:38 +03:00

50 lines
1.6 KiB
Swift

import Foundation
import UIKit
public class ImportStickerPack {
public class Sticker: Equatable {
public static func == (lhs: ImportStickerPack.Sticker, rhs: ImportStickerPack.Sticker) -> Bool {
return lhs.uuid == rhs.uuid
}
let image: UIImage
let emojis: [String]
let uuid: UUID
init(image: UIImage, emojis: [String], uuid: UUID = UUID()) {
self.image = image
self.emojis = emojis
self.uuid = uuid
}
}
public var identifier: String
public var name: String
public let software: String
public var thumbnail: String?
public let isAnimated: Bool
public var stickers: [Sticker]
public init?(data: Data) {
guard let json = try? JSONSerialization.jsonObject(with: data, options: []) as? [String: Any] else {
return nil
}
self.name = json["name"] as? String ?? ""
self.identifier = json["identifier"] as? String ?? ""
self.software = json["software"] as? String ?? ""
self.isAnimated = json["isAnimated"] as? Bool ?? false
var stickers: [Sticker] = []
if let stickersArray = json["stickers"] as? [[String: Any]] {
for sticker in stickersArray {
if let dataString = sticker["data"] as? String, let data = Data(base64Encoded: dataString), let image = UIImage(data: data) {
stickers.append(Sticker(image: image, emojis: sticker["emojis"] as? [String] ?? []))
}
}
}
self.stickers = stickers
}
}