fixes to chat

pull/90/head
Aevann 2023-01-22 05:16:37 +02:00
parent 1ee213f742
commit 542410eb27
3 changed files with 13 additions and 7 deletions

View File

@ -291,3 +291,7 @@ document.onpaste = function(event) {
document.getElementById('filename').textContent = filename;
}
}
window.addEventListener('load', function () {
box.scrollTo(0, box.scrollHeight)
});

View File

@ -41,12 +41,12 @@ messages = cache.get(f'messages') or {
def chat(v):
if not v.admin_level and TRUESCORE_CHAT_MINIMUM and v.truescore < TRUESCORE_CHAT_MINIMUM:
abort(403, f"Need at least {TRUESCORE_CHAT_MINIMUM} truescore for access to chat.")
return render_template("chat.html", v=v, messages=messages[request.url])
return render_template("chat.html", v=v, messages=messages[f"{SITE_FULL}{request.path}"])
@app.get("/admin/chat")
@admin_level_required(2)
def admin_chat(v):
return render_template("chat.html", v=v, messages=messages[request.url])
return render_template("chat.html", v=v, messages=messages[f"{SITE_FULL}{request.path}"])
@socketio.on('speak')
@limiter.limit("3/second;10/minute")
@ -96,7 +96,7 @@ def speak(data, v):
else:
emit('speak', data, room=request.referrer, broadcast=True)
messages[request.referrer][id] = data
messages[request.referrer] = messages[request.referrer][-500:]
messages[request.referrer] = dict(messages[request.referrer].items()[-500:])
if v.admin_level >= PERMS['USER_BAN']:
text = text.lower()

View File

@ -11,6 +11,7 @@
{% include "header.html" %}
{% include "modals/expanded_image.html" %}
{% include "modals/emoji.html" %}
{% set link = '<a href="/id/' + v.id|string + '">' %}
<div class="container pb-4">
<div class="row justify-content-around" id="main-content-row">
<div class="col h-100 {% block customPadding %}{% if request.path.startswith('/@') %}user-gutters{% else %}custom-gutters{% endif %}{% endblock %}" id="main-content-col">
@ -35,7 +36,7 @@
{% endmacro %}
{% macro chat_line_template(id, m) %}
<div class="chat-line" {% if m %}id="{{id}}"{% endif %}>
<div class="chat-line {% if m and link in m['text_html'] %}chat-mention{% endif %}" {% if m %}id="{{id}}"{% endif %}>
<div class="d-flex align-items-center">
<div class="text-muted chat-line-content">
<div class="{% if not (m and m['quotes']) %}d-none{% endif %} quotes" style="font-size:12px">
@ -84,9 +85,10 @@
<div id="shrink">
<div id="chat-window" class="container pl-0 py-0">
{% for id, m in messages.items() %}
{% set previous = m %}
{% if not (loop.index > 1 and m['user_id'] == previous['user_id']) %}
{% set messages_list = messages.items()|list %}
{% for id, m in messages_list %}
{% set same = loop.index > 1 and m['user_id'] == messages_list[loop.index-2][1]['user_id'] %}
{% if not same %}
{% if loop.index > 1 %}
</div>
{% endif %}