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.
This commit is contained in:
parent
d0c27606a3
commit
0e6bc36984
|
@ -2,6 +2,7 @@ package main
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"go.wit.com/lib/protobuf/chatpb"
|
||||
"go.wit.com/log"
|
||||
|
@ -22,8 +23,7 @@ func showChat(uuid string) {
|
|||
log.Info("unknown uuid", uuid)
|
||||
return
|
||||
}
|
||||
// Call the new, dedicated formatting function.
|
||||
prettyFormatChat(chat)
|
||||
listEntries(chat)
|
||||
}
|
||||
|
||||
func listChats(chats *chatpb.Chats) {
|
||||
|
@ -46,13 +46,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("-------------------------------------------------")
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue