package org.asamk.signal;
import org.asamk.signal.manager.Manager;
-import org.asamk.signal.manager.UntrustedIdentityException;
import org.asamk.signal.manager.api.MessageEnvelope;
+import org.asamk.signal.manager.api.RecipientAddress;
import org.asamk.signal.manager.api.RecipientIdentifier;
+import org.asamk.signal.manager.api.UntrustedIdentityException;
import org.asamk.signal.manager.groups.GroupId;
-import org.asamk.signal.manager.storage.recipients.RecipientAddress;
import org.asamk.signal.output.PlainTextWriter;
import org.asamk.signal.util.DateUtils;
import org.asamk.signal.util.Hex;
var message = envelope.data().get();
printDataMessage(writer, message);
}
+ if (envelope.story().isPresent()) {
+ var message = envelope.story().get();
+ printStoryMessage(writer.indentedWriter(), message);
+ }
if (envelope.sync().isPresent()) {
writer.println("Received a sync message");
var syncMessage = envelope.sync().get();
final var groupContext = message.groupContext().get();
printGroupContext(writer.indentedWriter(), groupContext);
}
+ if (message.storyContext().isPresent()) {
+ writer.println("Story reply:");
+ final var storyContext = message.storyContext().get();
+ printStoryContext(writer.indentedWriter(), storyContext);
+ }
if (message.groupCallUpdate().isPresent()) {
writer.println("Group call update:");
final var groupCallUpdate = message.groupCallUpdate().get();
if (message.expiresInSeconds() > 0) {
writer.println("Expires in: {} seconds", message.expiresInSeconds());
}
- if (message.hasProfileKey()) {
+ if (message.isProfileKeyUpdate()) {
writer.println("Profile key update");
}
+ if (message.hasProfileKey()) {
+ writer.println("With profile key");
+ }
if (message.reaction().isPresent()) {
writer.println("Reaction:");
final var reaction = message.reaction().get();
}
}
+ private void printStoryMessage(
+ PlainTextWriter writer, MessageEnvelope.Story message
+ ) {
+ writer.println("Story: with replies: {}", message.allowsReplies());
+ if (message.groupId().isPresent()) {
+ writer.println("Group info:");
+ printGroupInfo(writer.indentedWriter(), message.groupId().get());
+ }
+ if (message.textAttachment().isPresent()) {
+ writer.println("Body: {}", message.textAttachment().get().text().orElse(""));
+
+ if (message.textAttachment().get().preview().isPresent()) {
+ writer.println("Preview:");
+ printPreview(writer.indentedWriter(), message.textAttachment().get().preview().get());
+ }
+ }
+ if (message.fileAttachment().isPresent()) {
+ writer.println("Attachments:");
+ printAttachment(writer.indentedWriter(), message.fileAttachment().get());
+ }
+ }
+
private void printTypingMessage(
final PlainTextWriter writer, final MessageEnvelope.Typing typingMessage
) {
.println("Expiration started at: {}",
DateUtils.formatTimestamp(sentTranscriptMessage.expirationStartTimestamp()));
}
- var message = sentTranscriptMessage.message();
- printDataMessage(writer.indentedWriter(), message);
+ if (sentTranscriptMessage.message().isPresent()) {
+ var message = sentTranscriptMessage.message().get();
+ printDataMessage(writer.indentedWriter(), message);
+ }
+ if (sentTranscriptMessage.story().isPresent()) {
+ var message = sentTranscriptMessage.story().get();
+ printStoryMessage(writer.indentedWriter(), message);
+ }
}
if (syncMessage.blocked().isPresent()) {
writer.println("Received sync message with block list");
writer.println("- {}", address.getLegacyIdentifier());
}
for (var groupId : blockedList.groupIds()) {
- writer.println("- {}", groupId);
+ writer.println("- {}", groupId.toBase64());
}
}
if (syncMessage.viewOnceOpen().isPresent()) {
writer.println("Type: {}", groupContext.isGroupUpdate() ? "UPDATE" : "DELIVER");
}
+ private void printStoryContext(
+ final PlainTextWriter writer, final MessageEnvelope.Data.StoryContext storyContext
+ ) {
+ writer.println("Sender: {}", formatContact(storyContext.author()));
+ writer.println("Sent timestamp: {}", storyContext.sentTimestamp());
+ }
+
private void printGroupInfo(final PlainTextWriter writer, final GroupId groupId) {
writer.println("Id: {}", groupId.toBase64());