X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/32818a8608f5bddc46ad5c7dc442f509c939791c..abebffb2cd99678bd17498fea2d1f0749b602c8b:/src/main/java/org/asamk/signal/ReceiveMessageHandler.java diff --git a/src/main/java/org/asamk/signal/ReceiveMessageHandler.java b/src/main/java/org/asamk/signal/ReceiveMessageHandler.java index 26e12809..390087f9 100644 --- a/src/main/java/org/asamk/signal/ReceiveMessageHandler.java +++ b/src/main/java/org/asamk/signal/ReceiveMessageHandler.java @@ -1,16 +1,17 @@ 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.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; import org.slf4j.helpers.MessageFormatter; import java.util.ArrayList; -import java.util.Base64; import java.util.stream.Collectors; public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { @@ -25,6 +26,12 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { @Override public void handleMessage(MessageEnvelope envelope, Throwable exception) { + synchronized (writer) { + handleMessageInternal(envelope, exception); + } + } + + private void handleMessageInternal(MessageEnvelope envelope, Throwable exception) { var source = envelope.sourceAddress(); writer.println("Envelope from: {} (device: {})", source.map(this::formatContact).orElse("unknown source"), @@ -43,13 +50,13 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { "The user’s key is untrusted, either the user has reinstalled Signal or a third party sent this message."); final var recipientName = e.getSender().getLegacyIdentifier(); writer.println( - "Use 'signal-cli -u {} listIdentities -n {}', verify the key and run 'signal-cli -u {} trust -v \"FINGER_PRINT\" {}' to mark it as trusted", + "Use 'signal-cli -a {} listIdentities -n {}', verify the key and run 'signal-cli -a {} trust -v \"FINGER_PRINT\" {}' to mark it as trusted", m.getSelfNumber(), recipientName, m.getSelfNumber(), recipientName); writer.println( - "If you don't care about security, use 'signal-cli -u {} trust -a {}' to trust it without verification", + "If you don't care about security, use 'signal-cli -a {} trust -a {}' to trust it without verification", m.getSelfNumber(), recipientName); } else { @@ -134,9 +141,12 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { 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(); @@ -291,8 +301,10 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { .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 (syncMessage.blocked().isPresent()) { writer.println("Received sync message with block list"); @@ -302,7 +314,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { writer.println("- {}", address.getLegacyIdentifier()); } for (var groupId : blockedList.groupIds()) { - writer.println("- {}", groupId); + writer.println("- {}", groupId.toBase64()); } } if (syncMessage.viewOnceOpen().isPresent()) { @@ -342,8 +354,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler { private void printSticker( final PlainTextWriter writer, final MessageEnvelope.Data.Sticker sticker ) { - writer.println("Pack id: {}", Base64.getEncoder().encodeToString(sticker.packId())); - writer.println("Pack key: {}", Base64.getEncoder().encodeToString(sticker.packKey())); + writer.println("Pack id: {}", Hex.toStringCondensed(sticker.packId().serialize())); writer.println("Sticker id: {}", sticker.stickerId()); }