mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-30 18:46:01 +01:00
fix: #13179, fix context resolution failure bug with frequency
This commit is contained in:
@@ -55,8 +55,20 @@ Contexts.getItems = async (uid, id, options) => {
|
||||
options.root = true;
|
||||
}
|
||||
|
||||
activitypub.helpers.log(`[activitypub/context] Retrieving context ${id}`);
|
||||
let { type, items, orderedItems, first, next } = await activitypub.get('uid', uid, id);
|
||||
// Page object instead of id
|
||||
let object;
|
||||
if (!id && options.object) {
|
||||
object = options.object;
|
||||
} else {
|
||||
activitypub.helpers.log(`[activitypub/context] Retrieving context/page ${id}`);
|
||||
try {
|
||||
object = await activitypub.get('uid', uid, id);
|
||||
} catch (e) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
let { type, items, orderedItems, first, next } = object;
|
||||
|
||||
if (!acceptableTypes.includes(type)) {
|
||||
return false;
|
||||
}
|
||||
@@ -84,14 +96,18 @@ Contexts.getItems = async (uid, id, options) => {
|
||||
|
||||
if (next) {
|
||||
activitypub.helpers.log('[activitypub/context] Fetching next page...');
|
||||
const isUrl = activitypub.helpers.isUri(next);
|
||||
Array
|
||||
.from(await Contexts.getItems(uid, next, {
|
||||
.from(await Contexts.getItems(uid, isUrl && next, {
|
||||
...options,
|
||||
root: false,
|
||||
object: !isUrl && next,
|
||||
}))
|
||||
.forEach((item) => {
|
||||
chain.add(item);
|
||||
});
|
||||
|
||||
return chain;
|
||||
}
|
||||
|
||||
// Handle special case where originating object is not actually part of the context collection
|
||||
|
||||
Reference in New Issue
Block a user