Saturday, April 02, 2011 at 9:21 PM.
rssToBlogSuite.readFeed
on readFeed (adrblog) {
<<Changes
<<12/23/10; 11:22:11 PM by DW
<<Created.
rssToBlogSuite.initBlog (adrblog);
if adrblog^.prefs.enabled {
local (items, adritem, now = clock.now ());
try {
xml.rss.getFeedItems (adrblog^.prefs.urlfeed, @items, @adrblog^.feedinfo);
adrblog^.stats.ctReads++;
adrblog^.stats.whenLastRead = now;
for adritem in @items {
local (guid, adrhistory);
bundle { //set guid
try {
guid = xml.getvalue (adritem, "guid")}
else {
guid = ""; //synthesize the guid -- 9/10/09 by DW
try {guid = guid + xml.getvalue (adritem, "pubDate")};
try {guid = guid + xml.getvalue (adritem, "link")};
try {guid = guid + xml.getvalue (adritem, "title")};
if sizeof (guid) > 0 {
guid = string.hashmd5 (guid)}}};
if sizeof (guid) > 0 {
local (adrhistory = @adrblog^.history.[guid]);
if not defined (adrhistory^) {
local (adrcal = @adrblog^.calendar);
local (adrday = mainresponder.calendar.getdayaddress (adrcal, now));
local (adrpost = @adrday^.[string.padwithzeros (adrblog^.stats.ctPosts++, 5)]);
new (tabletype, adrpost);
rssToBlogSuite.initPost (adrpost);
adrpost^.itemdata = adritem^;
adrpost^.guid = guid;
bundle { //save the address in the history table
local (s = string.popfilefromaddress (adrpost));
s = string.delete (s, 1, sizeof (string.popfilefromaddress (adrcal) + 1));
adrhistory^ = s}};
<<adrhistory^ = string.popfilefromaddress (adrpost) //store addresses as strings
bundle { //save it
local (adrpost = address (string.popfilefromaddress (@adrblog^.calendar) + "." + adrhistory^));
adrpost^.itemdata = adritem^;
rssToBlogSuite.saveIfNewOrChanged (adrblog, adrpost)}}}}
else {
adrblog^.stats.ctErrors++;
adrblog^.stats.lastError = tryerror;
adrblog^.stats.whenLastError = now}}};
bundle { //test code
readfeed (@config.rssToBlog.blogs.scripting)}
<<readfeed (@config.rssToBlog.blogs.["linkblog.xml"])
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.