diff options
| -rw-r--r-- | pngmeta/metareader.go | 6 | ||||
| -rw-r--r-- | 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  			} @@ -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 | 
