fix(backend): Accept arrays in ActivityPub `icon` and `image` properties
This is allowed according to the Activity vocabulary: https://www.w3.org/TR/activitystreams-vocabulary/#dfn-icon The issue is noticeable in combination with Bridgy Fed: https://github.com/snarfed/bridgy-fed/issues/1408
This commit is contained in:
parent
15ae1605ec
commit
6c3d4d0a95
|
@ -232,6 +232,12 @@ export class ApPersonService implements OnModuleInit {
|
||||||
if (user == null) throw new Error('failed to create user: user is null');
|
if (user == null) throw new Error('failed to create user: user is null');
|
||||||
|
|
||||||
const [avatar, banner] = await Promise.all([icon, image].map(img => {
|
const [avatar, banner] = await Promise.all([icon, image].map(img => {
|
||||||
|
// icon and image may be arrays
|
||||||
|
// see https://www.w3.org/TR/activitystreams-vocabulary/#dfn-icon
|
||||||
|
if (Array.isArray(img)) {
|
||||||
|
img = img.find(item => item && item.url) ?? null;
|
||||||
|
}
|
||||||
|
|
||||||
// if we have an explicitly missing image, return an
|
// if we have an explicitly missing image, return an
|
||||||
// explicitly-null set of values
|
// explicitly-null set of values
|
||||||
if ((img == null) || (typeof img === 'object' && img.url == null)) {
|
if ((img == null) || (typeof img === 'object' && img.url == null)) {
|
||||||
|
|
Loading…
Reference in New Issue