From eac2a47163a07c2553fee8a0cfcdf3f1e6adafd2 Mon Sep 17 00:00:00 2001 From: Jailson Dias Date: Thu, 24 Oct 2024 17:27:51 -0300 Subject: [PATCH] add group info on json message --- .../java/org/asamk/signal/json/JsonDataMessage.java | 5 +++-- .../java/org/asamk/signal/json/JsonEditMessage.java | 5 +++-- .../java/org/asamk/signal/json/JsonGroupInfo.java | 7 +++++-- .../org/asamk/signal/json/JsonSyncDataMessage.java | 11 ++++++++--- .../java/org/asamk/signal/json/JsonSyncMessage.java | 5 +++-- 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/asamk/signal/json/JsonDataMessage.java b/src/main/java/org/asamk/signal/json/JsonDataMessage.java index ef74258503..f24fdbba51 100644 --- a/src/main/java/org/asamk/signal/json/JsonDataMessage.java +++ b/src/main/java/org/asamk/signal/json/JsonDataMessage.java @@ -2,6 +2,7 @@ import com.fasterxml.jackson.annotation.JsonInclude; +import org.asamk.signal.manager.Manager; import org.asamk.signal.manager.api.MessageEnvelope; import java.util.List; @@ -25,10 +26,10 @@ record JsonDataMessage( @JsonInclude(JsonInclude.Include.NON_NULL) JsonStoryContext storyContext ) { - static JsonDataMessage from(MessageEnvelope.Data dataMessage) { + static JsonDataMessage from(MessageEnvelope.Data dataMessage, Manager m) { final var timestamp = dataMessage.timestamp(); final var groupInfo = dataMessage.groupContext().isPresent() ? JsonGroupInfo.from(dataMessage.groupContext() - .get()) : null; + .get(), m) : null; final var storyContext = dataMessage.storyContext().isPresent() ? JsonStoryContext.from(dataMessage.storyContext().get()) : null; diff --git a/src/main/java/org/asamk/signal/json/JsonEditMessage.java b/src/main/java/org/asamk/signal/json/JsonEditMessage.java index 193bd16adc..6b17344b86 100644 --- a/src/main/java/org/asamk/signal/json/JsonEditMessage.java +++ b/src/main/java/org/asamk/signal/json/JsonEditMessage.java @@ -1,10 +1,11 @@ package org.asamk.signal.json; +import org.asamk.signal.manager.Manager; import org.asamk.signal.manager.api.MessageEnvelope; record JsonEditMessage(long targetSentTimestamp, JsonDataMessage dataMessage) { - static JsonEditMessage from(MessageEnvelope.Edit editMessage) { - return new JsonEditMessage(editMessage.targetSentTimestamp(), JsonDataMessage.from(editMessage.dataMessage())); + static JsonEditMessage from(MessageEnvelope.Edit editMessage, Manager m) { + return new JsonEditMessage(editMessage.targetSentTimestamp(), JsonDataMessage.from(editMessage.dataMessage(), m)); } } diff --git a/src/main/java/org/asamk/signal/json/JsonGroupInfo.java b/src/main/java/org/asamk/signal/json/JsonGroupInfo.java index 01e3990051..c370d1e2ee 100644 --- a/src/main/java/org/asamk/signal/json/JsonGroupInfo.java +++ b/src/main/java/org/asamk/signal/json/JsonGroupInfo.java @@ -1,11 +1,14 @@ package org.asamk.signal.json; +import org.asamk.signal.manager.Manager; import org.asamk.signal.manager.api.MessageEnvelope; -record JsonGroupInfo(String groupId, String type) { +record JsonGroupInfo(String groupId, String groupName, int revision, String type) { - static JsonGroupInfo from(MessageEnvelope.Data.GroupContext groupContext) { + static JsonGroupInfo from(MessageEnvelope.Data.GroupContext groupContext, Manager m) { return new JsonGroupInfo(groupContext.groupId().toBase64(), + m.getGroup(groupContext.groupId()).title(), + groupContext.revision(), groupContext.isGroupUpdate() ? "UPDATE" : "DELIVER"); } } diff --git a/src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java b/src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java index fe427ef132..391181b03a 100644 --- a/src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java +++ b/src/main/java/org/asamk/signal/json/JsonSyncDataMessage.java @@ -3,6 +3,7 @@ import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonUnwrapped; +import org.asamk.signal.manager.Manager; import org.asamk.signal.manager.api.MessageEnvelope; import org.asamk.signal.manager.api.RecipientAddress; @@ -16,13 +17,17 @@ record JsonSyncDataMessage( @JsonUnwrapped JsonDataMessage dataMessage ) { - static JsonSyncDataMessage from(MessageEnvelope.Sync.Sent transcriptMessage) { + static JsonSyncDataMessage from(MessageEnvelope.Sync.Sent transcriptMessage, Manager m) { return new JsonSyncDataMessage(transcriptMessage.destination() .map(RecipientAddress::getLegacyIdentifier) .orElse(null), transcriptMessage.destination().flatMap(RecipientAddress::number).orElse(null), transcriptMessage.destination().flatMap(address -> address.uuid().map(UUID::toString)).orElse(null), - transcriptMessage.editMessage().map(JsonEditMessage::from).orElse(null), - transcriptMessage.message().map(JsonDataMessage::from).orElse(null)); + transcriptMessage.editMessage() + .map(data -> JsonEditMessage.from(data, m)) + .orElse(null), + transcriptMessage.message() + .map(data -> JsonDataMessage.from(data, m)) + .orElse(null)); } } diff --git a/src/main/java/org/asamk/signal/json/JsonSyncMessage.java b/src/main/java/org/asamk/signal/json/JsonSyncMessage.java index fbe11daf44..072b2e3b7f 100644 --- a/src/main/java/org/asamk/signal/json/JsonSyncMessage.java +++ b/src/main/java/org/asamk/signal/json/JsonSyncMessage.java @@ -2,6 +2,7 @@ import com.fasterxml.jackson.annotation.JsonInclude; +import org.asamk.signal.manager.Manager; import org.asamk.signal.manager.api.GroupId; import org.asamk.signal.manager.api.MessageEnvelope; import org.asamk.signal.manager.api.RecipientAddress; @@ -23,9 +24,9 @@ record JsonSyncMessage( @JsonInclude(JsonInclude.Include.NON_NULL) JsonSyncMessageType type ) { - static JsonSyncMessage from(MessageEnvelope.Sync syncMessage) { + static JsonSyncMessage from(MessageEnvelope.Sync syncMessage, Manager m) { final var sentMessage = syncMessage.sent().isPresent() && syncMessage.sent().get().story().isEmpty() - ? JsonSyncDataMessage.from(syncMessage.sent().get()) + ? JsonSyncDataMessage.from(syncMessage.sent().get(), m) : null; final var sentStoryMessage = syncMessage.sent().isPresent() && syncMessage.sent().get().story().isPresent() ? JsonSyncStoryMessage.from(syncMessage.sent().get())