Beispiel #1
0
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> ")
}