Proxy unfurler resources to local instance
This commit is contained in:
		
							parent
							
								
									91c0a3e689
								
							
						
					
					
						commit
						0d2df72621
					
				| @ -142,8 +142,9 @@ export default class ReusablePage extends ConcurrencyImplementation { | |||||||
|       await page.goto('about:blank', {timeout: 200}); // prevents memory leak (maybe?)
 |       await page.goto('about:blank', {timeout: 200}); // prevents memory leak (maybe?)
 | ||||||
|     } catch (e) { |     } catch (e) { | ||||||
|       logger.err(`unexpected page repair error ${page.clusterGroup}:${page.index}`); |       logger.err(`unexpected page repair error ${page.clusterGroup}:${page.index}`); | ||||||
|  |     } finally { | ||||||
|  |       await page.close(); | ||||||
|     } |     } | ||||||
|     await page.close(); |  | ||||||
|     return newPage; |     return newPage; | ||||||
|   } |   } | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ export default class ReusableSSRPage extends ReusablePage { | |||||||
|     page.clusterGroup = 'slurper'; |     page.clusterGroup = 'slurper'; | ||||||
|     page.language = null; |     page.language = null; | ||||||
|     page.createdAt = Date.now(); |     page.createdAt = Date.now(); | ||||||
|     const defaultUrl = mempoolHost + '/about'; |     const defaultUrl = mempoolHost + '/preview/block/1'; | ||||||
| 
 | 
 | ||||||
|     page.on('pageerror', (err) => { |     page.on('pageerror', (err) => { | ||||||
|       console.log(err); |       console.log(err); | ||||||
| @ -39,7 +39,7 @@ export default class ReusableSSRPage extends ReusablePage { | |||||||
|           headers: {"Access-Control-Allow-Origin": "*"}, |           headers: {"Access-Control-Allow-Origin": "*"}, | ||||||
|           body: mockImageBuffer |           body: mockImageBuffer | ||||||
|         }); |         }); | ||||||
|       } else if (!['document', 'script', 'xhr', 'fetch'].includes(req.resourceType())) { |       } else if (req.resourceType() === 'media') { | ||||||
|         return req.abort(); |         return req.abort(); | ||||||
|       } else { |       } else { | ||||||
|         return req.continue(); |         return req.continue(); | ||||||
|  | |||||||
| @ -28,6 +28,7 @@ class Server { | |||||||
|   mempoolUrl: URL; |   mempoolUrl: URL; | ||||||
|   network: string; |   network: string; | ||||||
|   secureHost = true; |   secureHost = true; | ||||||
|  |   secureMempoolHost = true; | ||||||
|   canonicalHost: string; |   canonicalHost: string; | ||||||
| 
 | 
 | ||||||
|   seoQueueLength: number = 0; |   seoQueueLength: number = 0; | ||||||
| @ -38,6 +39,7 @@ class Server { | |||||||
|     this.mempoolHost = config.MEMPOOL.HTTP_HOST + (config.MEMPOOL.HTTP_PORT ? ':' + config.MEMPOOL.HTTP_PORT : ''); |     this.mempoolHost = config.MEMPOOL.HTTP_HOST + (config.MEMPOOL.HTTP_PORT ? ':' + config.MEMPOOL.HTTP_PORT : ''); | ||||||
|     this.mempoolUrl = new URL(this.mempoolHost); |     this.mempoolUrl = new URL(this.mempoolHost); | ||||||
|     this.secureHost = config.SERVER.HOST.startsWith('https'); |     this.secureHost = config.SERVER.HOST.startsWith('https'); | ||||||
|  |     this.secureMempoolHost = config.MEMPOOL.HTTP_HOST.startsWith('https'); | ||||||
|     this.network = config.MEMPOOL.NETWORK || 'bitcoin'; |     this.network = config.MEMPOOL.NETWORK || 'bitcoin'; | ||||||
| 
 | 
 | ||||||
|     let canonical; |     let canonical; | ||||||
| @ -277,13 +279,13 @@ class Server { | |||||||
|         return; |         return; | ||||||
|       } else { |       } else { | ||||||
|         logger.info('proxying resource "' + req.url + '"'); |         logger.info('proxying resource "' + req.url + '"'); | ||||||
|         if (this.secureHost) { |         if (this.secureMempoolHost) { | ||||||
|           https.get(config.SERVER.HOST + rawPath, { headers: { 'user-agent': 'mempoolunfurl' }}, (got) => { |           https.get(this.mempoolHost + rawPath, { headers: { 'user-agent': 'mempoolunfurl' }}, (got) => { | ||||||
|             res.writeHead(got.statusCode, got.headers); |             res.writeHead(got.statusCode, got.headers); | ||||||
|             return got.pipe(res); |             return got.pipe(res); | ||||||
|           }); |           }); | ||||||
|         } else { |         } else { | ||||||
|           http.get(config.SERVER.HOST + rawPath, { headers: { 'user-agent': 'mempoolunfurl' }}, (got) => { |           http.get(this.mempoolHost + rawPath, { headers: { 'user-agent': 'mempoolunfurl' }}, (got) => { | ||||||
|             res.writeHead(got.statusCode, got.headers); |             res.writeHead(got.statusCode, got.headers); | ||||||
|             return got.pipe(res); |             return got.pipe(res); | ||||||
|           }); |           }); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user