tweak: keep the old logic of removing open group messsages
This commit is contained in:
parent
4cb2d81670
commit
4a5674f7b3
|
@ -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
|
||||
|
|
|
@ -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 ?? [:])
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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).")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue