From: Pim Otte Date: Mon, 20 Feb 2017 13:28:41 +0000 (+0100) Subject: Add ListGroups command X-Git-Tag: v0.5.6~22 X-Git-Url: https://git.nmode.ca/signal-cli/commitdiff_plain/b0d7daeca202690bc9ad9a2259e910eb1f192824 Add ListGroups command Option: -d/--detailed to display group members --- diff --git a/src/main/java/org/asamk/signal/Main.java b/src/main/java/org/asamk/signal/Main.java index 2377e125..a0059824 100644 --- a/src/main/java/org/asamk/signal/Main.java +++ b/src/main/java/org/asamk/signal/Main.java @@ -491,6 +491,22 @@ public class Main { return 3; } + break; + case "listGroups": + if (dBusConn != null) { + System.err.println("listGroups is not yet implemented via dbus"); + return 1; + } + if (!m.isRegistered()) { + System.err.println("User is not registered."); + return 1; + } + + List groups = m.getGroups(); + + for (GroupInfo group : groups) { + printGroup(group, ns.getBoolean("detailed")); + } break; case "listIdentities": if (dBusConn != null) { @@ -622,6 +638,17 @@ public class Main { System.out.println(String.format("%s: %s Added: %s Fingerprint: %s Safety Number: %s", theirUsername, theirId.trustLevel, theirId.added, Hex.toStringCondensed(theirId.getFingerprint()), digits)); } + + private static void printGroup(GroupInfo group, boolean detailed) { + System.out.println(String.format("Group id: %s\n Group name: %s \n active: %s", + Base64.encodeBytes(group.groupId), group.name, group.active)); + if (detailed) { + System.out.println(" Members:"); + for (String member : group.members) { + System.out.println(" " + member); + } + } + } private static String formatSafetyNumber(String digits) { final int partCount = 12; @@ -751,6 +778,11 @@ public class Main { parserUpdateGroup.addArgument("-m", "--member") .nargs("*") .help("Specify one or more members to add to the group"); + + Subparser parserListGroups = subparsers.addParser("listGroups"); + parserListGroups.addArgument("-d", "--detailed").action(Arguments.storeTrue()) + .help("List members of each group"); + parserListGroups.help("List group name and ids"); Subparser parserListIdentities = subparsers.addParser("listIdentities"); parserListIdentities.addArgument("-n", "--number") diff --git a/src/main/java/org/asamk/signal/Manager.java b/src/main/java/org/asamk/signal/Manager.java index 578565ef..2b2d1d70 100644 --- a/src/main/java/org/asamk/signal/Manager.java +++ b/src/main/java/org/asamk/signal/Manager.java @@ -580,6 +580,10 @@ class Manager implements Signal { } throw new NotAGroupMemberException(groupId, g.name); } + + public List getGroups() { + return groupStore.getGroups(); + } @Override public void sendGroupMessage(String messageText, List attachments,