summaryrefslogtreecommitdiff
path: root/pngmeta/metareader.go
diff options
context:
space:
mode:
authorGrail Finder <wohilas@gmail.com>2024-12-23 19:02:36 +0300
committerGrail Finder <wohilas@gmail.com>2024-12-23 19:02:36 +0300
commit4db8aea43dded3f2c1d0d41b5a3fb322a38d4730 (patch)
treec8929dda92bb942d1e1bc8193102508d14dda132 /pngmeta/metareader.go
parent923c96b73d02a5725a6b94d6052b2399b6f2def8 (diff)
Feat: read json sysprompt cards
Diffstat (limited to 'pngmeta/metareader.go')
-rw-r--r--pngmeta/metareader.go35
1 files changed, 26 insertions, 9 deletions
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
}