X-Git-Url: https://git.nmode.ca/signal-cli/blobdiff_plain/c5cf78a50ad213fb21728f4d648de51dfac7f07e..c68cfe7d7c15eef53ae047e80672282e546759dd:/src/main/java/org/asamk/signal/Main.java diff --git a/src/main/java/org/asamk/signal/Main.java b/src/main/java/org/asamk/signal/Main.java index d67bfca0..2377e125 100644 --- a/src/main/java/org/asamk/signal/Main.java +++ b/src/main/java/org/asamk/signal/Main.java @@ -88,6 +88,9 @@ public class Main { ts = (Signal) dBusConn.getRemoteObject( SIGNAL_BUSNAME, SIGNAL_OBJECTPATH, Signal.class); + } catch (UnsatisfiedLinkError e) { + System.err.println("Missing native library dependency for dbus service: " + e.getMessage()); + return 1; } catch (DBusException e) { e.printStackTrace(); if (dBusConn != null) { @@ -135,6 +138,38 @@ public class Main { return 3; } break; + case "unregister": + if (dBusConn != null) { + System.err.println("unregister is not yet implemented via dbus"); + return 1; + } + if (!m.isRegistered()) { + System.err.println("User is not registered."); + return 1; + } + try { + m.unregister(); + } catch (IOException e) { + System.err.println("Unregister error: " + e.getMessage()); + return 3; + } + break; + case "updateAccount": + if (dBusConn != null) { + System.err.println("updateAccount is not yet implemented via dbus"); + return 1; + } + if (!m.isRegistered()) { + System.err.println("User is not registered."); + return 1; + } + try { + m.updateAccountAttributes(); + } catch (IOException e) { + System.err.println("UpdateAccount error: " + e.getMessage()); + return 3; + } + break; case "verify": if (dBusConn != null) { System.err.println("verify is not yet implemented via dbus"); @@ -350,6 +385,9 @@ public class Main { System.out.println(); } }); + } catch (UnsatisfiedLinkError e) { + System.err.println("Missing native library dependency for dbus service: " + e.getMessage()); + return 1; } catch (DBusException e) { e.printStackTrace(); return 1; @@ -375,8 +413,9 @@ public class Main { returnOnTimeout = false; timeout = 3600; } + boolean ignoreAttachments = ns.getBoolean("ignore_attachments"); try { - m.receiveMessages((long) (timeout * 1000), TimeUnit.MILLISECONDS, returnOnTimeout, new ReceiveMessageHandler(m)); + m.receiveMessages((long) (timeout * 1000), TimeUnit.MILLISECONDS, returnOnTimeout, ignoreAttachments, new ReceiveMessageHandler(m)); } catch (IOException e) { System.err.println("Error while receiving messages: " + e.getMessage()); return 3; @@ -545,12 +584,16 @@ public class Main { conn = DBusConnection.getConnection(busType); conn.exportObject(SIGNAL_OBJECTPATH, m); conn.requestBusName(SIGNAL_BUSNAME); + } catch (UnsatisfiedLinkError e) { + System.err.println("Missing native library dependency for dbus service: " + e.getMessage()); + return 1; } catch (DBusException e) { e.printStackTrace(); return 2; } + ignoreAttachments = ns.getBoolean("ignore_attachments"); try { - m.receiveMessages(1, TimeUnit.HOURS, false, new DbusReceiveMessageHandler(m, conn)); + m.receiveMessages(1, TimeUnit.HOURS, false, ignoreAttachments, new DbusReceiveMessageHandler(m, conn)); } catch (IOException e) { System.err.println("Error while receiving messages: " + e.getMessage()); return 3; @@ -668,6 +711,12 @@ public class Main { .help("The verification should be done over voice, not sms.") .action(Arguments.storeTrue()); + Subparser parserUnregister = subparsers.addParser("unregister"); + parserUnregister.help("Unregister the current device from the signal server."); + + Subparser parserUpdateAccount = subparsers.addParser("updateAccount"); + parserUpdateAccount.help("Update the account attributes on the signal server."); + Subparser parserVerify = subparsers.addParser("verify"); parserVerify.addArgument("verificationCode") .help("The verification code you received via sms or voice call."); @@ -722,11 +771,17 @@ public class Main { parserReceive.addArgument("-t", "--timeout") .type(double.class) .help("Number of seconds to wait for new messages (negative values disable timeout)"); + parserReceive.addArgument("--ignore-attachments") + .help("Don’t download attachments of received messages.") + .action(Arguments.storeTrue()); Subparser parserDaemon = subparsers.addParser("daemon"); parserDaemon.addArgument("--system") .action(Arguments.storeTrue()) .help("Use DBus system bus instead of user bus."); + parserDaemon.addArgument("--ignore-attachments") + .help("Don’t download attachments of received messages.") + .action(Arguments.storeTrue()); try { Namespace ns = parser.parseArgs(args);