summaryrefslogtreecommitdiff
path: root/src/client/app/common/scripts/should-mute-note.ts
blob: 8a6430b1dfd26abf2bfd21b6a3567c62f401c1fe (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
export default function(me, settings, note) {
	const isMyNote = note.userId == me.id;
	const isPureRenote = note.renoteId != null && note.text == null && note.fileIds.length == 0 && note.poll == null;

	const includesMutedWords = (text: string) =>
		text
			? settings.mutedWords.some(q => q.length > 0 && !q.some(word => !text.includes(word)))
			: false;

	return (
		(!isMyNote && note.reply && includesMutedWords(note.reply.text)) ||
		(!isMyNote && note.renote && includesMutedWords(note.renote.text)) ||
		(settings.showMyRenotes === false && isMyNote && isPureRenote) ||
		(settings.showRenotedMyNotes === false && isPureRenote && note.renote.userId == me.id) ||
		(settings.showLocalRenotes === false && isPureRenote && note.renote.user.host == null) ||
		(!isMyNote && includesMutedWords(note.text))
	);
}