mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 02:55:58 +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