use urllib to parse instance url
This commit is contained in:
parent
b20395cc8f
commit
8b5f56bef2
|
@ -11,6 +11,7 @@ from app import app, db, sentry, imgproxy
|
||||||
import tasks
|
import tasks
|
||||||
from zipfile import BadZipFile
|
from zipfile import BadZipFile
|
||||||
from twitter import TwitterError
|
from twitter import TwitterError
|
||||||
|
from urllib.parse import urlparse
|
||||||
from urllib.error import URLError
|
from urllib.error import URLError
|
||||||
import libforget.version
|
import libforget.version
|
||||||
import libforget.settings
|
import libforget.settings
|
||||||
|
@ -172,6 +173,9 @@ def logout():
|
||||||
return redirect(url_for('about'))
|
return redirect(url_for('about'))
|
||||||
|
|
||||||
|
|
||||||
|
def domain_from_url(url):
|
||||||
|
urlparse(url).netloc.lower()
|
||||||
|
|
||||||
@app.route('/login/mastodon', methods=('GET', 'POST'))
|
@app.route('/login/mastodon', methods=('GET', 'POST'))
|
||||||
def mastodon_login_step1(instance=None):
|
def mastodon_login_step1(instance=None):
|
||||||
|
|
||||||
|
@ -189,14 +193,7 @@ def mastodon_login_step1(instance=None):
|
||||||
generic_error='error' in request.args
|
generic_error='error' in request.args
|
||||||
)
|
)
|
||||||
|
|
||||||
instance_url = instance_url.lower()
|
instance_url = domain_from_url(instance_url)
|
||||||
# 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]
|
|
||||||
|
|
||||||
callback = url_for('mastodon_login_step2',
|
callback = url_for('mastodon_login_step2',
|
||||||
instance_url=instance_url, _external=True)
|
instance_url=instance_url, _external=True)
|
||||||
|
@ -257,14 +254,7 @@ def misskey_login(instance=None):
|
||||||
generic_error='error' in request.args
|
generic_error='error' in request.args
|
||||||
)
|
)
|
||||||
|
|
||||||
instance_url = instance_url.lower()
|
instance_url = domain_from_url(instance_url)
|
||||||
# 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]
|
|
||||||
|
|
||||||
callback = url_for('misskey_callback',
|
callback = url_for('misskey_callback',
|
||||||
instance_url=instance_url, _external=True)
|
instance_url=instance_url, _external=True)
|
||||||
|
|
Loading…
Reference in New Issue