view util.js @ 23:5fc4ee90c1bc

A lot of refactorization. First attempt to modularize the server.
author Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
date Sun, 31 Oct 2010 23:58:07 +0100
parents 60c80751cfa5
children dcf1f09f8cee
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/>.
 */

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

var util = exports;
util.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;
};

util.toBareJID = function(jid) {
	var j = new JID(jid);
	return j.bare;
};