diff --git a/files/__main__.py b/files/__main__.py index b691940173..8a9259a90e 100644 --- a/files/__main__.py +++ b/files/__main__.py @@ -84,7 +84,11 @@ mail = Mail(app) @app.before_request def before_request(): - + + ua = request.headers.get("User-Agent") + if not ua: abort(403) + ua = ua.lower() + with open('site_settings.json', 'r') as f: app.config['SETTINGS'] = json.load(f) @@ -95,8 +99,6 @@ def before_request(): g.db = db_session() - ua = request.headers.get("User-Agent","").lower() - if '; wv) ' in ua: g.webview = True else: g.webview = False diff --git a/files/helpers/wrappers.py b/files/helpers/wrappers.py index 51be31a3ff..8f6634b780 100644 --- a/files/helpers/wrappers.py +++ b/files/helpers/wrappers.py @@ -54,7 +54,9 @@ def get_logged_in_user(): if session["session_id"] in loggedout: del loggedout[session["session_id"]] loggedin[v.id] = timestamp else: - loggedout[session["session_id"]] = (timestamp, str(user_agents.parse(request.headers.get("User-Agent")))) + ua = str(user_agents.parse(request.headers.get("User-Agent"))) + if not ua.startswith('Spider'): + loggedout[session["session_id"]] = (timestamp, ua) g.loggedin_counter = len([x for x in loggedin.values() if timestamp-x<15*60]) cache.set(f'{SITE}_loggedin', loggedin) diff --git a/files/routes/admin.py b/files/routes/admin.py index ab410917c4..19ae51152d 100644 --- a/files/routes/admin.py +++ b/files/routes/admin.py @@ -34,7 +34,7 @@ def loggedin_list(v): @app.get('/admin/loggedout') @admin_level_required(2) def loggedout_list(v): - users = [val[1] for x,val in cache.get(f'{SITE}_loggedout').items() if time.time()-val[0]<15*60] + users = sorted([val[1] for x,val in cache.get(f'{SITE}_loggedout').items() if time.time()-val[0]<15*60]) return render_template("loggedout.html", v=v, users=users) @app.get('/admin/merge//') diff --git a/files/routes/login.py b/files/routes/login.py index 3cc58bdb52..ec52039580 100644 --- a/files/routes/login.py +++ b/files/routes/login.py @@ -188,9 +188,6 @@ def sign_up_get(v): if v: return redirect(SITE_FULL) - agent = request.headers.get("User-Agent") - if not agent: abort(403) - ref = request.values.get("ref") if ref: @@ -234,9 +231,6 @@ def sign_up_post(v): if v: abort(403) - agent = request.headers.get("User-Agent") - if not agent: abort(403) - form_timestamp = request.values.get("now", '0') form_formkey = request.values.get("formkey", "none") diff --git a/files/templates/admin/admin_home.html b/files/templates/admin/admin_home.html index 8e7b235e2d..b38fb03d97 100644 --- a/files/templates/admin/admin_home.html +++ b/files/templates/admin/admin_home.html @@ -25,6 +25,7 @@
  • Users with Chud Theme
  • Currently Grassed Users
  • Currently Logged-in Users
  • +
  • Currently Logged-out Users
  • Safety

    diff --git a/files/templates/header.html b/files/templates/header.html index 2a756225be..62780a8891 100644 --- a/files/templates/header.html +++ b/files/templates/header.html @@ -16,7 +16,7 @@ {% if v and v.admin_level > 1 %} - People here now: {{g.loggedin_counter}} logged in, {{g.loggedout_counter}} logged out + People here now: {{g.loggedin_counter}} logged in, {{g.loggedout_counter}} logged out {% else %} People here now: {{g.loggedin_counter}} logged in, {{g.loggedout_counter}} logged out {% endif %} diff --git a/files/templates/sidebar_rDrama.html b/files/templates/sidebar_rDrama.html index 8545cef433..3dc867b45e 100644 --- a/files/templates/sidebar_rDrama.html +++ b/files/templates/sidebar_rDrama.html @@ -43,7 +43,7 @@ set VISITORS_HERE_FLAVOR = [

    {% if v and v.admin_level > 1 %} - {{g.loggedin_counter}} logged in, {{g.loggedout_counter}} logged out + {{g.loggedin_counter}} logged in, {{g.loggedout_counter}} logged out {% else %} {{g.loggedin_counter}} logged in, {{g.loggedout_counter}} logged out {% endif %}