Merge branch 'master' into develop

This commit is contained in:
Julian Lam
2025-02-18 13:39:26 -05:00
2 changed files with 20 additions and 4 deletions

View File

@@ -58,8 +58,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 (!activitypub._constants.acceptable.contextTypes.has(type)) {
return false;
}
@@ -87,14 +99,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

View File

@@ -71,7 +71,7 @@ Notes.assert = async (uid, input, options = { skipChecks: false }) => {
}
// Reorder chain items by timestamp
// chain = chain.sort((a, b) => a.timestamp - b.timestamp);
chain = chain.sort((a, b) => a.timestamp - b.timestamp);
const mainPost = chain[0];
let { pid: mainPid, tid, uid: authorId, timestamp, name, content, sourceContent, _activitypub } = mainPost;