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:
parent
043386b95b
commit
3d6f228b6e
|
@ -1,11 +1,36 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
|
||||||
"go.wit.com/log"
|
"go.wit.com/log"
|
||||||
)
|
)
|
||||||
|
|
||||||
func doPlayback() {
|
func doPlayback() {
|
||||||
for i, chat := range me.chats.GetChats() {
|
log.Infof("Found %d chat topic(s) in the log.", len(me.chats.GetChats()))
|
||||||
log.Info(i, chat.Uuid, chat.From)
|
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("-------------------------------------------------")
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue