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/backend/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/backend/src')
| -rw-r--r-- | packages/backend/src/misc/check-word-mute.ts | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/packages/backend/src/misc/check-word-mute.ts b/packages/backend/src/misc/check-word-mute.ts index 588dc79e55..015a368dfd 100644 --- a/packages/backend/src/misc/check-word-mute.ts +++ b/packages/backend/src/misc/check-word-mute.ts @@ -16,11 +16,13 @@ export async function checkWordMute(note: NoteLike, me: UserLike | null | undefi 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)) { - return filter.every(keyword => note.text!.includes(keyword)); + return filter.every(keyword => text.includes(keyword)); } else { // represents RegExp const regexp = filter.match(/^\/(.+)\/(.*)$/); @@ -29,7 +31,7 @@ export async function checkWordMute(note: NoteLike, me: UserLike | null | undefi if (!regexp) return false; try { - return new RE2(regexp[1], regexp[2]).test(note.text!); + return new RE2(regexp[1], regexp[2]).test(text); } catch (err) { // This should never happen due to input sanitisation. return false; |