diff --git a/deploy.sh b/deploy.sh
old mode 100644
new mode 100755
diff --git a/expressjs/src/server.js b/expressjs/src/server.js
index 7de7d52..d56cb6d 100644
--- a/expressjs/src/server.js
+++ b/expressjs/src/server.js
@@ -95,7 +95,8 @@ function all(sql, params = []) {
function parseLogins(contents) {
const entries = new Map();
const lines = contents.split(/\r?\n/);
- for (const line of lines) {
+ for (const rawLine of lines) {
+ const line = rawLine.trim();
if (!line || line.startsWith('#')) {
continue;
}
@@ -204,24 +205,26 @@ function renderPage(title, body) {
${title}
@@ -403,7 +406,7 @@ app.get(`${basePath}/dashboard`, requireAuthPage, async (req, res) => {
@@ -430,8 +433,8 @@ app.get(`${basePath}/dashboard`, requireAuthPage, async (req, res) => {
@@ -504,9 +507,9 @@ app.post(`${basePath}/api/upload`, requireAuthApi, upload.single('file'), async
const storedName = `_${token}${ext}`;
const storedPath = path.join(shareDir, storedName);
- const retentionOverride = parseInt(req.body.retentionSeconds || '', 10);
+ const retentionOverride = parseFloat(req.body.retentionHours || '');
const retentionSeconds = Number.isFinite(retentionOverride) && retentionOverride > 0
- ? retentionOverride
+ ? Math.round(retentionOverride * 3600)
: uploadTtlSeconds;
try {
@@ -565,9 +568,9 @@ app.post(`${basePath}/files/:id/extend`, requireAuthPage, async (req, res) => {
return;
}
- const override = parseInt(req.body.extendSeconds || '', 10);
+ const override = parseFloat(req.body.extendHours || '');
const extensionSeconds = Number.isFinite(override) && override > 0
- ? override
+ ? Math.round(override * 3600)
: uploadTtlSeconds;
const base = Math.max(uploadEntry.expires_at, Date.now());