Merge branch 'fosscord:master' into master
This commit is contained in:
		
						commit
						a4c5cd360d
					
				| @ -10,7 +10,7 @@ import i18nextBackend from "i18next-node-fs-backend"; | |||||||
| import { ErrorHandler } from "./middlewares/ErrorHandler"; | import { ErrorHandler } from "./middlewares/ErrorHandler"; | ||||||
| import { BodyParser } from "./middlewares/BodyParser"; | import { BodyParser } from "./middlewares/BodyParser"; | ||||||
| import express, { Router } from "express"; | import express, { Router } from "express"; | ||||||
| import fetch from "node-fetch"; | import fetch, { Response } from "node-fetch"; | ||||||
| import mongoose from "mongoose"; | import mongoose from "mongoose"; | ||||||
| import path from "path"; | import path from "path"; | ||||||
| 
 | 
 | ||||||
| @ -28,6 +28,14 @@ declare global { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
|  | const assetCache = new Map< | ||||||
|  | 	string, | ||||||
|  | 	{ | ||||||
|  | 		response: Response; | ||||||
|  | 		buffer: Buffer; | ||||||
|  | 	} | ||||||
|  | >(); | ||||||
|  | 
 | ||||||
| export class FosscordServer extends Server { | export class FosscordServer extends Server { | ||||||
| 	public options: FosscordServerOptions; | 	public options: FosscordServerOptions; | ||||||
| 
 | 
 | ||||||
| @ -95,13 +103,21 @@ export class FosscordServer extends Server { | |||||||
| 
 | 
 | ||||||
| 		this.app.get("/assets/:file", async (req, res) => { | 		this.app.get("/assets/:file", async (req, res) => { | ||||||
| 			delete req.headers.host; | 			delete req.headers.host; | ||||||
| 			const response = await fetch(`https://discord.com/assets/${req.params.file}`, { | 			var response: Response; | ||||||
| 				// @ts-ignore
 | 			var buffer: Buffer; | ||||||
| 				headers: { | 			const cache = assetCache.get(req.params.file); | ||||||
| 					...req.headers | 			if (!cache) { | ||||||
| 				} | 				response = await fetch(`https://discord.com/assets/${req.params.file}`, { | ||||||
| 			}); | 					// @ts-ignore
 | ||||||
| 			const buffer = await response.buffer(); | 					headers: { | ||||||
|  | 						...req.headers | ||||||
|  | 					} | ||||||
|  | 				}); | ||||||
|  | 				buffer = await response.buffer(); | ||||||
|  | 			} else { | ||||||
|  | 				response = cache.response; | ||||||
|  | 				buffer = cache.buffer; | ||||||
|  | 			} | ||||||
| 
 | 
 | ||||||
| 			response.headers.forEach((value, name) => { | 			response.headers.forEach((value, name) => { | ||||||
| 				if ( | 				if ( | ||||||
| @ -120,6 +136,7 @@ export class FosscordServer extends Server { | |||||||
| 				} | 				} | ||||||
| 				res.set(name, value); | 				res.set(name, value); | ||||||
| 			}); | 			}); | ||||||
|  | 			assetCache.set(req.params.file, { buffer, response }); | ||||||
| 
 | 
 | ||||||
| 			return res.send(buffer); | 			return res.send(buffer); | ||||||
| 		}); | 		}); | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Paul Munteanu
						Paul Munteanu