]>
nmode's Git Repositories - signal-cli/blob - src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java
1 package org
. asamk
. signal
. commands
;
3 import net
. sourceforge
. argparse4j
. impl
. Arguments
;
4 import net
. sourceforge
. argparse4j
. inf
. Namespace
;
5 import net
. sourceforge
. argparse4j
. inf
. Subparser
;
7 import org
. asamk
. signal
. JsonWriter
;
8 import org
. asamk
. signal
. OutputType
;
9 import org
. asamk
. signal
. manager
. Manager
;
10 import org
. slf4j
. Logger
;
11 import org
. slf4j
. LoggerFactory
;
13 import java
. io
. IOException
;
14 import java
. util
. HashSet
;
15 import java
. util
. List
;
17 import java
. util
. stream
. Collectors
;
19 public class GetUserStatusCommand
implements LocalCommand
{
21 private final static Logger logger
= LoggerFactory
. getLogger ( GetUserStatusCommand
. class );
24 public void attachToSubparser ( final Subparser subparser
) {
25 subparser
. addArgument ( "number" ). help ( "Phone number" ). nargs ( "+" );
26 subparser
. help ( "Check if the specified phone number/s have been registered" );
27 subparser
. addArgument ( "--json" )
28 . help ( "WARNING: This parameter is now deprecated! Please use the global \" --output=json \" option instead. \n\n Output received messages in json format, one json object per line." )
29 . action ( Arguments
. storeTrue ());
33 public int handleCommand ( final Namespace ns
, final Manager m
) {
34 // Setup the json object mapper
35 boolean inJson
= ns
. get ( "output" ) == OutputType
. JSON
|| ns
. getBoolean ( "json" );
37 // TODO delete later when "json" variable is removed
38 if ( ns
. getBoolean ( "json" )) {
39 logger
. warn ( " \" --json \" option has been deprecated, please use the global \" --output=json \" instead." );
42 // Get a map of registration statuses
43 Map
< String
, Boolean
> registered
;
45 registered
= m
. areUsersRegistered ( new HashSet
<>( ns
. getList ( "number" )));
46 } catch ( IOException e
) {
47 System
. err
. println ( "Unable to check if users are registered" );
53 final JsonWriter jsonWriter
= new JsonWriter ( System
. out
);
55 List
< JsonUserStatus
> jsonUserStatuses
= registered
. entrySet ()
57 . map ( entry
-> new JsonUserStatus ( entry
. getKey (), entry
. getValue ()))
58 . collect ( Collectors
. toList ());
61 jsonWriter
. write ( jsonUserStatuses
);
62 } catch ( IOException e
) {
63 logger
. error ( "Failed to write json object: {}" , e
. getMessage ());
67 for ( Map
. Entry
< String
, Boolean
> entry
: registered
. entrySet ()) {
68 System
. out
. println ( entry
. getKey () + ": " + entry
. getValue ());
75 private static final class JsonUserStatus
{
79 public boolean isRegistered
;
81 public JsonUserStatus ( String name
, boolean isRegistered
) {
83 this . isRegistered
= isRegistered
;