]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/ReceiveMessageHandler.java
Quotes, Mentions and Reactions in non-daemon JSON mode (#389)
[signal-cli] / src / main / java / org / asamk / signal / ReceiveMessageHandler.java
index 2e9654a0efbc3529a66bc429102ae41217966ad6..f961fa1fdbed5cdcee7692eb995ca8dfa282085d 100644 (file)
@@ -1,5 +1,6 @@
 package org.asamk.signal;
 
+import org.asamk.signal.manager.GroupUtils;
 import org.asamk.signal.manager.Manager;
 import org.asamk.signal.storage.contacts.ContactInfo;
 import org.asamk.signal.storage.groups.GroupInfo;
@@ -380,7 +381,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
                 }
             } else if (groupContext.getGroupV2().isPresent()) {
                 final SignalServiceGroupV2 groupInfo = groupContext.getGroupV2().get();
-                byte[] groupId = m.getGroupId(groupInfo.getMasterKey());
+                byte[] groupId = GroupUtils.getGroupId(groupInfo.getMasterKey());
                 System.out.println("  Id: " + Base64.encodeBytes(groupId));
                 GroupInfo group = m.getGroup(groupId);
                 if (group != null) {
@@ -446,14 +447,20 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
         if (message.getQuote().isPresent()) {
             SignalServiceDataMessage.Quote quote = message.getQuote().get();
             System.out.println("Quote: (" + quote.getId() + ")");
-            System.out.println(" Author: " + quote.getAuthor().getLegacyIdentifier());
+            System.out.println(" Author: " + m.resolveSignalServiceAddress(quote.getAuthor()).getLegacyIdentifier());
             System.out.println(" Text: " + quote.getText());
+            if (quote.getMentions().size() > 0) {
+                System.out.println(" Mentions: ");
+                for (SignalServiceDataMessage.Mention mention : quote.getMentions()) {
+                    printMention(mention, m);
+                }
+            }
             if (quote.getAttachments().size() > 0) {
                 System.out.println(" Attachments: ");
                 for (SignalServiceDataMessage.Quote.QuotedAttachment attachment : quote.getAttachments()) {
-                    System.out.println("  Filename: " + attachment.getFileName());
-                    System.out.println("  Type: " + attachment.getContentType());
-                    System.out.println("  Thumbnail:");
+                    System.out.println(" - Filename: " + attachment.getFileName());
+                    System.out.println("   Type: " + attachment.getContentType());
+                    System.out.println("   Thumbnail:");
                     if (attachment.getThumbnail() != null) {
                         printAttachment(attachment.getThumbnail());
                     }
@@ -466,16 +473,9 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
             System.out.println("Remote delete message: timestamp = " + remoteDelete.getTargetSentTimestamp());
         }
         if (message.getMentions().isPresent()) {
-            final List<SignalServiceDataMessage.Mention> mentions = message.getMentions().get();
             System.out.println("Mentions: ");
-            for (SignalServiceDataMessage.Mention mention : mentions) {
-                System.out.println("- "
-                        + mention.getUuid()
-                        + ": "
-                        + mention.getStart()
-                        + " (length: "
-                        + mention.getLength()
-                        + ")");
+            for (SignalServiceDataMessage.Mention mention : message.getMentions().get()) {
+                printMention(mention, m);
             }
         }
 
@@ -487,6 +487,18 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
         }
     }
 
+    private void printMention(SignalServiceDataMessage.Mention mention, Manager m) {
+        System.out.println("- "
+                + m.resolveSignalServiceAddress(
+                        new SignalServiceAddress(mention.getUuid(), null)
+                ).getLegacyIdentifier()
+                + ": "
+                + mention.getStart()
+                + " (length: "
+                + mention.getLength()
+                + ")");
+    }
+
     private void printAttachment(SignalServiceAttachment attachment) {
         System.out.println("- " + attachment.getContentType() + " (" + (attachment.isPointer() ? "Pointer" : "") + (
                 attachment.isStream() ? "Stream" : ""