20 lines
		
	
	
		
			924 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			20 lines
		
	
	
		
			924 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
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 =>
 | 
						|
				word.startsWith('/') && word.endsWith('/') ? !(new RegExp(word.substr(1, word.length - 2)).test(text)) : !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))
 | 
						|
	);
 | 
						|
}
 |