fix (backend): check word mutes in lists

This commit is contained in:
naskya 2024-07-25 08:16:30 +09:00
parent 0ba868cc3c
commit 0edf177e99
No known key found for this signature in database
GPG key ID: 712D413B3A9FED5C
2 changed files with 14 additions and 0 deletions

View file

@ -5,6 +5,7 @@ import define from "@/server/api/define.js";
import { ApiError } from "@/server/api/error.js";
import { makePaginationQuery } from "@/server/api/common/make-pagination-query.js";
import { generateVisibilityQuery } from "@/server/api/common/generate-visibility-query.js";
import { generateMutedNoteQuery } from "@/server/api/common/generate-muted-note-query.js";
export const meta = {
tags: ["notes", "lists"],
@ -95,6 +96,7 @@ export default define(meta, paramDef, async (ps, user) => {
});
generateVisibilityQuery(query, user);
generateMutedNoteQuery(query, user);
if (ps.includeMyRenotes === false) {
query.andWhere(

View file

@ -3,6 +3,7 @@ import { UserListJoinings, UserLists } from "@/models/index.js";
import type { User } from "@/models/entities/user.js";
import { isUserRelated } from "@/misc/is-user-related.js";
import type { Packed } from "@/misc/schema.js";
import { checkWordMute } from "backend-rs";
export default class extends Channel {
public readonly chName = "userList";
@ -58,6 +59,17 @@ export default class extends Channel {
if (note.renote && !note.text && this.renoteMuting.has(note.userId)) return;
if (note.replyId != null && this.replyMuting.has(note.userId)) return;
if (
this.userProfile &&
this.user?.id !== note.userId &&
(await checkWordMute(
note,
this.userProfile.mutedWords,
this.userProfile.mutedPatterns,
))
)
return;
this.send("note", note);
}