From 160fa7d843f101d215fd051582c6d36d55ae9c67 Mon Sep 17 00:00:00 2001 From: Cadence Ember Date: Mon, 6 Apr 2020 13:53:01 +1200 Subject: [PATCH] Redirect to a lowercase username Lowercase seems to be the canonical form of username on Instagram. --- src/site/api/routes.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/site/api/routes.js b/src/site/api/routes.js index 26f5f84..b0d1168 100644 --- a/src/site/api/routes.js +++ b/src/site/api/routes.js @@ -43,6 +43,7 @@ module.exports = [ username = username.replace(/^(https?:\/\/)?([a-z]+\.)?instagram\.com\//, "") username = username.replace(/^\@+/, "") username = username.replace(/\/+$/, "") + username = username.toLowerCase() return redirect(`/u/${username}`, 301) } else { return render(400, "pug/friendlyerror.pug", { @@ -57,6 +58,10 @@ module.exports = [ }, { route: `/u/(${constants.external.username_regex})`, methods: ["GET"], code: ({url, fill}) => { + if (fill[0] !== fill[0].toLowerCase()) { // some capital letters + return Promise.resolve(redirect(`/u/${fill[0].toLowerCase()}`, 301)) + } + const params = url.searchParams return fetchUser(fill[0], false).then(async user => { const page = +params.get("page")