summaryrefslogtreecommitdiff
path: root/pngmeta
diff options
context:
space:
mode:
authorGrail Finder <wohilas@gmail.com>2025-01-16 17:53:35 +0300
committerGrail Finder <wohilas@gmail.com>2025-01-16 17:53:35 +0300
commitc41ff09b2f62b8c715ec9beb2fdac987b25892d9 (patch)
tree8e85dd4f6a645b15fc58dd5f3ebb5b4f8bab1988 /pngmeta
parentdb678b521592503342bf717e1ae0f48b8b11ed80 (diff)
Fix: specv2 cards wrapper case
Diffstat (limited to 'pngmeta')
-rw-r--r--pngmeta/metareader.go15
1 files changed, 14 insertions, 1 deletions
diff --git a/pngmeta/metareader.go b/pngmeta/metareader.go
index 44b8ca4..f8ea160 100644
--- a/pngmeta/metareader.go
+++ b/pngmeta/metareader.go
@@ -6,6 +6,7 @@ import (
"encoding/base64"
"encoding/json"
"errors"
+ "fmt"
"io"
"os"
"path"
@@ -30,6 +31,13 @@ func (c PngEmbed) GetDecodedValue() (*models.CharCardSpec, error) {
if err := json.Unmarshal(data, &card); err != nil {
return nil, err
}
+ specWrap := &models.Spec2Wrapper{}
+ if card.Name == "" {
+ if err := json.Unmarshal(data, &specWrap); err != nil {
+ return nil, err
+ }
+ return &specWrap.Data, nil
+ }
return card, nil
}
@@ -81,6 +89,9 @@ func ReadCard(fname, uname string) (*models.CharCard, error) {
if err != nil {
return nil, err
}
+ if charSpec.Name == "" {
+ return nil, fmt.Errorf("failed to find role; fname %s\n", fname)
+ }
return charSpec.Simplify(uname, fname), nil
}
@@ -110,7 +121,9 @@ func ReadDirCards(dirname, uname string) ([]*models.CharCard, error) {
fpath := path.Join(dirname, f.Name())
cc, err := ReadCard(fpath, uname)
if err != nil {
- return nil, err // better to log and continue
+ // logger.Warn("failed to load card", "error", err)
+ continue
+ // return nil, err // better to log and continue
}
resp = append(resp, cc)
}