summaryrefslogtreecommitdiff
path: root/packages/client/src/scripts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-02-10 22:01:34 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-02-10 22:01:34 +0900
commit88ac0de0e6ba7f499c19113b3912878068249618 (patch)
treee48cd94dd9928494b2b07d4c38f622e18784a276 /packages/client/src/scripts
parentenhance(client): tweak chart (diff)
parentchore(deps): bump node-fetch from 2.6.1 to 2.6.7 in /packages/backend (#8293) (diff)
downloadmisskey-88ac0de0e6ba7f499c19113b3912878068249618.tar.gz
misskey-88ac0de0e6ba7f499c19113b3912878068249618.tar.bz2
misskey-88ac0de0e6ba7f499c19113b3912878068249618.zip
Merge branch 'develop' of https://github.com/misskey-dev/misskey into develop
Diffstat (limited to 'packages/client/src/scripts')
-rw-r--r--packages/client/src/scripts/check-word-mute.ts31
1 files changed, 18 insertions, 13 deletions
diff --git a/packages/client/src/scripts/check-word-mute.ts b/packages/client/src/scripts/check-word-mute.ts
index 55637bb3b3..74e2581863 100644
--- a/packages/client/src/scripts/check-word-mute.ts
+++ b/packages/client/src/scripts/check-word-mute.ts
@@ -1,23 +1,28 @@
-export function checkWordMute(note: Record<string, any>, me: Record<string, any> | null | undefined, mutedWords: string[][]): boolean {
+export function checkWordMute(note: Record<string, any>, me: Record<string, any> | null | undefined, mutedWords: Array<string | string[]>): boolean {
// 自分自身
if (me && (note.userId === me.id)) return false;
- const words = mutedWords
- // Clean up
- .map(xs => xs.filter(x => x !== ''))
- .filter(xs => xs.length > 0);
-
- if (words.length > 0) {
+ if (mutedWords.length > 0) {
if (note.text == null) return false;
- const matched = words.some(and =>
- and.every(keyword => {
- const regexp = keyword.match(/^\/(.+)\/(.*)$/);
- if (regexp) {
+ const matched = mutedWords.some(filter => {
+ if (Array.isArray(filter)) {
+ return filter.every(keyword => note.text!.includes(keyword));
+ } else {
+ // represents RegExp
+ const regexp = filter.match(/^\/(.+)\/(.*)$/);
+
+ // This should never happen due to input sanitisation.
+ if (!regexp) return false;
+
+ try {
return new RegExp(regexp[1], regexp[2]).test(note.text!);
+ } catch (err) {
+ // This should never happen due to input sanitisation.
+ return false;
}
- return note.text!.includes(keyword);
- }));
+ }
+ });
if (matched) return true;
}