From 8b5f56bef2cccab184aac4925e90f6aaef4defec Mon Sep 17 00:00:00 2001 From: Johann150 Date: Tue, 9 Nov 2021 23:05:57 +0100 Subject: [PATCH] use urllib to parse instance url --- routes/__init__.py | 22 ++++++---------------- 1 file changed, 6 insertions(+), 16 deletions(-) diff --git a/routes/__init__.py b/routes/__init__.py index 1e9fd5d..5e4feef 100644 --- a/routes/__init__.py +++ b/routes/__init__.py @@ -11,6 +11,7 @@ from app import app, db, sentry, imgproxy import tasks from zipfile import BadZipFile from twitter import TwitterError +from urllib.parse import urlparse from urllib.error import URLError import libforget.version import libforget.settings @@ -172,6 +173,9 @@ def logout(): return redirect(url_for('about')) +def domain_from_url(url): + urlparse(url).netloc.lower() + @app.route('/login/mastodon', methods=('GET', 'POST')) def mastodon_login_step1(instance=None): @@ -189,14 +193,7 @@ def mastodon_login_step1(instance=None): generic_error='error' in request.args ) - instance_url = instance_url.lower() - # strip protocol - instance_url = re.sub('^https?://', '', instance_url, - count=1, flags=re.IGNORECASE) - # strip username - instance_url = instance_url.split("@")[-1] - # strip trailing path - instance_url = instance_url.split('/')[0] + instance_url = domain_from_url(instance_url) callback = url_for('mastodon_login_step2', instance_url=instance_url, _external=True) @@ -257,14 +254,7 @@ def misskey_login(instance=None): generic_error='error' in request.args ) - instance_url = instance_url.lower() - # strip protocol - instance_url = re.sub('^https?://', '', instance_url, - count=1, flags=re.IGNORECASE) - # strip username - instance_url = instance_url.split("@")[-1] - # strip trailing path - instance_url = instance_url.split('/')[0] + instance_url = domain_from_url(instance_url) callback = url_for('misskey_callback', instance_url=instance_url, _external=True)