]> nmode's Git Repositories - signal-cli/blobdiff - src/main/java/org/asamk/signal/json/JsonAttachment.java
add group info on json message
[signal-cli] / src / main / java / org / asamk / signal / json / JsonAttachment.java
index b78722d1249a87ef1da1e2549b5a8a146349b6eb..c75b3987700c18cbff3e72fe8573656b1ce16bb9 100644 (file)
@@ -1,25 +1,34 @@
 package org.asamk.signal.json;
 
-import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
+import org.asamk.signal.manager.api.MessageEnvelope;
 
-record JsonAttachment(String contentType, String filename, String id, Long size) {
+record JsonAttachment(
+        String contentType,
+        String filename,
+        String id,
+        Long size,
+        Integer width,
+        Integer height,
+        String caption,
+        Long uploadTimestamp
+) {
 
-    static JsonAttachment from(SignalServiceAttachment attachment) {
-        if (attachment.isPointer()) {
-            final var pointer = attachment.asPointer();
-            final var id = pointer.getRemoteId().toString();
-            final var filename = pointer.getFileName().orNull();
-            final var size = pointer.getSize().transform(Integer::longValue).orNull();
-            return new JsonAttachment(attachment.getContentType(), filename, id, size);
-        } else {
-            final var stream = attachment.asStream();
-            final var filename = stream.getFileName().orNull();
-            final var size = stream.getLength();
-            return new JsonAttachment(attachment.getContentType(), filename, null, size);
-        }
-    }
+    static JsonAttachment from(MessageEnvelope.Data.Attachment attachment) {
+        final var id = attachment.id().orElse(null);
+        final var filename = attachment.fileName().orElse(null);
+        final var size = attachment.size().orElse(null);
+        final var width = attachment.width().orElse(null);
+        final var height = attachment.height().orElse(null);
+        final var caption = attachment.caption().orElse(null);
+        final var uploadTimestamp = attachment.uploadTimestamp().orElse(null);
 
-    static JsonAttachment from(String filename) {
-        return new JsonAttachment(filename, null, null, null);
+        return new JsonAttachment(attachment.contentType(),
+                filename,
+                id,
+                size,
+                width,
+                height,
+                caption,
+                uploadTimestamp);
     }
 }