]> nmode's Git Repositories - signal-cli/blobdiff - lib/src/main/java/org/asamk/signal/manager/AttachmentStore.java
Add command to get an attachment (#1080)
[signal-cli] / lib / src / main / java / org / asamk / signal / manager / AttachmentStore.java
index 949e28629f9492202d5af8c36799883892a7ea4e..e3c96ad6eb66d36a3525642bfb861623b193616d 100644 (file)
@@ -2,8 +2,10 @@ package org.asamk.signal.manager;
 
 import org.asamk.signal.manager.util.IOUtils;
 import org.asamk.signal.manager.util.MimeUtils;
+import org.asamk.signal.manager.util.Utils;
 import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer;
 import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentRemoteId;
+import org.whispersystems.signalservice.api.util.StreamDetails;
 
 import java.io.File;
 import java.io.FileOutputStream;
@@ -39,6 +41,14 @@ public class AttachmentStore {
                 Optional.ofNullable(pointer.getContentType()));
     }
 
+    public StreamDetails retrieveAttachment(final String id) throws IOException {
+        final var attachmentFile = new File(attachmentsPath, id);
+        if (!attachmentFile.exists()) {
+            return null;
+        }
+        return Utils.createStreamDetailsFromFile(attachmentFile);
+    }
+
     private void storeAttachment(final File attachmentFile, final AttachmentStorer storer) throws IOException {
         createAttachmentsDir();
         try (OutputStream output = new FileOutputStream(attachmentFile)) {