@@ -122,6 +122,7 @@ type IdentityEntry struct {
122
122
Fingerprint string `json:"fingerprint"`
123
123
Added string `json:"added"`
124
124
SafetyNumber string `json:"safety_number"`
125
+ Uuid string `json:"uuid"`
125
126
}
126
127
127
128
type SignalCliGroupMember struct {
@@ -1561,47 +1562,38 @@ func (s *SignalClient) UpdateProfile(number string, profileName string, base64Av
1561
1562
}
1562
1563
1563
1564
func (s * SignalClient ) ListIdentities (number string ) (* []IdentityEntry , error ) {
1565
+ var err error
1566
+ var rawData string
1564
1567
identityEntries := []IdentityEntry {}
1565
1568
if s .signalCliMode == JsonRpc {
1566
1569
jsonRpc2Client , err := s .getJsonRpc2Client ()
1567
1570
if err != nil {
1568
1571
return nil , err
1569
1572
}
1570
- rawData , err := jsonRpc2Client .getRaw ("listIdentities" , & number , nil )
1571
- signalCliIdentityEntries := []SignalCliIdentityEntry {}
1572
- err = json .Unmarshal ([]byte (rawData ), & signalCliIdentityEntries )
1573
- if err != nil {
1574
- return nil , err
1575
- }
1576
- for _ , signalCliIdentityEntry := range signalCliIdentityEntries {
1577
- identityEntry := IdentityEntry {
1578
- Number : signalCliIdentityEntry .Number ,
1579
- Status : signalCliIdentityEntry .TrustLevel ,
1580
- Added : strconv .FormatInt (signalCliIdentityEntry .AddedTimestamp , 10 ),
1581
- Fingerprint : signalCliIdentityEntry .Fingerprint ,
1582
- SafetyNumber : signalCliIdentityEntry .SafetyNumber ,
1583
- }
1584
- identityEntries = append (identityEntries , identityEntry )
1585
- }
1573
+ rawData , err = jsonRpc2Client .getRaw ("listIdentities" , & number , nil )
1586
1574
} else {
1587
- rawData , err := s .cliClient .Execute (true , []string {"--config" , s .signalCliConfig , "-a" , number , "listIdentities" }, "" )
1588
- if err != nil {
1589
- return nil , err
1590
- }
1575
+ rawData , err = s .cliClient .Execute (true , []string {"--config" , s .signalCliConfig , "-o" , "json" , "-a" , number , "listIdentities" }, "" )
1576
+ }
1591
1577
1592
- keyValuePairs := parseWhitespaceDelimitedKeyValueStringList (rawData , []string {"NumberAndTrustStatus" , "Added" , "Fingerprint" , "Safety Number" })
1593
- for _ , keyValuePair := range keyValuePairs {
1594
- numberAndTrustStatus := keyValuePair ["NumberAndTrustStatus" ]
1595
- numberAndTrustStatusSplitted := strings .Split (numberAndTrustStatus , ":" )
1578
+ if err != nil {
1579
+ return nil , err
1580
+ }
1596
1581
1597
- identityEntry := IdentityEntry {Number : strings .Trim (numberAndTrustStatusSplitted [0 ], " " ),
1598
- Status : strings .Trim (numberAndTrustStatusSplitted [1 ], " " ),
1599
- Added : keyValuePair ["Added" ],
1600
- Fingerprint : strings .Trim (keyValuePair ["Fingerprint" ], " " ),
1601
- SafetyNumber : strings .Trim (keyValuePair ["Safety Number" ], " " ),
1602
- }
1603
- identityEntries = append (identityEntries , identityEntry )
1582
+ signalCliIdentityEntries := []SignalCliIdentityEntry {}
1583
+ err = json .Unmarshal ([]byte (rawData ), & signalCliIdentityEntries )
1584
+ if err != nil {
1585
+ return nil , err
1586
+ }
1587
+ for _ , signalCliIdentityEntry := range signalCliIdentityEntries {
1588
+ identityEntry := IdentityEntry {
1589
+ Number : signalCliIdentityEntry .Number ,
1590
+ Status : signalCliIdentityEntry .TrustLevel ,
1591
+ Added : strconv .FormatInt (signalCliIdentityEntry .AddedTimestamp , 10 ),
1592
+ Fingerprint : signalCliIdentityEntry .Fingerprint ,
1593
+ SafetyNumber : signalCliIdentityEntry .SafetyNumber ,
1594
+ Uuid : signalCliIdentityEntry .Uuid ,
1604
1595
}
1596
+ identityEntries = append (identityEntries , identityEntry )
1605
1597
}
1606
1598
1607
1599
return & identityEntries , nil
0 commit comments