diff --git a/files/classes/user.py b/files/classes/user.py index 468de4f69..a20ef3dc5 100644 --- a/files/classes/user.py +++ b/files/classes/user.py @@ -523,9 +523,9 @@ class User(Base): @property @lazy - def unban_string(self): + def unban_in(self): if self.unban_utc == 0: - return "permanently banned" + return "never" wait = self.unban_utc - int(time.time()) @@ -542,9 +542,43 @@ class User(Base): text = f"{days}d {hours:02d}h {mins:02d}m" + return text + + + @property + @lazy + def unban_string(self): + text = self.unban_in + + if text == "never": return "permanently banned" + return f"Unban in {text}" + @property + @lazy + def unchud_in(self): + if self.agendaposter == 1: + return "never" + + wait = self.agendaposter - int(time.time()) + + if wait < 60: + text = f"{wait}s" + else: + days = wait//(24*60*60) + wait -= days*24*60*60 + + hours = wait//(60*60) + wait -= hours*60*60 + + mins = wait//60 + + text = f"{days}d {hours:02d}h {mins:02d}m" + + return text + + @property @lazy def received_awards(self): diff --git a/files/routes/static.py b/files/routes/static.py index bd0478314..25c8482f6 100644 --- a/files/routes/static.py +++ b/files/routes/static.py @@ -335,7 +335,8 @@ def blocks(v): @app.get("/banned") @auth_required def banned(v:User): - users = g.db.query(User).filter(User.is_banned > 0, User.unban_utc == 0) + after_30_days = int(time.time()) + 86400 * 30 + users = g.db.query(User).filter(User.is_banned > 0, or_(User.unban_utc == 0, User.unban_utc > after_30_days)) if not v.can_see_shadowbanned: users = users.filter(User.shadowbanned == None) users = users.all() diff --git a/files/routes/users.py b/files/routes/users.py index e8d2a2a41..4ed21c022 100644 --- a/files/routes/users.py +++ b/files/routes/users.py @@ -180,7 +180,8 @@ def grassed(v:User): @app.get("/chuds") @auth_required def chuds(v:User): - users = g.db.query(User).filter(User.agendaposter == 1) + after_30_days = int(time.time()) + 86400 * 30 + users = g.db.query(User).filter(or_(User.agendaposter == 1, User.agendaposter > after_30_days)) if not v.can_see_shadowbanned: users = users.filter(User.shadowbanned == None) users = users.order_by(User.username).all() diff --git a/files/templates/admin/admin_home.html b/files/templates/admin/admin_home.html index e220af5c8..87225f21d 100644 --- a/files/templates/admin/admin_home.html +++ b/files/templates/admin/admin_home.html @@ -46,9 +46,9 @@ {% if v.admin_level >= PERMS['USER_SHADOWBAN'] %}
  • Shadowbanned Users
  • {% endif %} -
  • Permabanned Users
  • +
  • Banned Users
  • {% if FEATURES['AWARDS'] -%} -
  • Permachudded Users
  • +
  • Chudded Users
  • Currently Grassed Users
  • {%- endif %} {% if FEATURES['MARSEYBUX'] and (not AEVANN_ID or v.id in (AEVANN_ID, CARP_ID, SNAKES_ID)) -%} diff --git a/files/templates/banned.html b/files/templates/banned.html index 0a96d0471..555e2c1ed 100644 --- a/files/templates/banned.html +++ b/files/templates/banned.html @@ -1,6 +1,8 @@ {% extends "settings2.html" %} -{% block pagetitle %}Permabanned Users{% endblock %} +{% block pagetitle %}Banned Users{% endblock %} {% block content %} + +
    Users who are permabanned or have more than 30 days to be unbanned
    @@ -8,6 +10,7 @@ + {% for user in users %} @@ -20,6 +23,9 @@ {% include "user_in_table.html" %} {% endwith %} + {% endfor %}
    Name Ban reason Banned byUnban in
    + {{user.unban_in}} +
    diff --git a/files/templates/chuds.html b/files/templates/chuds.html index fbd6e5408..523d96183 100644 --- a/files/templates/chuds.html +++ b/files/templates/chuds.html @@ -1,17 +1,21 @@ {% extends "settings2.html" %} {% block pagetitle %}Chuds{% endblock %} {% block content %} + +
    Users who are permachudded or have more than 30 days to be unchudded
    + {% for user in users %} + {% endfor %}
    # NameUnchud in
    {{loop.index}} {% include "user_in_table.html" %}{{user.unchud_in}}
    diff --git a/files/templates/settings2.html b/files/templates/settings2.html index d34132d9d..0f52f145e 100644 --- a/files/templates/settings2.html +++ b/files/templates/settings2.html @@ -23,7 +23,7 @@ Moderation Log {% if v and v.admin_level >= PERMS['USER_BLOCKS_VISIBLE'] -%}