func paint(user *dht.User) { // clear space for j := 1; j < 100; j++ { fmt.Println("") } // new messages? usersWithPendingMessages := make([]string, 0) for peer, _ := range user.MessageHistory { areNew, _ := user.AreNewMessagesFrom(peer) if areNew { usersWithPendingMessages = append(usersWithPendingMessages, peer) } } // print users with pending messages for _, peer := range usersWithPendingMessages { fmt.Printf("New message(s) from `%s`!\n", peer) } fmt.Printf("\n\n========================================\n") // are we current chatting? if user.Current != "" { fmt.Printf("Conversation with `%s`:\n\n", user.Current) newMessages := user.AllMessagesFromUser(user.Current) messages := make([]dht.SendMessageArgs, 0) for _, msg := range newMessages { messages = append(messages, *msg) } sortutil.AscByField(messages, "Timestamp") for i := 0; i < len(messages); i++ { msg := messages[i] fmt.Printf("%s> %s\n", msg.FromUsername, msg.Content) } } fmt.Printf("=========================================\n") fmt.Printf("me> ") }