mirror of
				https://github.com/NodeBB/NodeBB.git
				synced 2025-10-31 19:15: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; | 		options.root = true; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	activitypub.helpers.log(`[activitypub/context] Retrieving context ${id}`); | 	// Page object instead of id | ||||||
| 	let { type, items, orderedItems, first, next } = await activitypub.get('uid', uid, 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)) { | 	if (!acceptableTypes.includes(type)) { | ||||||
| 		return false; | 		return false; | ||||||
| 	} | 	} | ||||||
| @@ -84,14 +96,18 @@ Contexts.getItems = async (uid, id, options) => { | |||||||
|  |  | ||||||
| 	if (next) { | 	if (next) { | ||||||
| 		activitypub.helpers.log('[activitypub/context] Fetching next page...'); | 		activitypub.helpers.log('[activitypub/context] Fetching next page...'); | ||||||
|  | 		const isUrl = activitypub.helpers.isUri(next); | ||||||
| 		Array | 		Array | ||||||
| 			.from(await Contexts.getItems(uid, next, { | 			.from(await Contexts.getItems(uid, isUrl && next, { | ||||||
| 				...options, | 				...options, | ||||||
| 				root: false, | 				root: false, | ||||||
|  | 				object: !isUrl && next, | ||||||
| 			})) | 			})) | ||||||
| 			.forEach((item) => { | 			.forEach((item) => { | ||||||
| 				chain.add(item); | 				chain.add(item); | ||||||
| 			}); | 			}); | ||||||
|  |  | ||||||
|  | 		return chain; | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	// Handle special case where originating object is not actually part of the context collection | 	// Handle special case where originating object is not actually part of the context collection | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user