summaryrefslogtreecommitdiff
path: root/packages/backend/src
diff options
context:
space:
mode:
authorHazelnoot <acomputerdog@gmail.com>2025-05-12 10:36:17 +0000
committerHazelnoot <acomputerdog@gmail.com>2025-05-12 10:36:17 +0000
commitf8b2e272f1c238f90f9e2d61b6d944b65d5fa26f (patch)
tree408a8415435938eeff1b4a4e1373993a0da12b9b /packages/backend/src
parentmerge: Add pattern checker for word mutes (resolves #1003) (!1020) (diff)
parentraise default character limit for word mutes (diff)
downloadsharkey-f8b2e272f1c238f90f9e2d61b6d944b65d5fa26f.tar.gz
sharkey-f8b2e272f1c238f90f9e2d61b6d944b65d5fa26f.tar.bz2
sharkey-f8b2e272f1c238f90f9e2d61b6d944b65d5fa26f.zip
merge: Fix word mute character calculation (resolves #861) (!1018)
View MR for information: https://activitypub.software/TransFem-org/Sharkey/-/merge_requests/1018 Closes #861 Approved-by: dakkar <dakkar@thenautilus.net> Approved-by: Marie <github@yuugi.dev>
Diffstat (limited to 'packages/backend/src')
-rw-r--r--packages/backend/src/core/RoleService.ts2
-rw-r--r--packages/backend/src/server/api/endpoints/i/update.ts9
2 files changed, 8 insertions, 3 deletions
diff --git a/packages/backend/src/core/RoleService.ts b/packages/backend/src/core/RoleService.ts
index 3fdac4c580..e87c459d5c 100644
--- a/packages/backend/src/core/RoleService.ts
+++ b/packages/backend/src/core/RoleService.ts
@@ -93,7 +93,7 @@ export const DEFAULT_POLICIES: RolePolicies = {
canUpdateBioMedia: true,
pinLimit: 5,
antennaLimit: 5,
- wordMuteLimit: 200,
+ wordMuteLimit: 1000,
webhookLimit: 3,
clipLimit: 10,
noteEachClipsLimit: 200,
diff --git a/packages/backend/src/server/api/endpoints/i/update.ts b/packages/backend/src/server/api/endpoints/i/update.ts
index ad8f38703b..f35e395841 100644
--- a/packages/backend/src/server/api/endpoints/i/update.ts
+++ b/packages/backend/src/server/api/endpoints/i/update.ts
@@ -330,8 +330,13 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
if (ps.chatScope !== undefined) updates.chatScope = ps.chatScope;
function checkMuteWordCount(mutedWords: (string[] | string)[], limit: number) {
- // TODO: ちゃんと数える
- const length = JSON.stringify(mutedWords).length;
+ const length = mutedWords.reduce((sum, word) => {
+ const wordLength = Array.isArray(word)
+ ? word.reduce((l, w) => l + w.length, 0)
+ : word.length;
+ return sum + wordLength;
+ }, 0);
+
if (length > limit) {
throw new ApiError(meta.errors.tooManyMutedWords);
}