summaryrefslogtreecommitdiff
path: root/packages/backend/src/core/NoteCreateService.ts
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-03-13 17:37:22 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-03-13 17:37:22 +0900
commit7f16b50e732183a9ba8995d1ca66049512963d10 (patch)
tree943b23dfd1c2f74d12162c551b9f00e8b83901e2 /packages/backend/src/core/NoteCreateService.ts
parentenhance(backend): 配送先が410 Goneで応答してきた場合配送停止... (diff)
downloadsharkey-7f16b50e732183a9ba8995d1ca66049512963d10.tar.gz
sharkey-7f16b50e732183a9ba8995d1ca66049512963d10.tar.bz2
sharkey-7f16b50e732183a9ba8995d1ca66049512963d10.zip
feat: sensitive word
Diffstat (limited to 'packages/backend/src/core/NoteCreateService.ts')
-rw-r--r--packages/backend/src/core/NoteCreateService.ts6
1 files changed, 5 insertions, 1 deletions
diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts
index 8d8535ca5b..5a4df69b62 100644
--- a/packages/backend/src/core/NoteCreateService.ts
+++ b/packages/backend/src/core/NoteCreateService.ts
@@ -44,6 +44,7 @@ import { RemoteUserResolveService } from '@/core/RemoteUserResolveService.js';
import { bindThis } from '@/decorators.js';
import { DB_MAX_NOTE_TEXT_LENGTH } from '@/const.js';
import { RoleService } from '@/core/RoleService.js';
+import { MetaService } from '@/core/MetaService.js';
const mutedWordsCache = new Cache<{ userId: UserProfile['userId']; mutedWords: UserProfile['mutedWords']; }[]>(1000 * 60 * 5);
@@ -192,6 +193,7 @@ export class NoteCreateService implements OnApplicationShutdown {
private apDeliverManagerService: ApDeliverManagerService,
private apRendererService: ApRendererService,
private roleService: RoleService,
+ private metaService: MetaService,
private notesChart: NotesChart,
private perUserNotesChart: PerUserNotesChart,
private activeUsersChart: ActiveUsersChart,
@@ -230,7 +232,9 @@ export class NoteCreateService implements OnApplicationShutdown {
if (data.channel != null) data.localOnly = true;
if (data.visibility === 'public' && data.channel == null) {
- if ((await this.roleService.getUserPolicies(user.id)).canPublicNote === false) {
+ if ((data.text != null) && (await this.metaService.fetch()).sensitiveWords.some(w => data.text!.includes(w))) {
+ data.visibility = 'home';
+ } else if ((await this.roleService.getUserPolicies(user.id)).canPublicNote === false) {
data.visibility = 'home';
}
}