Anton Shestakov <av6@dwimlabs.net>, Mon, 18 Apr 2016 22:27:05 +0800
index: show an icon if message was a carbon
js/xmpp.js
Permissions: -rw-r--r--
// Generated by CoffeeScript 1.10.0 var bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; }; Tram.XMPPInterface = (function() { XMPPInterface.prototype.conn = null; function XMPPInterface() { this.onConnect = bind(this.onConnect, this); XMPPInterface.prototype._prepareConnection = function() { console.debug('connection exists, not reconnecting'); return this.conn = new Strophe.Connection("https://" + Tram.config.host + "/http-bind"); XMPPInterface.prototype.connect = function(node, pass) { this._prepareConnection(); jid = node + "@" + Tram.config.domain; return this.conn.connect(jid, pass, this.onConnect); XMPPInterface.prototype.disconnect = function(reason) { this.conn.disconnect(reason); XMPPInterface.prototype.startRegistration = function() { this._prepareConnection(); return this.conn.register.connect(Tram.config.domain, this.onConnect); XMPPInterface.prototype.register = function(username, password) { this.conn.register.fields.username = username; this.conn.register.fields.password = password; return this.conn.register.submit(); XMPPInterface.prototype.finishRegistration = function() { return this.conn.authenticate(); XMPPInterface.prototype.unregister = function() { xmlns: Strophe.NS.REGISTER return this.conn.send(iq.tree()); XMPPInterface.prototype.savevCard = function(data, okcb, failcb) { var $vcard, b, bi, binval, bl, d, dl, type; $vcard.c('NICKNAME').t(data.nickname).up(); $vcard.c('FN').t(data.fullname).up(); bi = data.avatar.indexOf(b); type = data.avatar.substr(dl, bi - dl); binval = data.avatar.substr(bi + bl); $vcard.c('PHOTO').c('TYPE').t(type).up().c('BINVAL').t(binval); return this.conn.sendIQ($vcard.tree(), okcb, failcb); XMPPInterface.prototype.onConnect = function(status, error) { case Strophe.Status.CONNECTING: console.debug('Strophe is connecting.'); this.trigger('connecting'); case Strophe.Status.AUTHENTICATING: console.debug('Strophe is authenticating.'); this.trigger('authenticating'); case Strophe.Status.AUTHFAIL: console.debug('Strophe failed to authenticate:', error); this.trigger('authfail'); case Strophe.Status.ERROR: console.debug('Strophe received an error:', error); case Strophe.Status.CONNFAIL: console.debug('Strophe failed to connect:', error); this.trigger('connfail'); case Strophe.Status.DISCONNECTING: console.debug('Strophe is disconnecting.'); this.trigger('disconnecting'); case Strophe.Status.DISCONNECTED: console.debug('Strophe is disconnected.'); this.trigger('disconnected'); case Strophe.Status.CONNECTED: console.debug('Strophe is connected.'); console.info('My jid:', this.conn.jid); this.trigger('connected'); case Strophe.Status.ATTACHED: console.debug('Strophe is attached.'); console.info('My jid:', this.conn.jid); this.trigger('attached'); case Strophe.Status.REGISTER: console.debug('Got registration prompt.'); this.trigger('register'); case Strophe.Status.REGISTERED: console.debug('Registered!'); this.trigger('registered'); case Strophe.Status.CONFLICT: console.debug('Contact already exists!'); this.trigger('conflict'); case Strophe.Status.NOTACCEPTABLE: console.debug('Registration form not properly filled out.'); this.trigger('notacceptable'); case Strophe.Status.REGIFAIL: console.debug('The server does not support In-Band Registration.'); this.trigger('regifail'); return this.trigger('status', status); XMPPInterface.prototype.generateVersionString = function() { var f, features, i, id, ids, j, k, len, len1, ref, ver; var j, len, ref, results; ref = this.conn.disco._identities; for (j = 0, len = ref.length; j < len; j++) { ids.sort(function(a, b) { if (a.category > b.category) { if (a.category < b.category) { var j, len, ref, results; ref = this.conn.disco._features; for (j = 0, len = ref.length; j < len; j++) { for (j = 0, len = ids.length; j < len; j++) { ver += id.category + "/" + id.type + "/" + ((ref = id.lang) != null ? ref : '') + "/" + id.name + "<"; for (k = 0, len1 = features.length; k < len1; k++) { XMPPInterface.prototype.sendPresence = function(attrs) { ver = this.generateVersionString(); if (attrs.priority != null) { pres.c('priority').t(attrs.priority).up(); if (attrs.show != null) { pres.c('show').t(attrs.show).up(); if (attrs.status != null) { pres.c('status').t(attrs.status).up(); return this.conn.send(pres.tree()); _(Tram.XMPPInterface.prototype).extend(Backbone.Events); //# sourceMappingURL=xmpp.js.map