From 58fc68c0a4cb04416b56b5327a0a5c8238a994d5 Mon Sep 17 00:00:00 2001 From: Aevann Date: Mon, 8 Apr 2024 07:12:08 +0200 Subject: [PATCH] make shadowbannedcels able to see their messages again if they refresh the chat --- files/routes/chat.py | 25 +++++-------------------- files/routes/chats.py | 2 +- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/files/routes/chat.py b/files/routes/chat.py index 49255f780..ddfe1a854 100644 --- a/files/routes/chat.py +++ b/files/routes/chat.py @@ -110,25 +110,7 @@ def speak(data, v): text_html = sanitize(text, count_emojis=True, chat=True) if isinstance(text_html , tuple): return '' - if v.shadowbanned or execute_blackjack(v, None, text, "chat"): - data = { - "id": secrets.token_urlsafe(5), - "quotes": data['quotes'], - "hat": v.hat_active(None)[0], - "user_id": v.id, - "username": v.username, - "namecolor": v.name_color, - "patron": v.patron, - "pride_username": bool(v.has_badge(303)), - "text": text, - "text_censored": censor_slurs_profanities(text, 'chat', True), - "text_html": text_html, - "text_html_censored": censor_slurs_profanities(text_html, 'chat'), - "created_utc": int(time.time()), - } - emit('speak', data) - return '' - + execute_blackjack(v, None, text, "chat") execute_under_siege(v, None, text, "chat") quotes = data['quotes'] @@ -195,7 +177,10 @@ def speak(data, v): "created_utc": chat_message.created_utc, } - emit('speak', data, room=request.referrer) + if v.shadowbanned: + emit('speak', data) + else: + emit('speak', data, room=request.referrer) typing[request.referrer] = [] diff --git a/files/routes/chats.py b/files/routes/chats.py index 716325d83..cc28b2c3b 100644 --- a/files/routes/chats.py +++ b/files/routes/chats.py @@ -72,7 +72,7 @@ def chat(v, chat_id): if v.admin_level < PERMS['VIEW_CHATS'] and not membership: abort(403, "You're not a member of this chat!") - displayed_messages = reversed(g.db.query(ChatMessage).options(joinedload(ChatMessage.quoted_message)).filter_by(chat_id=chat.id).order_by(ChatMessage.id.desc()).limit(250).all()) + displayed_messages = reversed(g.db.query(ChatMessage).join(ChatMessage.user).filter(or_(User.id == v.id, User.shadowbanned == None)).options(joinedload(ChatMessage.quoted_message)).filter(ChatMessage.chat_id == chat.id).order_by(ChatMessage.id.desc()).limit(250).all()) displayed_messages = {m.id: m for m in displayed_messages} if chat.id == 1: