mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 08:36:12 +01:00
fix: support reporting remote content in Flag
This commit is contained in:
@@ -177,6 +177,20 @@ Helpers.resolveActivity = async (activity, data, id, resolved) => {
|
||||
}
|
||||
};
|
||||
|
||||
Helpers.mapToLocalType = (type) => {
|
||||
if (type === 'Person') {
|
||||
return 'user';
|
||||
}
|
||||
if (type === 'Group') {
|
||||
return 'category';
|
||||
}
|
||||
if (type === 'Hashtag') {
|
||||
return 'tag';
|
||||
}
|
||||
if (activitypub._constants.acceptedPostTypes.includes(type)) {
|
||||
return 'post';
|
||||
}
|
||||
};
|
||||
|
||||
Helpers.resolveObjects = async (ids) => {
|
||||
if (!Array.isArray(ids)) {
|
||||
|
||||
@@ -386,9 +386,9 @@ inbox.flag = async (req) => {
|
||||
}
|
||||
|
||||
await Promise.all(objects.map(async (subject, index) => {
|
||||
const { type, id } = await activitypub.helpers.resolveLocalId(subject.id);
|
||||
const { type, id } = await activitypub.helpers.resolveObjects(subject.id);
|
||||
try {
|
||||
await flags.create(type, id, actor, content);
|
||||
await flags.create(activitypub.helpers.mapToLocalType(type), id, actor, content);
|
||||
} catch (e) {
|
||||
reject('Flag', objects[index], actor);
|
||||
}
|
||||
|
||||
@@ -21,6 +21,9 @@ ActivityPub._constants = Object.freeze({
|
||||
'application/activity+json',
|
||||
'application/ld+json; profile="https://www.w3.org/ns/activitystreams"',
|
||||
],
|
||||
acceptedPostTypes: [
|
||||
'Note', 'Page', 'Article', 'Question',
|
||||
],
|
||||
});
|
||||
ActivityPub._cache = requestCache;
|
||||
|
||||
|
||||
@@ -78,8 +78,7 @@ Mocks.post = async (objects) => {
|
||||
}
|
||||
|
||||
const posts = await Promise.all(objects.map(async (object) => {
|
||||
const acceptedTypes = ['Note', 'Page', 'Article', 'Question'];
|
||||
if (!acceptedTypes.includes(object.type)) {
|
||||
if (!activitypub._constants.acceptedPostTypes.includes(object.type)) {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user