Files
FrozenFriendsYume/packages/backend/built/server/api/stream/channels/main.js
T
2026-07-26 18:25:37 +09:00

29 lines
1.2 KiB
JavaScript

import Channel from "../channel.js";
import { isInstanceMuted, isUserFromMutedInstance } from "../../../../misc/is-instance-muted.js";
export default class extends Channel {
chName = "main";
static shouldShare = true;
static requireCredential = true;
async init(params) {
// Subscribe main stream channel
this.subscriber.on(`mainStream:${this.user.id}`, async (data)=>{
switch(data.type){
case "notification":
{
// Ignore notifications from instances the user has muted
if (isUserFromMutedInstance(data.body, new Set(this.userProfile?.mutedInstances ?? []))) return;
if (data.body.userId && this.muting.has(data.body.userId)) return;
break;
}
case "mention":
{
if (isInstanceMuted(data.body, new Set(this.userProfile?.mutedInstances ?? []))) return;
if (this.muting.has(data.body.userId)) return;
break;
}
}
this.send(data.type, data.body);
});
}
}