]> nmode's Git Repositories - signal-cli/commitdiff
Download quote attachment thumbnails and slightly improve the quote output
authorAsamK <asamk@gmx.de>
Tue, 22 Dec 2020 23:18:21 +0000 (00:18 +0100)
committerAsamK <asamk@gmx.de>
Tue, 22 Dec 2020 23:18:28 +0000 (00:18 +0100)
src/main/java/org/asamk/signal/ReceiveMessageHandler.java
src/main/java/org/asamk/signal/manager/Manager.java

index 5925b2b8398141e086fa787e0be13ba953866c2b..7ef89d195845dda27b94127cd50783400aea974b 100644 (file)
@@ -452,9 +452,9 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
             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());
                     }
index ab063d1b89aa4fc161d991782e5a6925ae9ceb84..8a46846fe556a5f71868b3a21ef32e3d8e1e4b27 100644 (file)
@@ -1690,6 +1690,23 @@ public class Manager implements Closeable {
                 }
             }
         }
+        if (message.getQuote().isPresent()) {
+            final SignalServiceDataMessage.Quote quote = message.getQuote().get();
+
+            for (SignalServiceDataMessage.Quote.QuotedAttachment quotedAttachment : quote.getAttachments()) {
+                final SignalServiceAttachment attachment = quotedAttachment.getThumbnail();
+                if (attachment != null && attachment.isPointer()) {
+                    try {
+                        retrieveAttachment(attachment.asPointer());
+                    } catch (IOException | InvalidMessageException | MissingConfigurationException e) {
+                        System.err.println("Failed to retrieve attachment ("
+                                + attachment.asPointer().getRemoteId()
+                                + "): "
+                                + e.getMessage());
+                    }
+                }
+            }
+        }
         if (message.getSticker().isPresent()) {
             final SignalServiceDataMessage.Sticker messageSticker = message.getSticker().get();
             Sticker sticker = account.getStickerStore().getSticker(messageSticker.getPackId());