diff options
author | Grail Finder <wohilas@gmail.com> | 2025-01-16 17:53:35 +0300 |
---|---|---|
committer | Grail Finder <wohilas@gmail.com> | 2025-01-16 17:53:35 +0300 |
commit | c41ff09b2f62b8c715ec9beb2fdac987b25892d9 (patch) | |
tree | 8e85dd4f6a645b15fc58dd5f3ebb5b4f8bab1988 /pngmeta | |
parent | db678b521592503342bf717e1ae0f48b8b11ed80 (diff) |
Fix: specv2 cards wrapper case
Diffstat (limited to 'pngmeta')
-rw-r--r-- | pngmeta/metareader.go | 15 |
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) } |