diff --git a/src/snek/static/app.js b/src/snek/static/app.js index b6b468b..7ddc9e8 100644 --- a/src/snek/static/app.js +++ b/src/snek/static/app.js @@ -263,7 +263,10 @@ class NotificationAudio { this.schedule = new Schedule(timeout); } - sounds = ["/audio/soundfx.d_beep3.mp3"]; + sounds = [ + "/audio/soundfx.d_beep3.mp3", + "/audio/mention1.wav" + ]; play(soundIndex = 0) { this.schedule.delay(() => { diff --git a/src/snek/static/audio/mention1.wav b/src/snek/static/audio/mention1.wav new file mode 100644 index 0000000..640937d Binary files /dev/null and b/src/snek/static/audio/mention1.wav differ diff --git a/src/snek/templates/web.html b/src/snek/templates/web.html index 910f601..4d50b0f 100644 --- a/src/snek/templates/web.html +++ b/src/snek/templates/web.html @@ -116,11 +116,20 @@ setInterval(updateTimes, 1000); + function isMention(message){ + const mentionText = '@{{ user.username.value }}'; + return message.toLowerCase().includes(mentionText); + } + app.addEventListener("channel-message", (data) => { if (data.channel_uid !== channelUid) return; if (data.username !== "{{ user.username.value }}") { + if(isMention(data.message)){ + app.playSound(1); + }else{ app.playSound(0); + } } const messagesContainer = document.querySelector(".chat-messages"); @@ -128,10 +137,6 @@ const doScrollDownBecauseLastMessageIsVisible = !lastMessage || isElementVisible(lastMessage); const message = document.createElement("div"); - message.dataset.color = data.color; - message.dataset.created_at = data.created_at; - message.dataset.user_nick = data.user_nick; - message.dataset.uid = data.uid; message.innerHTML = data.html; document.querySelector(".chat-messages").appendChild(message.firstChild); updateLayout(doScrollDownBecauseLastMessageIsVisible);