From eb401df4a28e3378754c86af29b290dd8377adcb Mon Sep 17 00:00:00 2001 From: david-harley Date: Tue, 12 Jan 2021 09:36:17 +1030 Subject: [PATCH] Re-enabled --json for receive and getUserStatuses commands as deprecated --- .../asamk/signal/commands/GetUserStatusCommand.java | 11 ++++++++++- .../org/asamk/signal/commands/ReceiveCommand.java | 12 ++++++++++-- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java b/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java index 2182b384..4200335a 100644 --- a/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java +++ b/src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java @@ -21,6 +21,9 @@ public class GetUserStatusCommand implements LocalCommand { public void attachToSubparser(final Subparser subparser) { subparser.addArgument("number").help("Phone number").nargs("+"); subparser.help("Check if the specified phone number/s have been registered"); + subparser.addArgument("--json") + .help("WARNING: This parameter is now deprecated! Please use the \"output\" option instead.\n\nOutput received messages in json format, one json object per line.") + .action(Arguments.storeTrue()); } @Override @@ -38,8 +41,14 @@ public class GetUserStatusCommand implements LocalCommand { return 1; } + boolean inJson = ns.getString("output").equals("json"); + if (ns.getBoolean("json")) { + inJson = true; + System.out.println("WARNING: This parameter is now deprecated! Please use the \"output\" parameter instead."); + } + // Output - if (ns.getString("output").equals("json")) { + if (inJson) { List objects = registered.entrySet() .stream() .map(entry -> new JsonIsRegistered(entry.getKey(), entry.getValue())) diff --git a/src/main/java/org/asamk/signal/commands/ReceiveCommand.java b/src/main/java/org/asamk/signal/commands/ReceiveCommand.java index febeb14c..fc844f84 100644 --- a/src/main/java/org/asamk/signal/commands/ReceiveCommand.java +++ b/src/main/java/org/asamk/signal/commands/ReceiveCommand.java @@ -35,11 +35,17 @@ public class ReceiveCommand implements ExtendedDbusCommand, LocalCommand { subparser.addArgument("--ignore-attachments") .help("Don’t download attachments of received messages.") .action(Arguments.storeTrue()); + subparser.addArgument("--json") + .help("WARNING: This parameter is now deprecated! Please use the \"output\" option instead.\n\nOutput received messages in json format, one json object per line.") + .action(Arguments.storeTrue()); } public int handleCommand(final Namespace ns, final Signal signal, DBusConnection dbusconnection) { final ObjectMapper jsonProcessor; - if (ns.getString("output").equals("json")) { + + boolean inJson = ns.getString("output").equals("json") || ns.getBoolean("json"); + + if (inJson) { jsonProcessor = new ObjectMapper(); jsonProcessor.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); jsonProcessor.disable(JsonGenerator.Feature.AUTO_CLOSE_TARGET); @@ -143,6 +149,8 @@ public class ReceiveCommand implements ExtendedDbusCommand, LocalCommand { @Override public int handleCommand(final Namespace ns, final Manager m) { + boolean inJson = ns.getString("output").equals("json") || ns.getBoolean("json"); + double timeout = 5; if (ns.getDouble("timeout") != null) { timeout = ns.getDouble("timeout"); @@ -154,7 +162,7 @@ public class ReceiveCommand implements ExtendedDbusCommand, LocalCommand { } boolean ignoreAttachments = ns.getBoolean("ignore_attachments"); try { - final Manager.ReceiveMessageHandler handler = ns.getString("output").equals("json") + final Manager.ReceiveMessageHandler handler = inJson ? new JsonReceiveMessageHandler(m) : new ReceiveMessageHandler(m); m.receiveMessages((long) (timeout * 1000),