From 6c0a290cecf16d96ae95aa8bd3c88fab87bc038d Mon Sep 17 00:00:00 2001 From: Grail Finder Date: Sun, 20 Jul 2025 15:57:01 +0300 Subject: Fix: new chat from json --- pngmeta/metareader.go | 6 +++--- tables.go | 11 ++++++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/pngmeta/metareader.go b/pngmeta/metareader.go index 369345a..8d3059e 100644 --- a/pngmeta/metareader.go +++ b/pngmeta/metareader.go @@ -2,11 +2,11 @@ package pngmeta import ( "bytes" - "gf-lt/models" "encoding/base64" "encoding/json" "errors" "fmt" + "gf-lt/models" "io" "log/slog" "os" @@ -100,7 +100,7 @@ func ReadCard(fname, uname string) (*models.CharCard, error) { return charSpec.Simplify(uname, fname), nil } -func readCardJson(fname string) (*models.CharCard, error) { +func ReadCardJson(fname string) (*models.CharCard, error) { data, err := os.ReadFile(fname) if err != nil { return nil, err @@ -134,7 +134,7 @@ func ReadDirCards(dirname, uname string, log *slog.Logger) ([]*models.CharCard, } if strings.HasSuffix(f.Name(), ".json") { fpath := path.Join(dirname, f.Name()) - cc, err := readCardJson(fpath) + cc, err := ReadCardJson(fpath) if err != nil { return nil, err // better to log and continue } diff --git a/tables.go b/tables.go index c4c97b9..ad39396 100644 --- a/tables.go +++ b/tables.go @@ -144,13 +144,18 @@ func makeChatTable(chatMap map[string]models.Chat) *tview.Table { return } // Reload card from disk + newCard := &models.CharCard{} newCard, err := pngmeta.ReadCard(cc.FilePath, cfg.UserRole) if err != nil { logger.Error("failed to reload charcard", "path", cc.FilePath, "error", err) - if err := notifyUser("error", "failed to reload card: "+cc.FilePath); err != nil { - logger.Warn("failed to notify", "error", err) + newCard, err = pngmeta.ReadCardJson(cc.FilePath) + if err != nil { + logger.Error("failed to reload charcard", "path", cc.FilePath, "error", err) + if err := notifyUser("error", "failed to reload card: "+cc.FilePath); err != nil { + logger.Warn("failed to notify", "error", err) + } + return } - return } // Update sysMap with fresh card data sysMap[agentName] = newCard -- cgit v1.2.3