@jsxc/jsxc
Version:
Real-time XMPP chat application with video calls, file transfer and encrypted communication
29 lines (23 loc) • 1.06 kB
text/typescript
import JID from '../../../../JID';
import AbstractHandler from '../../AbstractHandler';
import { TYPE as NOTICETYPE, FUNCTION as NOTICEFUNCTION } from '../../../../Notice';
export default class extends AbstractHandler {
public processStanza(stanza: Element) {
let from = new JID($(stanza).attr('from'));
let xElement = $(stanza).find('x[xmlns="http://jabber.org/protocol/muc#user"]');
let inviteElement = xElement.find('invite');
if (inviteElement.length === 1) {
let host = new JID(inviteElement.attr('from'));
let reason = inviteElement.find('reason').text();
let password = inviteElement.find('password').text();
this.account.getNoticeManager().addNotice({
title: 'Invitation',
description: `for ${from.bare}`,
type: NOTICETYPE.invitation,
fnName: NOTICEFUNCTION.multiUserInvitation,
fnParams: ['direct', host.bare, from.bare, reason, password, this.account.getUid()],
});
}
return this.PRESERVE_HANDLER;
}
}