@fnlb-project/stanza
Version:
Modern XMPP in the browser, with a JSON API
77 lines (76 loc) • 2.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = default_1;
const Namespaces_1 = require("../Namespaces");
function default_1(client) {
client.disco.addFeature(Namespaces_1.NS_ACTIVITY);
client.disco.addFeature(Namespaces_1.NS_GEOLOC);
client.disco.addFeature(Namespaces_1.NS_MOOD);
client.disco.addFeature(Namespaces_1.NS_NICK);
client.disco.addFeature(Namespaces_1.NS_TUNE);
client.disco.addFeature((0, Namespaces_1.NS_PEP_NOTIFY)(Namespaces_1.NS_ACTIVITY));
client.disco.addFeature((0, Namespaces_1.NS_PEP_NOTIFY)(Namespaces_1.NS_GEOLOC));
client.disco.addFeature((0, Namespaces_1.NS_PEP_NOTIFY)(Namespaces_1.NS_MOOD));
client.disco.addFeature((0, Namespaces_1.NS_PEP_NOTIFY)(Namespaces_1.NS_NICK));
client.disco.addFeature((0, Namespaces_1.NS_PEP_NOTIFY)(Namespaces_1.NS_TUNE));
client.publishActivity = (data) => {
return client.publish('', Namespaces_1.NS_ACTIVITY, {
itemType: Namespaces_1.NS_ACTIVITY,
...data
});
};
client.publishGeoLoc = (data) => {
return client.publish('', Namespaces_1.NS_GEOLOC, {
itemType: Namespaces_1.NS_GEOLOC,
...data
});
};
client.publishMood = (mood) => {
return client.publish('', Namespaces_1.NS_MOOD, {
itemType: Namespaces_1.NS_MOOD,
...mood
});
};
client.publishNick = (nick) => {
return client.publish('', Namespaces_1.NS_NICK, {
itemType: Namespaces_1.NS_NICK,
nick
});
};
client.publishTune = (tune) => {
return client.publish('', Namespaces_1.NS_TUNE, {
itemType: Namespaces_1.NS_TUNE,
...tune
});
};
client.on('pubsub:published', msg => {
const content = msg.pubsub.items.published[0].content;
switch (msg.pubsub.items.node) {
case Namespaces_1.NS_ACTIVITY:
return client.emit('activity', {
activity: content,
jid: msg.from
});
case Namespaces_1.NS_GEOLOC:
return client.emit('geoloc', {
geoloc: content,
jid: msg.from
});
case Namespaces_1.NS_MOOD:
return client.emit('mood', {
jid: msg.from,
mood: content
});
case Namespaces_1.NS_NICK:
return client.emit('nick', {
jid: msg.from,
nick: content.nick
});
case Namespaces_1.NS_TUNE:
return client.emit('tune', {
jid: msg.from,
tune: msg.pubsub.items.published[0].content
});
}
});
}