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.