This commit is contained in:
syuilo
2018-07-30 07:20:27 +09:00
parent 4e6dcd16ac
commit 83d9730d93
33 changed files with 189 additions and 242 deletions

View File

@@ -1,5 +1,5 @@
import * as websocket from 'websocket';
import * as redis from 'redis';
import Xev from 'xev';
import { IUser } from '../../../models/user';
import Mute from '../../../models/mute';
@@ -8,18 +8,17 @@ import { pack } from '../../../models/note';
export default async function(
request: websocket.request,
connection: websocket.connection,
subscriber: redis.RedisClient,
subscriber: Xev,
user: IUser
) {
// Subscribe stream
subscriber.subscribe('misskey:hybrid-timeline', `misskey:hybrid-timeline:${user._id}`);
subscriber.on('hybrid-timeline', onEvent);
subscriber.on(`hybrid-timeline:${user._id}`, onEvent);
const mute = await Mute.find({ muterId: user._id });
const mutedUserIds = mute.map(m => m.muteeId.toString());
subscriber.on('message', async (_, data) => {
const note = JSON.parse(data);
async function onEvent(note: any) {
//#region 流れてきたNoteがミュートしているユーザーが関わるものだったら無視する
if (mutedUserIds.indexOf(note.userId) != -1) {
return;
@@ -43,5 +42,5 @@ export default async function(
type: 'note',
body: note
}));
});
}
}