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

godsTweetSuite.followers.crawler

on crawler (accountname) {
	<<Changes
		<<5/31/09; 5:28:15 PM by DW
			<<Created. 
	on saveProfile (adrprofile) {
		local (adr = @twitterProfiles.[accountname]);
		if not defined (adr^) {
			new (tabletype, adr)};
		adr = @adr^.[nameof (adrprofile^)];
		if not defined (adr^) {
			adr^ = adrprofile^}};
	local (adrdata = godsTweetSuite.init (accountname), adrfriend, adrfollow, rankings);
	new (tabletype, @adrdata^.rankings);
	twitter.getfriends (@friends, adrdata^.prefs.username, adrdata^.prefs.password);
	for adrfriend in @adrdata^.userprofiles {
		local (name = nameof (adrfriend^));
		godsTweetSuite.followers.data.crawlingname = name; //debugging
		try {twitter.getUserFollows (name, @follows)};
		for adrfollow in @follows {
			local (namefollow = nameof (adrfollow^));
			saveProfile (adrfollow);
			adrrank = @adrdata^.rankings.[namefollow];
			if not defined (adrrank^) {
				adrrank^ = 1}
			else {
				adrrank^++}}}};
	<<scratchpad.friends = friends
bundle { //test code
	godsTweetSuite.followers.crawler ("twitterCorp");
	godsTweetSuite.followers.buildReport ("twitterCorp")}
	<<crawler ("nyt")



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.