diff --git a/package.json b/package.json index cb4d2c313c..d77b32db1e 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "atob": "2.0.3", "aws-sdk": "2.40.0", "btoa": "1.1.2", + "content-disposition": "0.5.2", "convict": "3.0.0", "cookies": "0.7.0", "core-js": "2.4.1", diff --git a/server/src/pages/shot/model.js b/server/src/pages/shot/model.js index c29702583a..03147873f4 100644 --- a/server/src/pages/shot/model.js +++ b/server/src/pages/shot/model.js @@ -1,9 +1,15 @@ +const { createDownloadUrl } = require("../../proxy-url"); const { getGitRevision } = require("../../linker"); const MobileDetect = require('mobile-detect'); exports.createModel = function(req) { let buildTime = require("../../build-time").string; let isMobile = !!(new MobileDetect(req.headers['user-agent'])).mobile(); + let downloadUrl = null; + let clip = req.shot.getClip(req.shot.clipNames()[0]); + if (clip) { + downloadUrl = createDownloadUrl(clip.image.url, req.shot.filename); + } let serverPayload = { title: req.shot.title, staticLink: req.staticLink, @@ -28,6 +34,7 @@ exports.createModel = function(req) { cspNonce: req.cspNonce, hashAnalytics: true, userAgent: req.headers['user-agent'], + downloadUrl, isMobile }; let clientPayload = { @@ -54,6 +61,7 @@ exports.createModel = function(req) { defaultExpiration: req.config.defaultExpiration * 1000, hashAnalytics: true, userAgent: req.headers['user-agent'], + downloadUrl, isMobile }; if (serverPayload.expireTime !== null && Date.now() > serverPayload.expireTime) { diff --git a/server/src/pages/shot/view.js b/server/src/pages/shot/view.js index 3d50dfbc93..09e8c46ad0 100644 --- a/server/src/pages/shot/view.js +++ b/server/src/pages/shot/view.js @@ -301,7 +301,6 @@ class Body extends React.Component { let clip = this.props.shot.getClip(clipId); clipUrl = clip.image.url; } - let clipFilename = this.props.shot.filename; let renderGetFirefox = this.props.userAgent && (this.props.userAgent + "").search(/firefox\/\d+/i) === -1; let renderExtensionNotification = !(this.props.isExtInstalled || renderGetFirefox); @@ -327,8 +326,8 @@ class Body extends React.Component {