Tuesday, August 18, 2009 at 7:53 PM.

godsTweetSuite.synchSubs

on synchSubs (accountname) {
	<<Changes
		<<5/4/09; 12:24:08 PM by DW
			<<Created. 
	on log (s) {
		msg (s);
		op.insert (s + " -- " + clock.now (), up);
		twitter.newpost (s, adrdata^.prefs.username, adrdata^.prefs.password)};
	local (adrdata = godsTweetSuite.init (accountname), adr);
	bundle { //set up the log outline
		target.set (@adrdata^.log);
		op.firstsummit ()};
		<<edit (@adrdata^.log)
		<<window.about ()
	local (username = adrdata^.prefs.username, password = adrdata^.prefs.password);
	twitter.getFriends (@friends, username, password);
	<<scratchpad.friends = friends
	for adr in @friends {
		local (name = nameof (adr^));
		if not defined (adrdata^.userProfiles.[name]) { //no longer in top 100
			log ("Unfollowing @" + name);
			twitter.unfollow (name, username, password);
			adrdata^.stats.ctUnfollows++;
			adrdata^.stats.whenLastUnfollow = clock.now ()}};
	for adr in @adrdata^.userProfiles {
		local (name = nameof (adr^));
		if not defined (friends.[name]) { //must be added to top 100
			log ("Following @" + name);
			twitter.follow (name, username, password);
			adrdata^.stats.ctFollows++;
			adrdata^.stats.whenLastFollow = clock.now ()}}};
bundle { //test code
	synchSubs ()}



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.