Add Profanity Filter #77

Merged
LAX18 merged 2 commits from npease-language-filter into main 2024-04-17 20:18:37 -09:00
4 changed files with 41 additions and 17 deletions
+17
View File
@@ -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",
+1
View File
@@ -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",
@@ -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 (
<div className="width-[100%] bg-white rounded-lg mt-1 text-left p-1 grid grid-cols-2 mr-2">
<div>
+19 -17
View File
@@ -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 <div>No Chats</div>;