X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/2c586266ffe37c139b80197c2c7baaa8daea3e92..8a31b7f2c153e89532010b9ab58eb045ddfe43fe:/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 3fd00eaf..9534f182 100644 --- a/src/main/java/org/asamk/signal/commands/SendCommand.java +++ b/src/main/java/org/asamk/signal/commands/SendCommand.java @@ -80,6 +80,13 @@ public class SendCommand implements JsonRpcLocalCommand { 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)."); + subparser.addArgument("--story-timestamp") + .type(long.class) + .help("Specify the timestamp of a story to reply to."); + subparser.addArgument("--story-author").help("Specify the number of the author of the story."); + subparser.addArgument("--edit-timestamp") + .type(long.class) + .help("Specify the timestamp of a previous message with the recipient or group to send an edited message."); } @Override @@ -170,18 +177,34 @@ public class SendCommand implements JsonRpcLocalCommand { previews = List.of(); } + final Message.StoryReply storyReply; + final var storyReplyTimestamp = ns.getLong("story-timestamp"); + if (storyReplyTimestamp != null) { + final var storyAuthor = ns.getString("story-author"); + storyReply = new Message.StoryReply(storyReplyTimestamp, + CommandUtil.getSingleRecipientIdentifier(storyAuthor, m.getSelfNumber())); + } else { + storyReply = null; + } + if (messageText.isEmpty() && attachments.isEmpty() && sticker == null && quote == null) { throw new UserErrorException( "Sending empty message is not allowed, either a message, attachment or sticker must be given."); } + final var editTimestamp = ns.getLong("edit-timestamp"); + try { - var results = m.sendMessage(new Message(messageText, + final var message = new Message(messageText, attachments, mentions, Optional.ofNullable(quote), Optional.ofNullable(sticker), - previews), recipientIdentifiers); + previews, + Optional.ofNullable((storyReply))); + var results = editTimestamp != null + ? m.sendEditMessage(message, recipientIdentifiers, editTimestamp) + : m.sendMessage(message, recipientIdentifiers); outputResult(outputWriter, results); } catch (AttachmentInvalidException | IOException e) { throw new UnexpectedErrorException("Failed to send message: " + e.getMessage() + " (" + e.getClass()