From 7c00b498709dc6b43562d45754ccdb75aeea979a Mon Sep 17 00:00:00 2001 From: Nicholas Pease Date: Wed, 17 Apr 2024 22:27:25 -0400 Subject: [PATCH 1/2] Simple Fix for Blank Messages --- frontend-next/src/components/app/page/chat.js | 36 ++++++++++--------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/frontend-next/src/components/app/page/chat.js b/frontend-next/src/components/app/page/chat.js index 1af3db9..b7cd438 100644 --- a/frontend-next/src/components/app/page/chat.js +++ b/frontend-next/src/components/app/page/chat.js @@ -48,23 +48,25 @@ export function ChatRoom({ roomObj, user }) { * @returns {void} */ function sendMessage(data) { - reset(); - var payload = { - body: data.message, - user: user.username, - uid: user.uid, - isSystem: false, - timestamp: new Date().getTime(), - }; - set( - ref( - database, - `/rooms/${ - roomObj.path + "/" + roomObj.name + "-" + roomObj.timestamp - }/chats/${new Date().getTime()}-${user.username}` - ), - payload - ); + if (data.message) { + reset(); + var payload = { + body: data.message, + user: user.username, + uid: user.uid, + isSystem: false, + timestamp: new Date().getTime(), + }; + set( + ref( + database, + `/rooms/${ + roomObj.path + "/" + roomObj.name + "-" + roomObj.timestamp + }/chats/${new Date().getTime()}-${user.username}` + ), + payload + ); + } } if (!chats) return
No Chats
; -- 2.52.0 From c3d55c94d1bc9646005f4daf1edc455b4836b739 Mon Sep 17 00:00:00 2001 From: Nicholas Pease Date: Wed, 17 Apr 2024 22:46:55 -0400 Subject: [PATCH 2/2] Add Profanity Filter --- frontend-next/package-lock.json | 17 +++++++++++++++++ frontend-next/package.json | 1 + frontend-next/src/components/app/datatypes.js | 4 ++++ 3 files changed, 22 insertions(+) diff --git a/frontend-next/package-lock.json b/frontend-next/package-lock.json index d3182f5..69d6d5a 100644 --- a/frontend-next/package-lock.json +++ b/frontend-next/package-lock.json @@ -16,6 +16,7 @@ "@headlessui/react": "^1.7.18", "@mui/icons-material": "^5.15.14", "@mui/material": "^5.15.14", + "bad-words": "^3.0.4", "firebase": "^10.6.0", "next": "^14.1.0", "pigeon-maps": "^0.21.3", @@ -2893,6 +2894,22 @@ "npm": ">=6" } }, + "node_modules/bad-words": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/bad-words/-/bad-words-3.0.4.tgz", + "integrity": "sha512-v/Q9uRPH4+yzDVLL4vR1+S9KoFgOEUl5s4axd6NIAq8SV2mradgi4E8lma/Y0cw1ltVdvyegCQQKffCPRCp8fg==", + "dependencies": { + "badwords-list": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/badwords-list": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/badwords-list/-/badwords-list-1.0.0.tgz", + "integrity": "sha512-oWhaSG67e+HQj3OGHQt2ucP+vAPm1wTbdp2aDHeuh4xlGXBdWwzZ//pfu6swf5gZ8iX0b7JgmSo8BhgybbqszA==" + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", diff --git a/frontend-next/package.json b/frontend-next/package.json index 3c73bf5..82be4fc 100644 --- a/frontend-next/package.json +++ b/frontend-next/package.json @@ -17,6 +17,7 @@ "@headlessui/react": "^1.7.18", "@mui/icons-material": "^5.15.14", "@mui/material": "^5.15.14", + "bad-words": "^3.0.4", "firebase": "^10.6.0", "next": "^14.1.0", "pigeon-maps": "^0.21.3", diff --git a/frontend-next/src/components/app/datatypes.js b/frontend-next/src/components/app/datatypes.js index e03dfff..cfa3d48 100644 --- a/frontend-next/src/components/app/datatypes.js +++ b/frontend-next/src/components/app/datatypes.js @@ -1,5 +1,7 @@ import Link from "next/link" import { useEffect, useState } from "react"; +const Filter = require('bad-words') +const filter = new Filter(); // Icons import PersonIcon from '@mui/icons-material/Person'; @@ -97,6 +99,8 @@ const generateColor = (user_str) => { */ export function Chat({ chatObj }) { var message = RMF(chatObj.body) + if (message) + message = filter.clean(message) return (
-- 2.52.0