Files
signal-cli/src/main/java/org/asamk/signal/json/JsonAttachment.java
2021-10-27 14:39:40 +02:00

26 lines
1.0 KiB
Java

package org.asamk.signal.json;
import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
record JsonAttachment(String contentType, String filename, String id, Long size) {
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(String filename) {
return new JsonAttachment(filename, null, null, null);
}
}