From 4db8aea43dded3f2c1d0d41b5a3fb322a38d4730 Mon Sep 17 00:00:00 2001 From: Grail Finder Date: Mon, 23 Dec 2024 19:02:36 +0300 Subject: Feat: read json sysprompt cards --- pngmeta/metareader.go | 35 ++++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 9 deletions(-) (limited to 'pngmeta/metareader.go') diff --git a/pngmeta/metareader.go b/pngmeta/metareader.go index ea726c9..5542e86 100644 --- a/pngmeta/metareader.go +++ b/pngmeta/metareader.go @@ -84,6 +84,18 @@ func ReadCard(fname, uname string) (*models.CharCard, error) { return charSpec.Simplify(uname, fname), nil } +func readCardJson(fname string) (*models.CharCard, error) { + data, err := os.ReadFile(fname) + if err != nil { + return nil, err + } + card := models.CharCard{} + if err := json.Unmarshal(data, &card); err != nil { + return nil, err + } + return &card, nil +} + func ReadDirCards(dirname, uname string) ([]*models.CharCard, error) { files, err := os.ReadDir(dirname) if err != nil { @@ -91,17 +103,22 @@ func ReadDirCards(dirname, uname string) ([]*models.CharCard, error) { } resp := []*models.CharCard{} for _, f := range files { - if !strings.HasSuffix(f.Name(), ".png") { - continue + if strings.HasSuffix(f.Name(), ".png") { + fpath := path.Join(dirname, f.Name()) + cc, err := ReadCard(fpath, uname) + if err != nil { + return nil, err // better to log and continue + } + resp = append(resp, cc) } - fpath := path.Join(dirname, f.Name()) - cc, err := ReadCard(fpath, uname) - if err != nil { - // log err - return nil, err - // continue + if strings.HasSuffix(f.Name(), ".json") { + fpath := path.Join(dirname, f.Name()) + cc, err := readCardJson(fpath) + if err != nil { + return nil, err // better to log and continue + } + resp = append(resp, cc) } - resp = append(resp, cc) } return resp, nil } -- cgit v1.2.3