From de6f6ed61c050842a206e26bd5bbd0dcee378323 Mon Sep 17 00:00:00 2001 From: localhost Date: Sun, 5 Apr 2026 09:53:52 +0200 Subject: [PATCH] redirects to preservetube.com for saves, descriptive errors for tor saves --- src/router/html.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/router/html.ts b/src/router/html.ts index 2d53430..5d97a63 100644 --- a/src/router/html.ts +++ b/src/router/html.ts @@ -18,11 +18,16 @@ app.get('/', async ({ set }) => { })) }) -app.get('/save', async ({ query: { url }, set, headers, error }) => { +app.get('/save', async ({ query: { url }, set, headers, error, request, redirect }) => { + if (headers.host?.split(':')[0] !== 'preservetube.com') { + const parsedUrl = new URL(request.url) + return redirect(`https://preservetube.com${parsedUrl.pathname}${parsedUrl.search}`) + } + if (!url) return error(400, 'No url provided.') const ranges = await checkIpRanges(headers['cf-connecting-ip'] || headers['x-forwarded-for'] || '') - if (ranges.blocked) { + if (ranges.blocked || headers['cf-ipcountry'] === 'T1') { set.headers['Content-Type'] = 'text/html; charset=utf-8' return error(412, await m(eta.render('./blocked', { title: 'Blocked | PreserveTube' @@ -54,7 +59,7 @@ app.get('/savechannel', async ({ query: { url }, set, headers, error }) => { if (!url) return error(400, 'No url provided.') const ranges = await checkIpRanges(headers['cf-connecting-ip'] || headers['x-forwarded-for'] || '') - if (ranges.blocked) { + if (ranges.blocked || headers['cf-ipcountry'] === 'T1') { set.headers['Content-Type'] = 'text/html; charset=utf-8' return error(412, await m(eta.render('./blocked', { title: 'Blocked | PreserveTube'