diff options
| author | Hazelnoot <acomputerdog@gmail.com> | 2025-05-12 10:36:17 +0000 |
|---|---|---|
| committer | Hazelnoot <acomputerdog@gmail.com> | 2025-05-12 10:36:17 +0000 |
| commit | f8b2e272f1c238f90f9e2d61b6d944b65d5fa26f (patch) | |
| tree | 408a8415435938eeff1b4a4e1373993a0da12b9b | |
| parent | merge: Add pattern checker for word mutes (resolves #1003) (!1020) (diff) | |
| parent | raise default character limit for word mutes (diff) | |
| download | sharkey-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>
| -rw-r--r-- | packages/backend/src/core/RoleService.ts | 2 | ||||
| -rw-r--r-- | packages/backend/src/server/api/endpoints/i/update.ts | 9 |
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); } |