X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/f60a10eb6e40921c32045c1e38843d6b87f3d274..e2b7bda65ba728a0a747bb0bac6fbe1e56fd2de8:/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 308e564c..ab7ca246 100644 --- a/src/main/java/org/asamk/signal/commands/SendCommand.java +++ b/src/main/java/org/asamk/signal/commands/SendCommand.java @@ -3,6 +3,7 @@ package org.asamk.signal.commands; import net.sourceforge.argparse4j.impl.Arguments; import net.sourceforge.argparse4j.inf.Namespace; import net.sourceforge.argparse4j.inf.Subparser; + import org.asamk.Signal; import org.asamk.signal.AttachmentInvalidException; import org.asamk.signal.GroupIdFormatException; @@ -12,13 +13,21 @@ import org.asamk.signal.util.IOUtils; import org.asamk.signal.util.Util; import org.freedesktop.dbus.exceptions.DBusExecutionException; import org.whispersystems.signalservice.api.push.exceptions.EncapsulatedExceptions; +import org.whispersystems.signalservice.api.util.InvalidNumberException; import java.io.IOException; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; -import static org.asamk.signal.util.ErrorUtils.*; +import static org.asamk.signal.util.ErrorUtils.handleAssertionError; +import static org.asamk.signal.util.ErrorUtils.handleDBusExecutionException; +import static org.asamk.signal.util.ErrorUtils.handleEncapsulatedExceptions; +import static org.asamk.signal.util.ErrorUtils.handleGroupIdFormatException; +import static org.asamk.signal.util.ErrorUtils.handleGroupNotFoundException; +import static org.asamk.signal.util.ErrorUtils.handleIOException; +import static org.asamk.signal.util.ErrorUtils.handleInvalidNumberException; +import static org.asamk.signal.util.ErrorUtils.handleNotAGroupMemberException; public class SendCommand implements DbusCommand { @@ -46,7 +55,7 @@ public class SendCommand implements DbusCommand { return 1; } - if (ns.getList("recipient") == null || ns.getList("recipient").size() == 0) { + if ((ns.getList("recipient") == null || ns.getList("recipient").size() == 0) && (ns.getBoolean("endsession") || ns.getString("group") == null)) { System.err.println("No recipients given"); System.err.println("Aborting sending."); return 1; @@ -54,7 +63,7 @@ public class SendCommand implements DbusCommand { if (ns.getBoolean("endsession")) { try { - signal.sendEndSessionMessage(ns.getList("recipient")); + signal.sendEndSessionMessage(ns.getList("recipient")); return 0; } catch (IOException e) { handleIOException(e); @@ -68,6 +77,9 @@ public class SendCommand implements DbusCommand { } catch (DBusExecutionException e) { handleDBusExecutionException(e); return 1; + } catch (InvalidNumberException e) { + handleInvalidNumberException(e); + return 1; } } @@ -91,7 +103,7 @@ public class SendCommand implements DbusCommand { byte[] groupId = Util.decodeGroupId(ns.getString("group")); signal.sendGroupMessage(messageText, attachments, groupId); } else { - signal.sendMessage(messageText, attachments, ns.getList("recipient")); + signal.sendMessage(messageText, attachments, ns.getList("recipient")); } return 0; } catch (IOException e) { @@ -119,6 +131,9 @@ public class SendCommand implements DbusCommand { } catch (GroupIdFormatException e) { handleGroupIdFormatException(e); return 1; + } catch (InvalidNumberException e) { + handleInvalidNumberException(e); + return 1; } } }