X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/0f701df91f0c76059bd249ad2df0069ec9497061..b178c7c67aea7bf334cbf0d54a4666af0a65b5d9:/src/main/java/org/asamk/signal/commands/SendCommand.java diff --git a/src/main/java/org/asamk/signal/commands/SendCommand.java b/src/main/java/org/asamk/signal/commands/SendCommand.java index 5e81047a..4ad75e95 100644 --- a/src/main/java/org/asamk/signal/commands/SendCommand.java +++ b/src/main/java/org/asamk/signal/commands/SendCommand.java @@ -72,6 +72,11 @@ public class SendCommand implements JsonRpcLocalCommand { .nargs("*") .help("Quote with mention of another group member (syntax: start:length:recipientNumber)"); subparser.addArgument("--sticker").help("Send a sticker (syntax: stickerPackId:stickerId)"); + subparser.addArgument("--preview-url") + .help("Specify the url for the link preview (the same url must also appear in the message body)."); + subparser.addArgument("--preview-title").help("Specify the title for the link preview (mandatory)."); + subparser.addArgument("--preview-description").help("Specify the description for the link preview (optional)."); + subparser.addArgument("--preview-image").help("Specify the image file for the link preview (optional)."); } @Override @@ -146,12 +151,27 @@ public class SendCommand implements JsonRpcLocalCommand { quote = null; } + final List previews; + String previewUrl = ns.getString("preview-url"); + if (previewUrl != null) { + String previewTitle = ns.getString("preview-title"); + String previewDescription = ns.getString("preview-description"); + String previewImage = ns.getString("preview-image"); + previews = List.of(new Message.Preview(previewUrl, + Optional.ofNullable(previewTitle).orElse(""), + Optional.ofNullable(previewDescription).orElse(""), + Optional.ofNullable(previewImage))); + } else { + previews = List.of(); + } + try { var results = m.sendMessage(new Message(messageText == null ? "" : messageText, attachments, mentions, Optional.ofNullable(quote), - Optional.ofNullable(sticker)), recipientIdentifiers); + Optional.ofNullable(sticker), + previews), recipientIdentifiers); outputResult(outputWriter, results); } catch (AttachmentInvalidException | IOException e) { throw new UnexpectedErrorException("Failed to send message: " + e.getMessage() + " (" + e.getClass()