diff --git a/openapi/v0.yaml b/openapi/v0.yaml index fa46508dd..eaee5b986 100644 --- a/openapi/v0.yaml +++ b/openapi/v0.yaml @@ -3038,6 +3038,7 @@ components: required: - id - name + - infobox - type - relation type: object @@ -3048,6 +3049,8 @@ components: name: title: Name type: string + infobox: + "$ref": "#/components/schemas/WikiV0" type: type: integer allOf: @@ -3074,6 +3077,7 @@ components: required: - id - name + - infobox - type - career - relation @@ -3086,6 +3090,8 @@ components: name: title: Name type: string + infobox: + "$ref": "#/components/schemas/WikiV0" type: type: integer allOf: diff --git a/web/handler/subject/related_characters.go b/web/handler/subject/related_characters.go index f519c854d..c1b87f984 100644 --- a/web/handler/subject/related_characters.go +++ b/web/handler/subject/related_characters.go @@ -20,6 +20,7 @@ import ( "net/http" "time" + "github.com/bangumi/wiki-parser-go" "github.com/labstack/echo/v4" "github.com/samber/lo" "github.com/trim21/errgo" @@ -28,6 +29,7 @@ import ( "github.com/bangumi/server/domain/gerr" "github.com/bangumi/server/internal/auth" "github.com/bangumi/server/internal/model" + "github.com/bangumi/server/internal/pkg/compat" "github.com/bangumi/server/internal/pkg/generic/slice" "github.com/bangumi/server/internal/pkg/null" "github.com/bangumi/server/internal/subject" @@ -66,6 +68,7 @@ func (h Subject) GetRelatedCharacters(c echo.Context) error { response[i] = res.SubjectRelatedCharacter{ Images: res.PersonImage(rel.Character.Image), Name: rel.Character.Name, + Infobox: compat.V0Wiki(wiki.ParseOmitError(rel.Character.Infobox).NonZero()), Relation: characterStaffString(rel.TypeID), Actors: toActors(actors[rel.Character.ID]), Type: rel.Character.Type, diff --git a/web/handler/subject/related_persons.go b/web/handler/subject/related_persons.go index d8da0a9fc..11ee95a86 100644 --- a/web/handler/subject/related_persons.go +++ b/web/handler/subject/related_persons.go @@ -19,10 +19,12 @@ import ( "net/http" "time" + "github.com/bangumi/wiki-parser-go" "github.com/labstack/echo/v4" "github.com/trim21/errgo" "github.com/bangumi/server/domain/gerr" + "github.com/bangumi/server/internal/pkg/compat" "github.com/bangumi/server/internal/pkg/null" "github.com/bangumi/server/internal/subject" "github.com/bangumi/server/pkg/vars" @@ -59,6 +61,7 @@ func (h Subject) GetRelatedPersons(c echo.Context) error { response[i] = res.SubjectRelatedPerson{ Images: res.PersonImage(rel.Person.Image), Name: rel.Person.Name, + Infobox: compat.V0Wiki(wiki.ParseOmitError(rel.Person.Infobox).NonZero()), Relation: vars.StaffMap[r.TypeID][rel.TypeID].String(), Career: rel.Person.Careers(), Type: rel.Person.Type, diff --git a/web/res/subject.go b/web/res/subject.go index 47cf81d53..8613ed88f 100644 --- a/web/res/subject.go +++ b/web/res/subject.go @@ -263,6 +263,7 @@ type SubjectRelatedSubject struct { type SubjectRelatedCharacter struct { Images PersonImages `json:"images"` Name string `json:"name"` + Infobox V0wiki `json:"infobox"` Relation string `json:"relation"` Actors []Actor `json:"actors"` Type uint8 `json:"type"` @@ -272,6 +273,7 @@ type SubjectRelatedCharacter struct { type SubjectRelatedPerson struct { Images PersonImages `json:"images"` Name string `json:"name" doc:"person name"` + Infobox V0wiki `json:"infobox"` Relation string `json:"relation"` Career []string `json:"career"` Type uint8 `json:"type"`