mirror of
				https://git.sr.ht/~cadence/bibliogram
				synced 2025-10-31 11:35:35 +00:00 
			
		
		
		
	Create page for when graphql is blocked
This commit is contained in:
		
							parent
							
								
									d22c728473
								
							
						
					
					
						commit
						2b5899f430
					
				| @ -120,7 +120,7 @@ module.exports = [ | |||||||
| 						withInstancesLink: false, | 						withInstancesLink: false, | ||||||
| 						settings | 						settings | ||||||
| 					}) | 					}) | ||||||
| 				} else if (error === constants.symbols.INSTAGRAM_DEMANDS_LOGIN || error === constants.symbols.RATE_LIMITED) { | 				} else if (error === constants.symbols.INSTAGRAM_DEMANDS_LOGIN) { | ||||||
| 					return { | 					return { | ||||||
| 						statusCode: 503, | 						statusCode: 503, | ||||||
| 						contentType: "text/html", | 						contentType: "text/html", | ||||||
| @ -136,6 +136,8 @@ module.exports = [ | |||||||
| 							lang | 							lang | ||||||
| 						}) | 						}) | ||||||
| 					} | 					} | ||||||
|  | 				} else if (error === constants.symbols.RATE_LIMITED) { | ||||||
|  | 					return render(503, "pug/blocked_graphql.pug") | ||||||
| 				} else if (error === constants.symbols.extractor_results.AGE_RESTRICTED) { | 				} else if (error === constants.symbols.extractor_results.AGE_RESTRICTED) { | ||||||
| 					return render(403, "pug/age_gated.pug", {settings}) | 					return render(403, "pug/age_gated.pug", {settings}) | ||||||
| 				} else if (error === constants.symbols.QUOTA_REACHED) { | 				} else if (error === constants.symbols.QUOTA_REACHED) { | ||||||
| @ -219,7 +221,8 @@ module.exports = [ | |||||||
| 	}, | 	}, | ||||||
| 	{ | 	{ | ||||||
| 		route: `/fragment/post/(${constants.external.shortcode_regex})`, methods: ["GET"], code: ({req, fill}) => { | 		route: `/fragment/post/(${constants.external.shortcode_regex})`, methods: ["GET"], code: ({req, fill}) => { | ||||||
| 			return getOrFetchShortcode(fill[0]).then(async post => { | 			const shortcode = fill[0] | ||||||
|  | 			return getOrFetchShortcode(shortcode).then(async post => { | ||||||
| 				await post.fetchChildren() | 				await post.fetchChildren() | ||||||
| 				await post.fetchExtendedOwnerP() // serial await is okay since intermediate fetch result is cached
 | 				await post.fetchExtendedOwnerP() // serial await is okay since intermediate fetch result is cached
 | ||||||
| 				if (post.isVideo()) await post.fetchVideoURL() | 				if (post.isVideo()) await post.fetchVideoURL() | ||||||
| @ -233,23 +236,14 @@ module.exports = [ | |||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
| 			}).catch(error => { | 			}).catch(error => { | ||||||
| 				if (error === constants.symbols.NOT_FOUND) { | 				if (error === constants.symbols.NOT_FOUND || constants.symbols.RATE_LIMITED) { | ||||||
| 					return render(404, "pug/friendlyerror.pug", { | 					return { | ||||||
| 						statusCode: 404, |  | ||||||
| 						title: "Not found", |  | ||||||
| 						message: "Somehow, you reached a post that doesn't exist.", |  | ||||||
| 						withInstancesLink: false |  | ||||||
| 					}) |  | ||||||
| 				} else if (error === constants.symbols.RATE_LIMITED) { |  | ||||||
| 					return render(503, "pug/friendlyerror.pug", { |  | ||||||
| 						statusCode: 503, | 						statusCode: 503, | ||||||
| 						title: "Post loading blocked", | 						contentType: "application/json", | ||||||
| 						message: "Post loading blocked", | 						content: { | ||||||
| 						explanation: | 							redirectTo: `/p/${shortcode}` | ||||||
| 								"Instagram blocked this server for requesting too much post data." | 						} | ||||||
| 							+"\nThis block is not permanent, and will expire soon." | 					} | ||||||
| 							+"\nPlease wait a few minutes before trying again." |  | ||||||
| 					}) |  | ||||||
| 				} else { | 				} else { | ||||||
| 					throw error | 					throw error | ||||||
| 				} | 				} | ||||||
| @ -295,6 +289,8 @@ module.exports = [ | |||||||
| 						withInstancesLink: false, | 						withInstancesLink: false, | ||||||
| 						settings | 						settings | ||||||
| 					}) | 					}) | ||||||
|  | 				} else if (error === constants.symbols.RATE_LIMITED) { | ||||||
|  | 					return render(503, "pug/blocked_graphql.pug") | ||||||
| 				} else { | 				} else { | ||||||
| 					throw error | 					throw error | ||||||
| 				} | 				} | ||||||
|  | |||||||
| @ -135,6 +135,10 @@ function loadPostOverlay(shortcode, stateChangeType) { | |||||||
| 	return new Promise((resolve, reject) => { | 	return new Promise((resolve, reject) => { | ||||||
| 		const fetcher = fetchShortcodeFragment(shortcode) | 		const fetcher = fetchShortcodeFragment(shortcode) | ||||||
| 		fetcher.then(root => { | 		fetcher.then(root => { | ||||||
|  | 			if (root.redirectTo) { | ||||||
|  | 				window.location.assign(root.redirectTo) | ||||||
|  | 				return | ||||||
|  | 			} | ||||||
| 			shortcodeDataMap.set(shortcode, root) | 			shortcodeDataMap.set(shortcode, root) | ||||||
| 			if (overlay.available) { | 			if (overlay.available) { | ||||||
| 				const {title, html} = root | 				const {title, html} = root | ||||||
|  | |||||||
							
								
								
									
										14
									
								
								src/site/pug/blocked_graphql.pug
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								src/site/pug/blocked_graphql.pug
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | |||||||
|  | include includes/error.pug | ||||||
|  | 
 | ||||||
|  | doctype html | ||||||
|  | html | ||||||
|  | 	head | ||||||
|  | 		title= `Blocked | Bibliogram` | ||||||
|  | 		include includes/head | ||||||
|  | 	body.error-page | ||||||
|  | 		+error(503, "Blocked by Instagram", true) | ||||||
|  | 			| Instagram is temporarily refusing to provide data to this server. | ||||||
|  | 			| This is a graphql block, which you cannot assist with. | ||||||
|  | 			| Try again in a few minutes to see if the block has been lifted. | ||||||
|  | 			| | ||||||
|  | 			| | ||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user