tweak: keep the old logic of removing open group messsages

This commit is contained in:
Ryan Zhao 2022-08-11 11:51:15 +10:00
parent 4cb2d81670
commit 4a5674f7b3
3 changed files with 27 additions and 19 deletions

View File

@ -356,13 +356,14 @@ public extension Message {
dependencies: SMKDependencies = SMKDependencies()
) -> [Reaction] {
var results: [Reaction] = []
guard let reactions = message.reactions else { return results }
let userPublicKey: String = getUserHexEncodedPublicKey(db)
let blindedUserPublicKey: String? = SessionThread
.getUserHexEncodedBlindedKey(
threadId: openGroupId,
threadVariant: .openGroup
)
for (encodedEmoji, rawReaction) in message.reactions {
for (encodedEmoji, rawReaction) in reactions {
if let emoji = encodedEmoji.removingPercentEncoding,
rawReaction.count > 0,
let reactors = rawReaction.reactors

View File

@ -49,7 +49,7 @@ extension OpenGroupAPI {
public let index: Int64
}
public let reactions: [String:Reaction]
public let reactions: [String:Reaction]?
}
}
@ -107,7 +107,7 @@ extension OpenGroupAPI.Message {
whisperTo: try? container.decode(String.self, forKey: .whisperTo),
base64EncodedData: maybeBase64EncodedData,
base64EncodedSignature: maybeBase64EncodedSignature,
reactions: maybeReactions ?? [:]
reactions: !container.contains(.reactions) ? nil : (maybeReactions ?? [:])
)
}
}

View File

@ -515,6 +515,11 @@ public final class OpenGroupManager: NSObject {
// Process the messages
sortedMessages.forEach { message in
if message.base64EncodedData == nil && message.reactions == nil {
messageServerIdsToRemove.append(Int64(message.id))
return
}
// Handle messages
if let base64EncodedString: String = message.base64EncodedData,
let data = Data(base64Encoded: base64EncodedString)
@ -556,22 +561,24 @@ public final class OpenGroupManager: NSObject {
}
// Handle reactions
do {
let reactions: [Reaction] = Message.processRawReceivedReactions(
db,
openGroupId: openGroup.id,
message: message,
dependencies: dependencies
)
try MessageReceiver.handleOpenGroupReactions(
db,
openGroupMessageServerId: message.id,
openGroupReactions: reactions
)
}
catch {
SNLog("Couldn't handle open group reactions due to error: \(error).")
if message.reactions != nil {
do {
let reactions: [Reaction] = Message.processRawReceivedReactions(
db,
openGroupId: openGroup.id,
message: message,
dependencies: dependencies
)
try MessageReceiver.handleOpenGroupReactions(
db,
openGroupMessageServerId: message.id,
openGroupReactions: reactions
)
}
catch {
SNLog("Couldn't handle open group reactions due to error: \(error).")
}
}
}