Add LokiGroupChat

pull/41/head
Niels Andriesse 6 years ago
parent 3930891a3d
commit 88ad68838a

@ -0,0 +1,38 @@
@objc(LKGroupChat)
public final class LokiGroupChat : NSObject {
public let kind: Kind
public let server: String
public let displayName: String
public let isDeletable: Bool
public var id: String {
switch kind {
case .publicChat(let id): return "\(server).\(id)"
case .rss(let customID): return customID
}
}
public enum Kind { case publicChat(id: UInt), rss(customID: String) }
// MARK: Initialization
public init(kind: Kind, server: String, displayName: String, isDeletable: Bool) {
self.kind = kind
self.server = server
self.displayName = displayName
self.isDeletable = isDeletable
}
@objc public convenience init(kindAsString: String, id: String, server: String, displayName: String, isDeletable: Bool) {
let kind: Kind
switch kindAsString {
case "publicChat": kind = .publicChat(id: UInt(id)!)
case "rss": kind = .rss(customID: id)
default: preconditionFailure()
}
self.init(kind: kind, server: server, displayName: displayName, isDeletable: isDeletable)
}
// MARK: Description
override public var description: String { return "\(id) (\(displayName))" }
}

@ -169,7 +169,7 @@ public final class LokiGroupChatAPI : NSObject {
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
guard let json = rawResponse as? JSON, let messageAsJSON = json["data"] as? JSON, let serverID = messageAsJSON["id"] as? UInt, let body = messageAsJSON["text"] as? String,
let dateAsString = messageAsJSON["created_at"] as? String, let date = dateFormatter.date(from: dateAsString) else {
print("[Loki] Couldn't parse messages for group chat with ID: \(group) on server: \(server) from: \(rawResponse).")
print("[Loki] Couldn't parse message for group chat with ID: \(group) on server: \(server) from: \(rawResponse).")
throw Error.messageParsingFailed
}
let timestamp = UInt64(date.timeIntervalSince1970) * 1000
@ -197,7 +197,7 @@ public final class LokiGroupChatAPI : NSObject {
}
return rawMessages.flatMap { message in
guard let serverID = message["id"] as? UInt else {
print("[Loki] Couldn't parse message for group chat with ID: \(group) on server: \(server) from: \(message).")
print("[Loki] Couldn't parse deleted message for group chat with ID: \(group) on server: \(server) from: \(message).")
return nil
}
let isDeleted = (message["is_deleted"] as? Bool ?? false)

Loading…
Cancel
Save