lbry-desktop/lbrytv/middleware/redirect.js

30 lines
757 B
JavaScript
Raw Normal View History

2019-11-07 20:39:22 +01:00
const config = require('../../config');
const redirectHosts = ['open.lbry.com'];
async function redirectMiddleware(ctx, next) {
const requestHost = ctx.host;
const path = ctx.path;
const url = ctx.url;
2019-11-11 19:19:31 +01:00
if (path.endsWith('/') && path.length > 1) {
2019-11-07 20:39:22 +01:00
ctx.redirect(url.replace(/\/$/, ''));
return;
}
if (!path.startsWith('/$/') && path.match(/^([^@/:]+)\/([^:/]+)$/)) {
ctx.redirect(url.replace(/^([^@/:]+)\/([^:/]+)(:(\/.*))/, '$1:$2')); // test against path, but use ctx.url to retain parameters
return;
}
if (redirectHosts.includes(requestHost)) {
const redirectUrl = config.DOMAIN + path;
ctx.redirect(redirectUrl);
return;
}
// No redirects needed
await next();
}
module.exports = redirectMiddleware;