diff --git a/app/portal/origin.py b/app/portal/origin.py index aabc72e..43d81bd 100644 --- a/app/portal/origin.py +++ b/app/portal/origin.py @@ -1,6 +1,8 @@ +import urllib.parse from datetime import datetime from typing import Optional, List +import requests from flask import flash, redirect, url_for, render_template, Response, Blueprint from flask.typing import ResponseReturnValue from flask_wtf import FlaskForm @@ -35,6 +37,12 @@ class EditOriginForm(FlaskForm): # type: ignore submit = SubmitField('Save Changes') +def final_domain_name(domain_name) -> str: + session = requests.Session() + r = session.get(f"https://{domain_name}/", allow_redirects=True, timeout=10) + return urllib.parse.urlparse(r.url).netloc + + @bp.route("/new", methods=['GET', 'POST']) @bp.route("/new/", methods=['GET', 'POST']) def origin_new(group_id: Optional[int] = None) -> ResponseReturnValue: @@ -43,7 +51,7 @@ def origin_new(group_id: Optional[int] = None) -> ResponseReturnValue: if form.validate_on_submit(): origin = Origin() origin.group_id = form.group.data - origin.domain_name = form.domain_name.data + origin.domain_name = final_domain_name(form.domain_name.data) origin.description = form.description.data origin.auto_rotation = form.auto_rotate.data origin.smart = form.smart_proxy.data