29 lines
1.2 KiB
JavaScript
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);
|
|
});
|
|
}
|
|
}
|