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