From 4379f5a4d8232ae28735d9b43ffd439a3b3c8b18 Mon Sep 17 00:00:00 2001 From: Rene Pot Date: Wed, 9 Aug 2023 16:32:30 +0100 Subject: [PATCH] feat: replace profanity filter --- package-lock.json | 44 ++++++++++++++------------------------------ package.json | 2 +- parser.js | 6 ++---- 3 files changed, 17 insertions(+), 35 deletions(-) diff --git a/package-lock.json b/package-lock.json index aba7119..eb3ba0c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -11,7 +11,6 @@ "license": "ISC", "dependencies": { "aws-sdk": "^2.1265.0", - "bad-words": "^3.0.3", "console-stamp": "^0.2.9", "dotenv": "^8.2.0", "express": "^4.17.1", @@ -20,6 +19,7 @@ "htmlparser2": "^8.0.1", "jsbeeb": "git+https://github.com/mattgodbolt/jsbeeb.git#8935c9a3a095e846f63c0e4a08070f76ad01473e", "mastodon": "^1.2.2", + "no-profanity": "^1.4.2", "npmlog": "^7.0.1", "request": "^2.88.2", "requirejs": "^2.3.6" @@ -336,22 +336,6 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, - "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/base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -2810,6 +2794,14 @@ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, + "node_modules/no-profanity": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/no-profanity/-/no-profanity-1.4.2.tgz", + "integrity": "sha512-mg9E7w0LitTCz6J3T65nZnSzPKN9qc1VHWW0Yn6HUkU/VDWdgLBWoB/fWd3tJcfAk9fuzxAFysYbqACLE0lRjg==", + "engines": { + "node": ">=14.0.0" + } + }, "node_modules/normalize-package-data": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", @@ -4511,19 +4503,6 @@ "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==" }, - "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==", - "requires": { - "badwords-list": "^1.0.0" - } - }, - "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==" - }, "base64-js": { "version": "1.5.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", @@ -6373,6 +6352,11 @@ "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" }, + "no-profanity": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/no-profanity/-/no-profanity-1.4.2.tgz", + "integrity": "sha512-mg9E7w0LitTCz6J3T65nZnSzPKN9qc1VHWW0Yn6HUkU/VDWdgLBWoB/fWd3tJcfAk9fuzxAFysYbqACLE0lRjg==" + }, "normalize-package-data": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.1.tgz", diff --git a/package.json b/package.json index 7d5eeaa..c9ba127 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,6 @@ "license": "ISC", "dependencies": { "aws-sdk": "^2.1265.0", - "bad-words": "^3.0.3", "console-stamp": "^0.2.9", "dotenv": "^8.2.0", "express": "^4.17.1", @@ -21,6 +20,7 @@ "htmlparser2": "^8.0.1", "jsbeeb": "git+https://github.com/mattgodbolt/jsbeeb.git#8935c9a3a095e846f63c0e4a08070f76ad01473e", "mastodon": "^1.2.2", + "no-profanity": "^1.4.2", "npmlog": "^7.0.1", "request": "^2.88.2", "requirejs": "^2.3.6" diff --git a/parser.js b/parser.js index a80aeb0..9ea5bd0 100644 --- a/parser.js +++ b/parser.js @@ -3,10 +3,8 @@ const TRY = (process.argv.indexOf("try") > -1) require('dotenv').config(); -const Filter = require('bad-words'); -const customFilter = new Filter({ placeHolder: '*'}); -//customFilter.addWords('words','here'); const Grapheme = require('grapheme-splitter'); +const { isProfane } = require("no-profanity"); var splitter = new Grapheme(); const htmlparser2 = require('htmlparser2'); @@ -84,7 +82,7 @@ function parseTweet(toot){ } toot.text = c.input; c.input = processInput(toot); - c.rude = (customFilter.clean(c.input) != c.input); + c.rude = isProfane(c.input); console.log("\n",c); return c;