diff options
Diffstat (limited to 'pngmeta/metareader.go')
-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) } |