Fix: new chat from json
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
11
tables.go
11
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
|
||||
|
||||
Reference in New Issue
Block a user