diff --git a/cmd/root.go b/cmd/root.go index 51365f25d5f59c4d7d580bd5ccc87af1b90912cc..326177e0bb5ab90a3ddb2270cfa38b5a2f7a34ea 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -20,7 +20,6 @@ import ( "gitlab.com/elixxir/client/globals" "gitlab.com/elixxir/client/parse" "gitlab.com/elixxir/client/user" - "gitlab.com/elixxir/crypto/large" "gitlab.com/elixxir/crypto/signature/rsa" "gitlab.com/elixxir/primitives/id" "gitlab.com/elixxir/primitives/switchboard" @@ -324,7 +323,7 @@ func (l *FallbackListener) Hear(item switchboard.Item, isHeardElsewhere bool, i } atomic.AddInt64(&l.MessagesReceived, 1) globals.Log.INFO.Printf("Message of type %v from %q, %v received with fallback: %s\n", - message.MessageType, *message.Sender, senderNick, + message.MessageType, printIDNice(message.Sender), senderNick, string(message.Body)) } } @@ -346,7 +345,7 @@ func (l *TextListener) Hear(item switchboard.Item, isHeardElsewhere bool, i ...i sender, ok := user.Users.GetUser(message.Sender) var senderNick string if !ok { - globals.Log.INFO.Printf("First message from sender %v", message.Sender) + globals.Log.INFO.Printf("First message from sender %v", printIDNice(message.Sender)) u := user.Users.NewUser(message.Sender, base64.StdEncoding.EncodeToString(message.Sender[:])) user.Users.UpsertUser(u) senderNick = u.Username @@ -354,7 +353,7 @@ func (l *TextListener) Hear(item switchboard.Item, isHeardElsewhere bool, i ...i senderNick = sender.Username } logMsg := fmt.Sprintf("Message from %v, %v Received: %s\n", - large.NewIntFromBytes(message.Sender[:]).Text(10), + printIDNice(message.Sender), senderNick, result.Message) globals.Log.INFO.Printf("%s -- Timestamp: %s\n", logMsg, message.Timestamp.String()) @@ -494,10 +493,7 @@ var rootCmd = &cobra.Command{ for i := uint(0); i < messageCnt; i++ { logMsg := fmt.Sprintf( "Sending Message to "+ - "%s, %v: %s\n", - large.NewIntFromBytes( - recipientId[:]).Text( - 10), + "%s, %v: %s\n", printIDNice(recipientId), recipientNick, message) globals.Log.INFO.Printf(logMsg) fmt.Printf(logMsg) @@ -561,10 +557,9 @@ var rootCmd = &cobra.Command{ if searchForUser != "" { foundUser := <-udbLister.(*userSearcher).foundUserChan - if isValidUser(foundUser) { - userIDBase64 := base64.StdEncoding.EncodeToString(foundUser) + if isValid, uid := isValidUser(foundUser); isValid { globals.Log.INFO.Printf("Found User %s at ID: %s", - searchForUser, userIDBase64) + searchForUser, printIDNice(uid)) } else { globals.Log.INFO.Printf("Found User %s is invalid", searchForUser) } @@ -588,16 +583,21 @@ var rootCmd = &cobra.Command{ }, } -func isValidUser(usr []byte) bool { +func isValidUser(usr []byte) (bool, *id.ID) { if len(usr) != id.ArrIDLen { - return false + return false, nil } for _, b := range usr { if b != 0 { - return true + uid, err := id.Unmarshal(usr) + if err != nil { + globals.Log.WARN.Printf("Could not unmarshal user: %s", err) + return false, nil + } + return true, uid } } - return false + return false, nil } // init is the initialization function for Cobra which defines commands @@ -713,3 +713,34 @@ func init() { // initConfig reads in config file and ENV variables if set. func initConfig() {} + +// returns a simple numerical id if the user is a precanned user, otherwise +// returns the normal string of the userID +func printIDNice(uid *id.ID) string { + + for index, puid := range precannedIDList { + if uid.Cmp(puid) { + return strconv.Itoa(index + 1) + } + } + + return uid.String() +} + +// build a list of precanned ids to use for comparision for nicer user id output +var precannedIDList = buildPrecannedIDList() + +func buildPrecannedIDList() []*id.ID { + + idList := make([]*id.ID, 40) + + for i := 0; i < 40; i++ { + uid := new(id.ID) + binary.BigEndian.PutUint64(uid[:], uint64(i+1)) + uid.SetType(id.User) + idList[i] = uid + } + + return idList +} +