Refactor: Extract shouldMuteThisNote function

This commit is contained in:
syuilo 2018-09-17 23:07:15 +09:00
parent 311b4e90ca
commit 44f6fe6f1f
No known key found for this signature in database
GPG key ID: BDC4C49D06AB9D69
6 changed files with 29 additions and 53 deletions

View file

@ -0,0 +1,15 @@
export default function(note: any, mutedUserIds: string[]): boolean {
if (mutedUserIds.indexOf(note.userId) != -1) {
return true;
}
if (note.reply != null && mutedUserIds.indexOf(note.reply.userId) != -1) {
return true;
}
if (note.renote != null && mutedUserIds.indexOf(note.renote.userId) != -1) {
return true;
}
return false;
}

View file

@ -3,6 +3,7 @@ import Xev from 'xev';
import { IUser } from '../../../models/user'; import { IUser } from '../../../models/user';
import Mute from '../../../models/mute'; import Mute from '../../../models/mute';
import shouldMuteThisNote from '../../../misc/should-mute-this-note';
export default async function( export default async function(
request: websocket.request, request: websocket.request,
@ -15,17 +16,8 @@ export default async function(
// Subscribe stream // Subscribe stream
subscriber.on('global-timeline', async note => { subscriber.on('global-timeline', async note => {
//#region 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する
if (mutedUserIds.indexOf(note.userId) != -1) { if (shouldMuteThisNote(note, mutedUserIds)) return;
return;
}
if (note.reply != null && mutedUserIds.indexOf(note.reply.userId) != -1) {
return;
}
if (note.renote != null && mutedUserIds.indexOf(note.renote.userId) != -1) {
return;
}
//#endregion
connection.send(JSON.stringify({ connection.send(JSON.stringify({
type: 'note', type: 'note',

View file

@ -4,6 +4,7 @@ import Xev from 'xev';
import { IUser } from '../../../models/user'; import { IUser } from '../../../models/user';
import Mute from '../../../models/mute'; import Mute from '../../../models/mute';
import { pack } from '../../../models/note'; import { pack } from '../../../models/note';
import shouldMuteThisNote from '../../../misc/should-mute-this-note';
export default async function( export default async function(
request: websocket.request, request: websocket.request,
@ -28,17 +29,8 @@ export default async function(
}); });
} }
//#region 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する
if (mutedUserIds.indexOf(note.userId) != -1) { if (shouldMuteThisNote(note, mutedUserIds)) return;
return;
}
if (note.reply != null && mutedUserIds.indexOf(note.reply.userId) != -1) {
return;
}
if (note.renote != null && mutedUserIds.indexOf(note.renote.userId) != -1) {
return;
}
//#endregion
connection.send(JSON.stringify({ connection.send(JSON.stringify({
type: 'note', type: 'note',

View file

@ -8,6 +8,7 @@ import { pack as packNote, pack } from '../../../models/note';
import readNotification from '../common/read-notification'; import readNotification from '../common/read-notification';
import call from '../call'; import call from '../call';
import { IApp } from '../../../models/app'; import { IApp } from '../../../models/app';
import shouldMuteThisNote from '../../../misc/should-mute-this-note';
const log = debug('misskey'); const log = debug('misskey');
@ -45,15 +46,7 @@ export default async function(
//#region 流れてきたメッセージがミュートしているユーザーが関わるものだったら無視する //#region 流れてきたメッセージがミュートしているユーザーが関わるものだったら無視する
if (x.type == 'note') { if (x.type == 'note') {
if (mutedUserIds.includes(x.body.userId)) { if (shouldMuteThisNote(x.body, mutedUserIds)) return;
return;
}
if (x.body.reply != null && mutedUserIds.includes(x.body.reply.userId)) {
return;
}
if (x.body.renote != null && mutedUserIds.includes(x.body.renote.userId)) {
return;
}
} else if (x.type == 'notification') { } else if (x.type == 'notification') {
if (mutedUserIds.includes(x.body.userId)) { if (mutedUserIds.includes(x.body.userId)) {
return; return;

View file

@ -4,6 +4,7 @@ import Xev from 'xev';
import { IUser } from '../../../models/user'; import { IUser } from '../../../models/user';
import Mute from '../../../models/mute'; import Mute from '../../../models/mute';
import { pack } from '../../../models/note'; import { pack } from '../../../models/note';
import shouldMuteThisNote from '../../../misc/should-mute-this-note';
export default async function( export default async function(
request: websocket.request, request: websocket.request,
@ -26,17 +27,8 @@ export default async function(
}); });
} }
//#region 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する
if (mutedUserIds.indexOf(note.userId) != -1) { if (shouldMuteThisNote(note, mutedUserIds)) return;
return;
}
if (note.reply != null && mutedUserIds.indexOf(note.reply.userId) != -1) {
return;
}
if (note.renote != null && mutedUserIds.indexOf(note.renote.userId) != -1) {
return;
}
//#endregion
connection.send(JSON.stringify({ connection.send(JSON.stringify({
type: 'note', type: 'note',

View file

@ -4,6 +4,7 @@ import Xev from 'xev';
import { IUser } from '../../../models/user'; import { IUser } from '../../../models/user';
import Mute from '../../../models/mute'; import Mute from '../../../models/mute';
import { pack } from '../../../models/note'; import { pack } from '../../../models/note';
import shouldMuteThisNote from '../../../misc/should-mute-this-note';
export default async function( export default async function(
request: websocket.request, request: websocket.request,
@ -23,17 +24,8 @@ export default async function(
}); });
} }
//#region 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する // 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する
if (mutedUserIds.indexOf(note.userId) != -1) { if (shouldMuteThisNote(note, mutedUserIds)) return;
return;
}
if (note.reply != null && mutedUserIds.indexOf(note.reply.userId) != -1) {
return;
}
if (note.renote != null && mutedUserIds.indexOf(note.renote.userId) != -1) {
return;
}
//#endregion
connection.send(JSON.stringify({ connection.send(JSON.stringify({
type: 'note', type: 'note',