Monday, November 08, 2010 at 12:06 AM.

system.verbs.builtins.tcp.im.builtinDrivers.jabber.code.init

on init () {
	<<Changes
		<<7/30/02; 3:15:00 PM by JES
			<<Initialize user.im.jabber.prefs.flConnectAtStartup to false.
		<<7/30/02; 2:08:33 PM by JES
			<<Init user.im.jabber.flActive to false instead of true. If running in Frontier, set user.im.jabber.resource to Frontier instead of RadioUserLand.
		<<5/14/02; 1:51:34 PM by JB
			<<Changelog created.
	<<Initializes the data at user.im.jabber
	on niceCreateTable ( adr ) {
		if not defined(adr^) {
			new (tableType, adr)}};
	on niceSetString (adr, str) {
		if not defined(adr^) {
			adr^ = str}};
	on niceSetBool (adr, val) {
		if not defined(adr^) {
			adr^ = val}};
	on niceSetNum (adr, num) {
		if not defined(adr^) {
			adr^ = num}};
	on niceSetAdr (adr, a) {
		if not defined(adr^) {
			adr^ = a}};
	
	bundle { // cleanup old mess
		try { delete ( @user.jabber ); };
		try { delete ( @system.verbs.builtins.jabber ) };
		try { delete ( @Frontier.protocols.jabber ); }};
	
	niceCreateTable( @user.im.jabber );
	
	bundle { // user, password, host, port
		niceSetString ( @user.im.jabber.host, "" );
		if defined (user.radio.usernum) {
			niceSetString ( @user.im.jabber.username, string(user.radio.usernum) )}
		else {
			niceSetString ( @user.im.jabber.username, string.dropNonAlphas(user.prefs.name) )};
		niceSetString ( @user.im.jabber.password, string.dropNonAlphas(string.getRandomPassword(10) ) );
		niceSetNum ( @user.im.jabber.port, 5222 );
		niceSetBool ( @user.im.jabber.flActive, false );
		if system.environment.isRadio {
			niceSetString ( @user.im.jabber.resource, "RadioUserLand" )}
		else {
			niceSetString ( @user.im.jabber.resource, "Frontier" )};
		niceCreateTable( @user.im.jabber.handlers )};
	bundle { // default registration info
		local (regInfo = @user.im.jabber.registrationInfo);
		niceCreateTable(regInfo);
		niceSetString ( @regInfo^.address, "n/a" );
		niceSetString ( @regInfo^.city, "n/a" );
		niceSetString ( @regInfo^.date, "n/a" );
		try { // is user.prefs.mailAddress, reasonably guarenteed to exist?
			niceSetString ( @regInfo^.email, user.prefs.mailAddress )}
		else {
			niceSetString ( @regInfo^.email, "unknown@aVeryInvalidHost.org" )};
		niceSetString ( @regInfo^.first, string.firstWord(user.prefs.name) );
		if string.firstWord(user.prefs.name) != string.lastWord(user.prefs.name) {
			niceSetString(@regInfo^.last, string.lastWord(user.prefs.name))}
		else {
			niceSetString(@regInfo^.last, "")};
		niceSetString ( @regInfo^.misc, "none");
		niceSetString ( @regInfo^.name, user.prefs.name );
		niceSetString ( @regInfo^.nick, user.prefs.name );
		niceSetString ( @regInfo^.password, user.im.jabber.password );
		niceSetString ( @regInfo^.phone, "n/a" );
		niceSetString ( @regInfo^.state, "n/a" );
		niceSetString ( @regInfo^.url, "n/a" );
		niceSetString ( @regInfo^.username, user.im.jabber.username );
		niceSetString ( @regInfo^.zip, "n/a" )};
	bundle { // prefs table
		local (prefs = @user.im.jabber.prefs );
		niceCreateTable ( prefs );
		niceSetBool ( @prefs^.flDebug, false );
		<<niceSetBool ( @prefs^.forceActive, false ) // might be used later
		niceSetBool ( @prefs^.flConnectAtStartup, false );
		niceSetNum ( @prefs^.streamScanFrequency, 30 )}; // half a second
	bundle { // system.temp tables
		niceCreateTable ( @system.temp.jabber );
		niceCreateTable ( @system.temp.jabber.connections );
		niceCreateTable ( @system.temp.jabber.idTables );
		niceSetNum ( @user.im.jabber.idCnt, 1 )};
	return (@user.im.jabber)};
bundle { //test code
	init()}



This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.