/web-site: show nice error for fediverse servers

for #911
pull/1343/head
Ryan Barrett 2024-09-18 21:05:50 -07:00
rodzic e4db9d62cd
commit 1b19fde4b3
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 6BE31FDF4776E9D4
1 zmienionych plików z 10 dodań i 3 usunięć

13
web.py
Wyświetl plik

@ -308,6 +308,7 @@ class Web(User, Protocol):
urljoin(self.web_url(), '/.well-known/host-meta'),
gateway=False)
if resp.ok and domain_from_link(resp.url) not in common.DOMAINS:
logger.info(f"{domain} serves Webfinger! probably a fediverse server")
self.redirects_error = OWNS_WEBFINGER
else:
diff = '\n'.join(difflib.Differ().compare([got], [expected[0]]))
@ -643,9 +644,6 @@ def check_web_site():
try:
user = Web.get_or_create(domain, enabled_protocols=['atproto'],
propagate=True, direct=True, verify=True)
if not user: # opted out
flash(f'{url} is not a valid or supported web site')
return render_template('enter_web_site.html'), 400
except BaseException as e:
code, body = util.interpret_http_exception(e)
if code:
@ -653,7 +651,16 @@ def check_web_site():
return render_template('enter_web_site.html')
raise
if not user: # opted out
flash(f'{url} is not a valid or supported web site')
return render_template('enter_web_site.html'), 400
user.put()
if user.redirects_error == OWNS_WEBFINGER:
flash(f'{url} looks like a fediverse server! Try a normal web site.')
return render_template('enter_web_site.html'), 400
return redirect(user.user_page_path())