diff --git a/files/assets/js/chat.js b/files/assets/js/chat.js index 85748acbc..65caf554e 100644 --- a/files/assets/js/chat.js +++ b/files/assets/js/chat.js @@ -107,10 +107,20 @@ socket.on('speak', function(json) { const userlink = document.getElementsByClassName('userlink')[0] - userlink.innerHTML = userlink.innerHTML.replace(userlink.textContent, json.username) userlink.href = '/@' + json.username userlink.style.color = '#' + json.namecolor + const username = document.getElementsByClassName('username')[0] + username.textContent = json.username + if (json.patron) { + username.classList.add('patron') + username.style.backgroundColor = '#' + json.namecolor + } + else { + username.classList.remove('patron') + username.style.backgroundColor = null + } + document.getElementsByClassName('user_id')[0].value = json.user_id if (Date.now() - json.time*1000 > 5000) @@ -221,10 +231,14 @@ socket.on('online', function(data){ let online2 = 'Users Online' for (const u of data[0]) { + let patron = '' + if (u[3]) + patron = ` class="patron" style="background-color:#${u[2]}"` + online += `
  • ` if (admin_level && Object.keys(data[1]).includes(u[0].toLowerCase())) online += 'X ' - online += `${u[0]}
  • ` + online += `${u[0]}` online2 += `
    @${u[0]}` } document.getElementById('online').innerHTML = online diff --git a/files/routes/chat.py b/files/routes/chat.py index 4cda46049..82e9afb6b 100644 --- a/files/routes/chat.py +++ b/files/routes/chat.py @@ -140,6 +140,7 @@ def speak(data, v): "user_id": v.id, "username": v.username, "namecolor": v.name_color, + "patron": v.patron, "text": text, "text_censored": censor_slurs(text, 'chat'), "text_html": text_html, @@ -176,15 +177,15 @@ def refresh_online(): @is_not_permabanned_socketio def connect(v): - if any(v.id in session for session in sessions) and [v.username, v.id, v.name_color] not in online: + if any(v.id in session for session in sessions) and [v.username, v.id, v.name_color, v.patron] not in online: # user has previous running sessions with a different username or name_color for chat_user in online: if v.id == chat_user[1]: online.remove(chat_user) sessions.append([v.id, request.sid]) - if [v.username, v.id, v.name_color] not in online: - online.append([v.username, v.id, v.name_color]) + if [v.username, v.id, v.name_color, v.patron] not in online: + online.append([v.username, v.id, v.name_color, v.patron]) refresh_online() diff --git a/files/templates/util/macros.html b/files/templates/util/macros.html index 74a95d98d..b3ea16fcd 100644 --- a/files/templates/util/macros.html +++ b/files/templates/util/macros.html @@ -231,7 +231,13 @@ {% macro chat_group_template(id, m) %}
    -
    {% if m %}{{m.username}}{% else %}NULL{% endif %}
    + +
    + + +
    + {% if m %}{{m.username}}{% endif %} +
    {% if m %}{{m.time | timestamp}}{% else %}just now{% endif %} {% endmacro %}