diff options
| author | Johann150 <johann.galle@protonmail.com> | 2022-06-23 13:26:47 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-06-23 20:26:47 +0900 |
| commit | ecdaeea94f72d1bd6ae7d3cf50e3c128d537e157 (patch) | |
| tree | 9839cdbc8d295a0c778f3e20bbebc009ed6fc63d /packages/client/src | |
| parent | chore(client): tweak client design (diff) | |
| download | sharkey-ecdaeea94f72d1bd6ae7d3cf50e3c128d537e157.tar.gz sharkey-ecdaeea94f72d1bd6ae7d3cf50e3c128d537e157.tar.bz2 sharkey-ecdaeea94f72d1bd6ae7d3cf50e3c128d537e157.zip | |
enhance: word mute checks CW (#8873)
Diffstat (limited to 'packages/client/src')
| -rw-r--r-- | packages/client/src/scripts/check-word-mute.ts | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/packages/client/src/scripts/check-word-mute.ts b/packages/client/src/scripts/check-word-mute.ts index fa74c09939..aafdd8920a 100644 --- a/packages/client/src/scripts/check-word-mute.ts +++ b/packages/client/src/scripts/check-word-mute.ts @@ -3,7 +3,9 @@ export function checkWordMute(note: Record<string, any>, me: Record<string, any> if (me && (note.userId === me.id)) return false; if (mutedWords.length > 0) { - if (note.text == null) return false; + const text = ((note.cw ?? '') + '\n' + (note.text ?? '')).trim(); + + if (text == '') return false; const matched = mutedWords.some(filter => { if (Array.isArray(filter)) { @@ -11,7 +13,7 @@ export function checkWordMute(note: Record<string, any>, me: Record<string, any> const filteredFilter = filter.filter(keyword => keyword !== ''); if (filteredFilter.length === 0) return false; - return filteredFilter.every(keyword => note.text!.includes(keyword)); + return filteredFilter.every(keyword => text.includes(keyword)); } else { // represents RegExp const regexp = filter.match(/^\/(.+)\/(.*)$/); @@ -20,7 +22,7 @@ export function checkWordMute(note: Record<string, any>, me: Record<string, any> if (!regexp) return false; try { - return new RegExp(regexp[1], regexp[2]).test(note.text!); + return new RegExp(regexp[1], regexp[2]).test(text); } catch (err) { // This should never happen due to input sanitisation. return false; |