linkfy chat messages in modlog under siege

pull/226/head
Aevann 2024-05-17 17:30:01 +03:00
parent 5ffabf632c
commit 7936979526
5 changed files with 21 additions and 7 deletions

View File

@ -94,3 +94,8 @@ class ChatMessage(Base):
@lazy
def pride_username(self):
return self.user.pride_username(None)
@property
@lazy
def permalink(self):
return f"{SITE_FULL}/chat/{self.chat_id}#{self.id}"

View File

@ -547,10 +547,8 @@ def execute_under_siege(v, target, body, kind):
reason = f'report on <a href="{target.permalink}">post</a>'
else:
reason = f'report on <a href="{target.permalink}">comment</a>'
elif hasattr(target, 'permalink'):
reason = f'<a href="{target.permalink}">{kind}</a>'
else:
reason = kind
reason = f'<a href="{target.permalink}">{kind}</a>'
minutes = math.ceil(v.age / 60)
time_taken = f'{minutes} minute'

View File

@ -106,9 +106,6 @@ def speak(data, v):
if isinstance(text_html , tuple): return ''
if len(text_html) > 5000: return ''
execute_blackjack(v, None, text, "chat")
execute_under_siege(v, None, text, "chat")
quotes = data['quotes']
if quotes: quotes = int(quotes)
else: quotes = None
@ -125,6 +122,9 @@ def speak(data, v):
g.db.add(chat_message)
g.db.flush()
execute_blackjack(v, chat_message, text, "chat")
execute_under_siege(v, chat_message, text, "chat")
if v.id == chat.owner_id:
for i in chat_adding_regex.finditer(text):
user = get_user(i.group(1), graceful=True, attributes=[User.id])

View File

@ -75,7 +75,12 @@ 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).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 = g.db.query(ChatMessage).options(joinedload(ChatMessage.quoted_message)).filter(ChatMessage.chat_id == chat.id)
if v.admin_level < PERMS['USER_SHADOWBAN']:
displayed_messages = displayed_messages.join(ChatMessage.user).filter(or_(User.id == v.id, User.shadowbanned == None))
displayed_messages = reversed(displayed_messages.order_by(ChatMessage.id.desc()).limit(250).all())
displayed_messages = {m.id: m for m in displayed_messages}
if chat.id == 1:

View File

@ -272,6 +272,12 @@
{% macro chat_group_template(id, m) %}
<div class="chat-group">
{% if m %}
{% with user = m.user %}
{%- include 'admin/shadowbanned_tooltip.html' -%}
{% endwith %}
{% endif %}
<a class="font-weight-bold userlink" target="_blank" {% if m %}style="color:#{{m.namecolor}}" href="/@{{m.username}}" {% endif %}>
<div class="avatar profile-pic-20-wrapper">
<img loading="lazy" class="avatar-pic pp20 mr-1" {% if m %}src="/pp/{{m.user_id}}"{% endif %}>