]> nmode's Git Repositories - signal-cli/commitdiff
Add ListGroups command
authorPim Otte <otte.pim@gmail.com>
Mon, 20 Feb 2017 13:28:41 +0000 (14:28 +0100)
committerAsamK <asamk@gmx.de>
Wed, 22 Feb 2017 20:20:10 +0000 (21:20 +0100)
Option: -d/--detailed to display group members

src/main/java/org/asamk/signal/Main.java
src/main/java/org/asamk/signal/Manager.java

index 2377e12581dde1774d9dd726ffe257d4146505cb..a0059824638d86e23742bd1be4919875a9c54aa2 100644 (file)
@@ -491,6 +491,22 @@ public class Main {
                         return 3;
                     }
 
                         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<GroupInfo> groups = m.getGroups();
+    
+                    for (GroupInfo group : groups) {
+                        printGroup(group, ns.getBoolean("detailed"));
+                    }
                     break;
                 case "listIdentities":
                     if (dBusConn != null) {
                     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));
     }
         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;
 
     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");
         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")
 
         Subparser parserListIdentities = subparsers.addParser("listIdentities");
         parserListIdentities.addArgument("-n", "--number")
index 578565efd78fe3a48f2567e1e1aef7a48e43788b..2b2d1d70d4c37d699eab31f061260b8985e44a49 100644 (file)
@@ -580,6 +580,10 @@ class Manager implements Signal {
         }
         throw new NotAGroupMemberException(groupId, g.name);
     }
         }
         throw new NotAGroupMemberException(groupId, g.name);
     }
+    
+    public List<GroupInfo> getGroups() {
+       return groupStore.getGroups();
+    }
 
     @Override
     public void sendGroupMessage(String messageText, List<String> attachments,
 
     @Override
     public void sendGroupMessage(String messageText, List<String> attachments,