view fdsq.js @ 55:fd69d35cf2e6

Move default storage directory; better naming of nodes; fix notification sending.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Mon, 25 Jul 2011 17:35:32 -0700
parents 0d3f18bb1d36
children 99bd1d1ac071
line wrap: on
line source

/*
 *  Copyright (C) 2010  Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
 *
 *  This file is part of PSĜS, a PubSub server written in JavaScript.
 *
 *  PSĜS is free software: you can redistribute it and/or modify
 *  it under the terms of the GNU Affero General Public License as
 *  published by the Free Software Foundation, either version 3 of the
 *  License.
 *
 *  PSĜS is distributed in the hope that it will be useful,
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *  GNU Affero General Public License for more details.
 *
 *  You should have received a copy of the GNU Affero General Public License
 *  along with PSĜS.  If not, see <http://www.gnu.org/licenses/>.
 */

'use strict';

var sha1hex = require('sha1').hex;

var fdsq = exports;
fdsq.makeRandomId = function() {
	return sha1hex(Date()+Math.random());
};

var JID = function(jid) {
	this.full = jid;

	var s = jid.indexOf('/');
	if (s == -1)
		this.resource = '';
	else {
		this.resource = jid.substring(s+1);
		jid = jid.substr(0, s);
	}

	var a = jid.indexOf('@');
	if (a == -1) {
		this.user = '';
		this.server = jid;
	} else {
		this.user = jid.substr(0, a);
		this.server = jid.substr(a+1);
	}
	this.bare = jid;
};

fdsq.toBare = function(jid) {
	var j = new JID(jid);
	return j.bare;
};

fdsq.toResource = function(jid) {
	var j = new JID(jid);
	return j.resource;
};