|
|
|
@ -29,7 +29,7 @@ var Client = function(params, callback) {
|
|
|
|
|
process.exit(1);
|
|
|
|
|
});
|
|
|
|
|
this.xmpp.addListener('stanza', function(stanza) {
|
|
|
|
|
sys.debug('STANZA: '[jabber.color] + ('<' + stanza.name + '> ').bold[jabber.color] + stanza);
|
|
|
|
|
//sys.debug('STANZA: '[jabber.color] + ('<' + stanza.name + '> ').bold[jabber.color] + stanza);
|
|
|
|
|
if(stanza.name == 'iq') {
|
|
|
|
|
if(stanza.attrs.type == 'result') {
|
|
|
|
|
jabber._debug('IQ result: ' + stanza);
|
|
|
|
@ -66,7 +66,7 @@ var Client = function(params, callback) {
|
|
|
|
|
if(stanza.name == 'message') {
|
|
|
|
|
var from = stanza.attrs.from;
|
|
|
|
|
if(stanza.attrs.type == 'groupchat') {
|
|
|
|
|
jabber.emit('groupchat', from, stanza);
|
|
|
|
|
jabber.emit('groupchat', from, stanza.getChild('body').getText(), stanza);
|
|
|
|
|
} else {
|
|
|
|
|
jabber._debug('MESSAGE: ' + stanza);
|
|
|
|
|
jabber.emit('message', from, stanza.getChild('body').getText(), stanza);
|
|
|
|
@ -78,15 +78,15 @@ var Client = function(params, callback) {
|
|
|
|
|
jabber.presence();
|
|
|
|
|
jabber.emit('online');
|
|
|
|
|
jabber.askForRoster(function(roster) {
|
|
|
|
|
jabber._debug("ROSTER : "[jabber.color] + JSON.stringify(roster));
|
|
|
|
|
//jabber._debug("ROSTER : "[jabber.color] + JSON.stringify(roster));
|
|
|
|
|
if(callback != null) {
|
|
|
|
|
callback.call(jabber);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
this.addListener('groupchat', function(from, stanza) {
|
|
|
|
|
fromName = from.split('@')[0];
|
|
|
|
|
jabber.rooms[fromName].emit('message', stanza);
|
|
|
|
|
this.addListener('groupchat', function(from, msg, stanza) {
|
|
|
|
|
fromName = from.split('/')[0];
|
|
|
|
|
jabber.rooms[fromName].emit('message', msg, stanza);
|
|
|
|
|
});
|
|
|
|
|
this.addListener('iqResult', function(id, stanza){
|
|
|
|
|
jabber._iqCallback[id].call(jabber, stanza);
|
|
|
|
@ -153,9 +153,8 @@ Client.prototype.registerIqHandler = function(xmlns, action) {
|
|
|
|
|
Client.prototype.message = function(to, message) {
|
|
|
|
|
this.xmpp.send(new xmpp.Element('message', {
|
|
|
|
|
to: to,
|
|
|
|
|
type: 'chat'}).
|
|
|
|
|
c('body').
|
|
|
|
|
t(message));
|
|
|
|
|
type: 'chat'})
|
|
|
|
|
.c('body').t(message));
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Client.prototype.askForRoster = function(callback) {
|
|
|
|
@ -210,8 +209,7 @@ Client.prototype.room = function(name, callback) {
|
|
|
|
|
|
|
|
|
|
Client.prototype.disconnect = function() {
|
|
|
|
|
this.xmpp.send(new xmpp.Element('presence', {type: 'unavailable'})
|
|
|
|
|
.c('status')
|
|
|
|
|
.t('Logged out')
|
|
|
|
|
.c('status').t('Logged out')
|
|
|
|
|
.tree());
|
|
|
|
|
var jabber = this;
|
|
|
|
|
/* Object.keys(this.rooms).forEach(function(room) {
|
|
|
|
@ -225,6 +223,7 @@ var Room = function(client, name, callback) {
|
|
|
|
|
events.EventEmitter.call(this);
|
|
|
|
|
this.client = client;
|
|
|
|
|
this.room = name;
|
|
|
|
|
this.to = this.room + '/' + this.client.jid.user;
|
|
|
|
|
var room = this;
|
|
|
|
|
this.addListener('presence', function(from, stanza) {
|
|
|
|
|
var jfrom = new xmpp.JID(from);
|
|
|
|
@ -249,8 +248,9 @@ sys.inherits(Room, events.EventEmitter);
|
|
|
|
|
exports.Room = Room;
|
|
|
|
|
|
|
|
|
|
Room.prototype.presence = function() {
|
|
|
|
|
sys.debug(('presence: ' + this.room)[this.client.color]);
|
|
|
|
|
this.client.xmpp.send(new xmpp.Element('presence', {
|
|
|
|
|
to: this.room + '/' + this.client.jid.user
|
|
|
|
|
to: this.to
|
|
|
|
|
})
|
|
|
|
|
.c('priority').t("5").up()
|
|
|
|
|
.c('x', {xmlns:"http://jabber.org/protocol/muc"})
|
|
|
|
@ -258,6 +258,12 @@ Room.prototype.presence = function() {
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Room.prototype.message = function(msg) {
|
|
|
|
|
|
|
|
|
|
Room.prototype.message = function(message) {
|
|
|
|
|
this.client.xmpp.send(new xmpp.Element('message', {
|
|
|
|
|
to: this.to,
|
|
|
|
|
type: 'groupchat'})
|
|
|
|
|
.c('body').t(message).up()
|
|
|
|
|
// .c('nick', {xmlns: 'http://jabber.org/protocol/nick'}).t(this.client.jid.username)
|
|
|
|
|
.tree()
|
|
|
|
|
);
|
|
|
|
|
};
|