import org.asamk.signal.manager.Manager;
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;
private void handleMessageInternal(MessageEnvelope envelope, Throwable exception) {
var source = envelope.sourceAddress();
- writer.println("Envelope from: {} (device: {})",
+ writer.println("Envelope from: {} (device: {}) to {}",
source.map(this::formatContact).orElse("unknown source"),
- envelope.sourceDevice());
+ envelope.sourceDevice(),
+ m.getSelfNumber());
writer.println("Timestamp: {}", DateUtils.formatTimestamp(envelope.timestamp()));
writer.println("Server timestamps: received: {} delivered: {}",
DateUtils.formatTimestamp(envelope.serverReceivedTimestamp()),
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();
}
}
+ 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
) {
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("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());