feat(playback): Change playback to a concise summary view

- The 'playback' command now prints a one-line summary for each
  chat topic.
- The summary includes the topic name, the number of entries,
  and the start time of the conversation.
This commit is contained in:
Castor Gemini 2025-08-22 02:29:39 -05:00 committed by Jeff Carr
parent 043386b95b
commit 3d6f228b6e
1 changed files with 27 additions and 2 deletions

View File

@ -1,11 +1,36 @@
package main
import (
"fmt"
"go.wit.com/log"
)
func doPlayback() {
for i, chat := range me.chats.GetChats() {
log.Info(i, chat.Uuid, chat.From)
log.Infof("Found %d chat topic(s) in the log.", len(me.chats.GetChats()))
fmt.Println("-------------------------------------------------")
// Iterate through the top-level Chat messages, which are now named groups.
for _, chat := range me.chats.GetChats() {
// Get the number of entries in the chat.
entryCount := len(chat.GetEntries())
// Get the timestamp of the first entry to represent the chat's start time.
var formattedTime string
if entryCount > 0 && chat.GetEntries()[0].GetCtime() != nil {
t := chat.GetEntries()[0].GetCtime().AsTime()
formattedTime = t.Format("2006-01-02 15:04:05") // YYYY-MM-DD HH:MM:SS
} else {
formattedTime = "No Timestamp"
}
// Print the formatted one-line summary.
fmt.Printf("Topic: %-25s | Entries: %-4d | Started: %s\n",
chat.GetChatName(),
entryCount,
formattedTime,
)
}
fmt.Println("-------------------------------------------------")
}