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); }); } }