diff --git a/files/routes/allroutes.py b/files/routes/allroutes.py index 74d5dee797..9091c7ff17 100644 --- a/files/routes/allroutes.py +++ b/files/routes/allroutes.py @@ -1,5 +1,4 @@ import secrets -import user_agents from files.helpers.const import * from files.helpers.settings import get_setting @@ -22,6 +21,8 @@ def before_request(): if not g.agent and request.path != '/kofi': return 'Please use a "User-Agent" header!', 403 + ua = g.agent.lower() + if request.host != SITE: return {"error": "Unauthorized host provided"}, 403 @@ -29,13 +30,11 @@ def before_request(): if not get_setting('bots') and request.headers.get("Authorization"): abort(403) - g.agent_parsed = str(user_agents.parse(g.agent)) - - if '; wv) ' in g.agent.lower(): + if '; wv) ' in ua: g.browser = 'webview' - elif g.agent_parsed.startswith('Firefox / '): + elif ' firefox/' in ua: g.browser = 'firefox' - elif any(g.agent_parsed.startswith(x) for x in ('iPhone', 'iPad', 'iPod', 'PC / Mac OS X')): + elif 'iphone' in ua or 'ipad' in ua or 'ipod' in ua or 'mac os' in ua: g.browser = 'apple' else: g.browser = 'chromium' diff --git a/files/routes/jinja2.py b/files/routes/jinja2.py index 8ef1c7d504..066a37510f 100644 --- a/files/routes/jinja2.py +++ b/files/routes/jinja2.py @@ -2,6 +2,8 @@ import time from os import environ, listdir, path +import user_agents + from flask import g, session, has_request_context from jinja2 import pass_context @@ -57,8 +59,9 @@ def calc_users(): if session["session_id"] in loggedout: del loggedout[session["session_id"]] loggedin[v.id] = timestamp else: - if 'spider' not in g.agent_parsed.lower() and 'bot' not in g.agent_parsed.lower(): - loggedout[session["session_id"]] = (timestamp, g.agent_parsed) + ua = str(user_agents.parse(g.agent)) + if 'spider' not in ua.lower() and 'bot' not in ua.lower(): + loggedout[session["session_id"]] = (timestamp, ua) loggedin = {k: v for k, v in loggedin.items() if (timestamp - v) < LOGGEDIN_ACTIVE_TIME} loggedout = {k: v for k, v in loggedout.items() if (timestamp - v[0]) < LOGGEDIN_ACTIVE_TIME} diff --git a/files/templates/userpage/userpage.html b/files/templates/userpage/userpage.html index a447a5ad46..54426d480d 100644 --- a/files/templates/userpage/userpage.html +++ b/files/templates/userpage/userpage.html @@ -422,7 +422,7 @@ {% if v.profile_background %} {{v.profile_background}} - {% elif v.theme == 'transparent' or g.agent_parsed.startswith('PC / ') %} + {% else %} Upload Profile Background {% endif %}