X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/2e4d346bc826da5c35a17841772cf81ba4f98101..HEAD:/src/main/java/org/asamk/signal/commands/GetAttachmentCommand.java diff --git a/src/main/java/org/asamk/signal/commands/GetAttachmentCommand.java b/src/main/java/org/asamk/signal/commands/GetAttachmentCommand.java index 560be9f9..cf716194 100644 --- a/src/main/java/org/asamk/signal/commands/GetAttachmentCommand.java +++ b/src/main/java/org/asamk/signal/commands/GetAttachmentCommand.java @@ -26,15 +26,11 @@ public class GetAttachmentCommand implements JsonRpcLocalCommand { @Override public void attachToSubparser(final Subparser subparser) { - subparser.addArgument("--id") - .required(true) - .help("The ID of the attachment file."); - var mut = subparser.addMutuallyExclusiveGroup() - .required(true); - mut.addArgument("--recipient") - .help("Sender of the attachment"); - mut.addArgument("-g", "--group-id") - .help("Group in which the attachment was received"); + subparser.help("Retrieve an already downloaded attachment base64 encoded."); + subparser.addArgument("--id").required(true).help("The ID of the attachment file."); + var mut = subparser.addMutuallyExclusiveGroup().required(true); + mut.addArgument("--recipient").help("Sender of the attachment"); + mut.addArgument("-g", "--group-id").help("Group in which the attachment was received"); } @Override @@ -46,13 +42,12 @@ public class GetAttachmentCommand implements JsonRpcLocalCommand { final var id = ns.getString("id"); - try(InputStream attachment = m.retrieveAttachment(id)) { - if (outputWriter instanceof PlainTextWriter writer) { - final var bytes = attachment.readAllBytes(); - final var base64 = Base64.getEncoder().encodeToString(bytes); - writer.println(base64); - } else if (outputWriter instanceof JsonWriter writer) { - writer.write(new JsonAttachmentData(attachment)); + try (InputStream attachment = m.retrieveAttachment(id)) { + final var bytes = attachment.readAllBytes(); + final var base64 = Base64.getEncoder().encodeToString(bytes); + switch (outputWriter) { + case PlainTextWriter writer -> writer.println(base64); + case JsonWriter writer -> writer.write(new JsonAttachmentData(base64)); } } catch (FileNotFoundException ex) { throw new UserErrorException("Could not find attachment with ID: " + id, ex);