X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/51c130b40651b1d01caee7175235f2632f5aa73e..6d016bcfc97c49deb76fa2c3a07ce62aee4ca8d8:/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 176c2d92..43166b5b 100644 --- a/src/main/java/org/asamk/signal/commands/SendCommand.java +++ b/src/main/java/org/asamk/signal/commands/SendCommand.java @@ -3,22 +3,20 @@ 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; -import org.asamk.signal.GroupNotFoundException; -import org.asamk.signal.NotAGroupMemberException; +import org.asamk.signal.util.GroupIdFormatException; 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 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.handleGroupIdFormatException; public class SendCommand implements DbusCommand { @@ -54,19 +52,13 @@ 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); - return 3; - } catch (EncapsulatedExceptions e) { - handleEncapsulatedExceptions(e); - return 3; } catch (AssertionError e) { handleAssertionError(e); return 1; } catch (DBusExecutionException e) { - handleDBusExecutionException(e); + System.err.println("Failed to send message: " + e.getMessage()); return 1; } } @@ -82,42 +74,42 @@ public class SendCommand implements DbusCommand { } } + List attachments = ns.getList("attachment"); + if (attachments == null) { + attachments = new ArrayList<>(); + } + try { - List attachments = ns.getList("attachment"); - if (attachments == null) { - attachments = new ArrayList<>(); - } if (ns.getString("group") != null) { - byte[] groupId = Util.decodeGroupId(ns.getString("group")); - signal.sendGroupMessage(messageText, attachments, groupId); - } else { - signal.sendMessage(messageText, attachments, ns.getList("recipient")); + byte[] groupId; + try { + groupId = Util.decodeGroupId(ns.getString("group")); + } catch (GroupIdFormatException e) { + handleGroupIdFormatException(e); + return 1; + } + + long timestamp = signal.sendGroupMessage(messageText, attachments, groupId); + System.out.println(timestamp); + return 0; } - return 0; - } catch (IOException e) { - handleIOException(e); - return 3; - } catch (EncapsulatedExceptions e) { - handleEncapsulatedExceptions(e); - return 3; } catch (AssertionError e) { handleAssertionError(e); return 1; - } catch (GroupNotFoundException e) { - handleGroupNotFoundException(e); - return 1; - } catch (NotAGroupMemberException e) { - handleNotAGroupMemberException(e); + } catch (DBusExecutionException e) { + System.err.println("Failed to send message: " + e.getMessage()); return 1; - } catch (AttachmentInvalidException e) { - System.err.println("Failed to add attachment: " + e.getMessage()); - System.err.println("Aborting sending."); + } + + try { + long timestamp = signal.sendMessage(messageText, attachments, ns.getList("recipient")); + System.out.println(timestamp); + return 0; + } catch (AssertionError e) { + handleAssertionError(e); return 1; } catch (DBusExecutionException e) { - handleDBusExecutionException(e); - return 1; - } catch (GroupIdFormatException e) { - handleGroupIdFormatException(e); + System.err.println("Failed to send message: " + e.getMessage()); return 1; } }