Tuesday, August 18, 2009 at 7:52 PM.
godsTweetSuite.poller
on poller (accountname) { <<Changes <<5/4/09; 1:26:10 PM by DW <<Created. local (adrdata = godsTweetSuite.init (accountname), timeline, now = clock.now ()); adrdata^.stats.ctPolls++; adrdata^.stats.whenLastPoll = now; on checktweet (adrtweet) { local (id = nameof (adrtweet^)); if not defined (adrdata^.idsseen.[id]) { local (whenTweet); try { whenTweet = twitter.getTwitterTime (adrtweet^.createdat)} else { whenTweet = adrtweet^.createdat}; local (adrday = mainresponder.calendar.getdayaddress (@adrdata^.calendar, whenTweet)); adrtweet^.id = id; adrtweet^.when = whenTweet; bundle { //extract urls adrtweet^.shortUrl = godsTweetSuite.getLinkFromTweet (adrtweet^.text); if adrtweet^.shortUrl != "" { adrtweet^.longUrl = tcp.httpderef (adrtweet^.shortUrl)}; adrtweet^.textProcessed = twitter.hotUpText (adrtweet^.text)}; local (adrincal = @adrday^.[string.padwithzeros (adrdata^.prefs.tweetSerialNum++, 5)]); adrincal^ = adrtweet^; if adrdata^.prefs.flCommentsEnabled { godsTweetSuite.buildLandingPage (adrincal)}; adrdata^.idsseen.[id] = clock.now ()}}; twitter.getTimeLine (@timeline, true, adrdata^.prefs.username, adrdata^.prefs.password); bundle { //add the new tweets to the calendar local (i, adrtweet); for i = 1 to sizeof (timeline) { checktweet (@timeline [i])}}; <<local (adrtweet = @timeline [i], id = nameof (adrtweet^)) <<if not defined (adrdata^.idsseen.[id]) <<local (whenTweet = twitter.getTwitterTime (adrtweet^.createdat)) <<local (adrday = mainresponder.calendar.getdayaddress (@adrdata^.calendar, whenTweet)) <<adrtweet^.id = id <<adrtweet^.when = whenTweet <<bundle //extract urls <<adrtweet^.shortUrl = godsTweetSuite.getLinkFromTweet (adrtweet^.text) <<if adrtweet^.shortUrl != "" <<adrtweet^.longUrl = tcp.httpderef (adrtweet^.shortUrl) <<adrtweet^.textProcessed = twitter.hotUpText (adrtweet^.text) <<local (adrincal = @adrday^.[string.padwithzeros (adrdata^.prefs.tweetSerialNum++, 5)]) <<adrincal^ = adrtweet^ <<if adrdata^.prefs.flCommentsEnabled <<godsTweetSuite.buildLandingPage (adrincal) <<adrdata^.idsseen.[id] = clock.now () if accountname == "gangfan" { //5/21/09 by DW -- hack for arrington local (timeline, adrtweet); twitter.getusertimeline ("arrington", @timeline); for adrtweet in @timeline { checktweet (adrtweet)}; if not defined (adrdata^.stats.ctArringtonPolls) { adrdata^.stats.ctArringtonPolls = 0}; adrdata^.stats.ctArringtonPolls++; adrdata^.stats.whenLastArringtonPoll = clock.now ()}}; <<scratchpad.timeline = timeline bundle { //test code poller ("gangfan")}
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.