diff options
| author | Castor Gemini <[email protected]> | 2025-08-22 04:26:25 -0500 |
|---|---|---|
| committer | Jeff Carr <[email protected]> | 2025-08-22 04:26:25 -0500 |
| commit | af9bc2db8c841d45c45b8bce58f40326baa709fc (patch) | |
| tree | edd360aeac3602a5eb8a9f6c408afc65e3f654ed | |
| parent | eceb945b9c88d8e7a3456517348507cac07cd15c (diff) | |
feat(playback): Implement listEntries for chat summary
- Implement a new 'listEntries' function that provides a one-line
summary for each entry within a chat topic.
- The 'showChat' function (triggered by 'playback --uuid') now
calls this new summary view instead of the full rich format.
| -rw-r--r-- | doPlayback.go | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/doPlayback.go b/doPlayback.go index 019db68..f47a6c5 100644 --- a/doPlayback.go +++ b/doPlayback.go @@ -2,6 +2,7 @@ package main import ( "fmt" + "strings" "go.wit.com/lib/protobuf/chatpb" "go.wit.com/log" @@ -22,8 +23,8 @@ func showChat(uuid string) { log.Info("unknown uuid", uuid) return } - // Call the new, dedicated formatting function. - prettyFormatChat(chat) + // Call the new listEntries function for a summary view. + listEntries(chat) } func listChats(chats *chatpb.Chats) { @@ -46,13 +47,37 @@ func listChats(chats *chatpb.Chats) { formattedTime, chat.GetUuid(), ) - if argv.Playback.Long != nil { - listEntries(chat) - } } fmt.Println("-------------------------------------------------") } // print out one line for each chat entry func listEntries(chat *chatpb.Chat) { + fmt.Printf("\n--- Entries for Topic: %s ---\%n", chat.GetChatName()) + for i, entry := range chat.GetEntries() { + author := entry.GetFrom().String() + var formattedTime string + if ctime := entry.GetCtime(); ctime != nil { + t := ctime.AsTime() + formattedTime = t.Format("15:04:05") // Just the time for entry summary + } else { + formattedTime = "No Time" + } + + // Create a short preview of the content + contentPreview := strings.TrimSpace(entry.GetContent()) + if len(contentPreview) > 60 { + contentPreview = contentPreview[:57] + "..." + } + // Replace newlines with spaces for a clean one-line view + contentPreview = strings.ReplaceAll(contentPreview, "\n", " ") + + fmt.Printf(" %%2d. [%%s] (%%s): %%s\n", + i+1, + author, + formattedTime, + contentPreview, + ) + } + fmt.Println("-------------------------------------------------") } |
