X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/7b5b5776f014db0ad18fb6af909c63bbf2293c88..d356d92b5eb24f7340055f766455b943c274bc50:/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 1c3d91ba..0c38cf7d 100644 --- a/src/main/java/org/asamk/signal/commands/SendCommand.java +++ b/src/main/java/org/asamk/signal/commands/SendCommand.java @@ -35,7 +35,7 @@ import static org.asamk.signal.util.SendMessageResultUtils.outputResult; public class SendCommand implements JsonRpcLocalCommand { - private final static Logger logger = LoggerFactory.getLogger(SendCommand.class); + private static final Logger logger = LoggerFactory.getLogger(SendCommand.class); @Override public String getName() { @@ -47,15 +47,20 @@ public class SendCommand implements JsonRpcLocalCommand { subparser.help("Send a message to another user or group."); subparser.addArgument("recipient").help("Specify the recipients' phone number.").nargs("*"); subparser.addArgument("-g", "--group-id", "--group").help("Specify the recipient group ID.").nargs("*"); + subparser.addArgument("-u", "--username").help("Specify the recipient username or username link.").nargs("*"); subparser.addArgument("--note-to-self") .help("Send the message to self without notification.") .action(Arguments.storeTrue()); + subparser.addArgument("--notify-self") + .help("If self is part of recipients/groups send a normal message, not a sync message.") + .action(Arguments.storeTrue()); var mut = subparser.addMutuallyExclusiveGroup(); mut.addArgument("-m", "--message").help("Specify the message to be sent."); mut.addArgument("--message-from-stdin") .action(Arguments.storeTrue()) .help("Read the message from standard input."); + subparser.addArgument("-a", "--attachment") .nargs("*") .help("Add an attachment. " @@ -80,7 +85,7 @@ public class SendCommand implements JsonRpcLocalCommand { .help("Quote with mention of another group member (syntax: start:length:recipientNumber)"); subparser.addArgument("--quote-attachment") .nargs("*") - .help("Specify the attachments of the original message (syntax: contentType[:filename[:previewFile]], e.g. 'audio/aac' or 'image/png:test.png:/tmp/preview.jpg'."); + .help("Specify the attachments of the original message (syntax: contentType[:filename[:previewFile]]), e.g. 'audio/aac' or 'image/png:test.png:/tmp/preview.jpg'."); subparser.addArgument("--quote-text-style") .nargs("*") .help("Quote with style parts of the message text (syntax: start:length:STYLE)"); @@ -103,14 +108,17 @@ public class SendCommand implements JsonRpcLocalCommand { public void handleCommand( final Namespace ns, final Manager m, final OutputWriter outputWriter ) throws CommandException { + final var notifySelf = Boolean.TRUE.equals(ns.getBoolean("notify-self")); final var isNoteToSelf = Boolean.TRUE.equals(ns.getBoolean("note-to-self")); final var recipientStrings = ns.getList("recipient"); final var groupIdStrings = ns.getList("group-id"); + final var usernameStrings = ns.getList("username"); final var recipientIdentifiers = CommandUtil.getRecipientIdentifiers(m, isNoteToSelf, recipientStrings, - groupIdStrings); + groupIdStrings, + usernameStrings); final var isEndSession = Boolean.TRUE.equals(ns.getBoolean("end-session")); if (isEndSession) { @@ -232,7 +240,7 @@ public class SendCommand implements JsonRpcLocalCommand { textStyles); var results = editTimestamp != null ? m.sendEditMessage(message, recipientIdentifiers, editTimestamp) - : m.sendMessage(message, recipientIdentifiers); + : m.sendMessage(message, recipientIdentifiers, notifySelf); outputResult(outputWriter, results); } catch (AttachmentInvalidException | IOException e) { throw new UnexpectedErrorException("Failed to send message: " + e.getMessage() + " (" + e.getClass()