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 @@
Name |
Ban reason |
Banned by |
+ Unban in |
{% for user in users %}
@@ -20,6 +23,9 @@
{% include "user_in_table.html" %}
{% endwith %}
+
+ {{user.unban_in}}
+ |
{% endfor %}
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
# |
Name |
+ Unchud in |
{% for user in users %}
{{loop.index}} |
{% include "user_in_table.html" %} |
+ {{user.unchud_in}} |
{% endfor %}
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
- Permabanned Users
+ Banned Users
{% if v and v.admin_level >= PERMS['USER_BLOCKS_VISIBLE'] -%}