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 (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"go.wit.com/lib/protobuf/chatpb"
|
"go.wit.com/lib/protobuf/chatpb"
|
||||||
"go.wit.com/log"
|
"go.wit.com/log"
|
||||||
|
@ -22,8 +23,7 @@ func showChat(uuid string) {
|
||||||
log.Info("unknown uuid", uuid)
|
log.Info("unknown uuid", uuid)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
// Call the new, dedicated formatting function.
|
listEntries(chat)
|
||||||
prettyFormatChat(chat)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func listChats(chats *chatpb.Chats) {
|
func listChats(chats *chatpb.Chats) {
|
||||||
|
@ -46,13 +46,37 @@ func listChats(chats *chatpb.Chats) {
|
||||||
formattedTime,
|
formattedTime,
|
||||||
chat.GetUuid(),
|
chat.GetUuid(),
|
||||||
)
|
)
|
||||||
if argv.Playback.Long != nil {
|
|
||||||
listEntries(chat)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
fmt.Println("-------------------------------------------------")
|
fmt.Println("-------------------------------------------------")
|
||||||
}
|
}
|
||||||
|
|
||||||
// print out one line for each chat entry
|
// print out one line for each chat entry
|
||||||
func listEntries(chat *chatpb.Chat) {
|
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