Update API

This commit is contained in:
Isaac
2023-12-27 01:22:25 +04:00
parent 626e94f72b
commit ee90dd8332
15 changed files with 467 additions and 105 deletions

View File

@@ -109,7 +109,7 @@ public class QuotedReplyMessageAttribute: MessageAttribute {
extension QuotedReplyMessageAttribute {
convenience init(apiHeader: Api.MessageFwdHeader, quote: EngineMessageReplyQuote?, isQuote: Bool) {
switch apiHeader {
case let .messageFwdHeader(_, fromId, fromName, _, _, _, _, _, _):
case let .messageFwdHeader(_, fromId, fromName, _, _, _, _, _, _, _, _, _):
self.init(peerId: fromId?.peerId, authorName: fromName, quote: quote, isQuote: isQuote)
}
}

View File

@@ -3,17 +3,20 @@ import Postbox
public class SourceReferenceMessageAttribute: MessageAttribute {
public let messageId: MessageId
public let associatedMessageIds: [MessageId] = []
public let associatedPeerIds: [PeerId]
public init(messageId: MessageId) {
self.messageId = messageId
self.associatedPeerIds = [messageId.peerId]
}
required public init(decoder: PostboxDecoder) {
let namespaceAndId: Int64 = decoder.decodeInt64ForKey("i", orElse: 0)
self.messageId = MessageId(peerId: PeerId(decoder.decodeInt64ForKey("p", orElse: 0)), namespace: Int32(namespaceAndId & 0xffffffff), id: Int32((namespaceAndId >> 32) & 0xffffffff))
self.associatedPeerIds = [self.messageId.peerId]
}
@@ -24,4 +27,57 @@ public class SourceReferenceMessageAttribute: MessageAttribute {
}
}
public class SourceAuthorInfoMessageAttribute: MessageAttribute {
public let originalAuthor: PeerId?
public let originalAuthorName: String?
public let orignalDate: Int32?
public let originalOutgoing: Bool
public let associatedMessageIds: [MessageId] = []
public let associatedPeerIds: [PeerId]
public init(originalAuthor: PeerId?, originalAuthorName: String?, orignalDate: Int32?, originalOutgoing: Bool) {
self.originalAuthor = originalAuthor
self.originalAuthorName = originalAuthorName
self.orignalDate = orignalDate
self.originalOutgoing = originalOutgoing
if let originalAuthor = self.originalAuthor {
self.associatedPeerIds = [originalAuthor]
} else {
self.associatedPeerIds = []
}
}
required public init(decoder: PostboxDecoder) {
self.originalAuthor = decoder.decodeOptionalInt64ForKey("oa").flatMap(PeerId.init)
self.originalAuthorName = decoder.decodeOptionalStringForKey("oan")
self.orignalDate = decoder.decodeOptionalInt32ForKey("od")
self.originalOutgoing = decoder.decodeBoolForKey("oout", orElse: false)
if let originalAuthor = self.originalAuthor {
self.associatedPeerIds = [originalAuthor]
} else {
self.associatedPeerIds = []
}
}
public func encode(_ encoder: PostboxEncoder) {
if let originalAuthor = self.originalAuthor {
encoder.encodeInt64(originalAuthor.toInt64(), forKey: "oa")
} else {
encoder.encodeNil(forKey: "oa")
}
if let originalAuthorName = self.originalAuthorName {
encoder.encodeString(originalAuthorName, forKey: "oan")
} else {
encoder.encodeNil(forKey: "oan")
}
if let orignalDate = self.orignalDate {
encoder.encodeInt32(orignalDate, forKey: "od")
} else {
encoder.encodeNil(forKey: "od")
}
encoder.encodeBool(self.originalOutgoing, forKey: "oout")
}
}