From d29f964c6b45b4301cc202ee333100610ef6fc04 Mon Sep 17 00:00:00 2001 From: tycrek Date: Sat, 28 Aug 2021 10:45:29 -0600 Subject: [PATCH] Added setting to directly view resource in browser --- README.md | 2 +- routers/resource.js | 5 +++-- setup.js | 7 +++++++ views/view.pug | 6 ++++++ 4 files changed, 17 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index df7ca42..d62d900 100755 --- a/README.md +++ b/README.md @@ -107,7 +107,7 @@ ass was designed with developers in mind. If you are a developer & want somethin [Docker](#docker) is the recommended way to install ass, but you can also install it locally. -1. You should have **Node.js 14 or later** & **npm 7 or later** installed. +1. You should have **Node.js 14** & **npm 7 or later** installed. 2. Clone this repo using `git clone https://github.com/tycrek/ass.git && cd ass/` 3. Run `npm i` to install the required dependencies 5. Run `npm start` to start ass. diff --git a/routers/resource.js b/routers/resource.js index e2caebb..5542f8c 100644 --- a/routers/resource.js +++ b/routers/resource.js @@ -2,7 +2,7 @@ const fs = require('fs-extra'); const escape = require('escape-html'); const fetch = require('node-fetch'); const { deleteS3 } = require('../storage'); -const { diskFilePath, s3enabled } = require('../config.json'); +const { diskFilePath, s3enabled, viewDirect } = require('../config.json'); const { path, log, getTrueHttp, getTrueDomain, formatBytes, formatTimestamp, getS3url, getDirectUrl, getResourceColor, replaceholder } = require('../utils'); const { CODE_UNAUTHORIZED, CODE_NOT_FOUND, } = require('../MagicNumbers.json'); const data = require('../data'); @@ -47,7 +47,8 @@ router.get('/', (req, res, next) => data.get(req.ass.resourceId).then((fileData) oembedUrl: `${getTrueHttp()}${getTrueDomain()}/${resourceId}/oembed`, ogtype: fileData.is.video ? 'video.other' : fileData.is.image ? 'image' : 'website', urlType: `og:${fileData.is.video ? 'video' : fileData.is.audio ? 'audio' : 'image'}`, - opengraph: replaceholder(ogs.join('\n'), fileData.size, fileData.timestamp, fileData.originalname) + opengraph: replaceholder(ogs.join('\n'), fileData.size, fileData.timestamp, fileData.originalname), + viewDirect }); }).catch(next)); diff --git a/setup.js b/setup.js index d882f59..246f2b8 100755 --- a/setup.js +++ b/setup.js @@ -10,6 +10,7 @@ const config = { gfyIdSize: 2, resourceIdType: 'random', mediaStrict: false, + viewDirect: false, frontendName: 'ass-x', indexFile: '', s3enabled: false, @@ -143,6 +144,12 @@ function doSetup() { default: config.mediaStrict, required: false }, + viewDirect: { + description: 'View uploads in browser as direct resource, rather than a viewing page', + type: 'boolean', + default: config.viewDirect, + required: false + }, frontendName: { description: 'Name of your frontend (leave blank if not using frontends)', type: 'string', diff --git a/views/view.pug b/views/view.pug index f0dcf23..4e1cf6f 100644 --- a/views/view.pug +++ b/views/view.pug @@ -20,6 +20,12 @@ html // oEmbed (https://oembed.com/) link(href=oembedUrl title='oEmbed' rel='alternate' type='application/json+oembed') + // Direct resource redirect + if viewDirect + style. + * { display: none !important; } + meta(http-equiv='refresh' content=`0; url='${resourceAttr.src}'`) + body #container #content