diff options
Diffstat (limited to 'src/server')
-rw-r--r-- | src/server/ApiManagers/UploadManager.ts | 5 | ||||
-rw-r--r-- | src/server/DashUploadUtils.ts | 3 | ||||
-rw-r--r-- | src/server/server_Initialization.ts | 27 |
3 files changed, 27 insertions, 8 deletions
diff --git a/src/server/ApiManagers/UploadManager.ts b/src/server/ApiManagers/UploadManager.ts index 02f6462aa..597ff1ce0 100644 --- a/src/server/ApiManagers/UploadManager.ts +++ b/src/server/ApiManagers/UploadManager.ts @@ -255,14 +255,15 @@ export default class UploadManager extends ApiManager { secureHandler: ({ req, res }) => { const uri = req.body.uri; const filename = req.body.name; + const origSuffix = req.body.nosuffix ? SizeSuffix.None : SizeSuffix.Original; if (!uri || !filename) { res.status(401).send("incorrect parameters specified"); return; } - return imageDataUri.outputFile(uri, serverPathToFile(Directory.images, InjectSize(filename, SizeSuffix.Original))).then((savedName: string) => { + return imageDataUri.outputFile(uri, serverPathToFile(Directory.images, InjectSize(filename, origSuffix))).then((savedName: string) => { const ext = extname(savedName).toLowerCase(); const { pngs, jpgs } = AcceptableMedia; - const resizers = [ + const resizers = !origSuffix ? [{ resizer: sharp().resize(400, undefined, { withoutEnlargement: true }), suffix: "_m" }] : [ { resizer: sharp().resize(100, undefined, { withoutEnlargement: true }), suffix: "_s" }, { resizer: sharp().resize(400, undefined, { withoutEnlargement: true }), suffix: "_m" }, { resizer: sharp().resize(900, undefined, { withoutEnlargement: true }), suffix: "_l" }, diff --git a/src/server/DashUploadUtils.ts b/src/server/DashUploadUtils.ts index f13580865..800717d99 100644 --- a/src/server/DashUploadUtils.ts +++ b/src/server/DashUploadUtils.ts @@ -25,7 +25,8 @@ export enum SizeSuffix { Small = "_s", Medium = "_m", Large = "_l", - Original = "_o" + Original = "_o", + None = "" } export function InjectSize(filename: string, size: SizeSuffix) { diff --git a/src/server/server_Initialization.ts b/src/server/server_Initialization.ts index de93b64c3..d1b9d8cf2 100644 --- a/src/server/server_Initialization.ts +++ b/src/server/server_Initialization.ts @@ -92,6 +92,13 @@ function buildWithMiddleware(server: express.Express) { passport.session(), (req: express.Request, res: express.Response, next: express.NextFunction) => { res.locals.user = req.user; + if (req.originalUrl.endsWith(".png") && req.method === 'GET') { + const period = 30000; + res.set('Cache-control', `public, max-age=${period}`); + } else { + // for the other requests set strict no caching parameters + res.set('Cache-control', `no-store`); + } next(); } ].forEach(next => server.use(next)); @@ -178,11 +185,21 @@ function proxyServe(req: any, requrl: string, response: any) { return `href="${resolvedServerUrl + "/corsProxy/http" + href}"`; }; const zipToStringDecoder = new (require('string_decoder').StringDecoder)('utf8'); - const htmlText = zipToStringDecoder.write(zlib.gunzipSync(htmlBodyMemoryStream.read()).toString('utf8') - .replace('<head>', '<head> <style>[id ^= "google"] { display: none; } </style>') - .replace(/href="http([^"]*)"/g, replacer) - .replace(/target="_blank"/g, "")); - rewrittenHtmlBody = zlib.gzipSync(htmlText); + // const htmlText = zipToStringDecoder.write(zlib.gunzipSync(htmlBodyMemoryStream.read()).toString('utf8') + // .replace('<head>', '<head> <style>[id ^= "google"] { display: none; } </style>') + // .replace(/href="http([^"]*)"/g, replacer) + // .replace(/target="_blank"/g, "")); + // rewrittenHtmlBody = zlib.gzipSync(htmlText); + const bodyStream = htmlBodyMemoryStream.read(); + if (bodyStream) { + const htmlText = zipToStringDecoder.write(zlib.gunzipSync(bodyStream).toString('utf8') + .replace('<head>', '<head> <style>[id ^= "google"] { display: none; } </style>') + // .replace(/href="http([^"]*)"/g, replacer) + .replace(/target="_blank"/g, "")); + rewrittenHtmlBody = zlib.gzipSync(htmlText); + } else { + console.log("EMPTY body: href"); + } } catch (e) { console.log(e); } } }); |