|
Channelroll bugfix, RSS continuity
Yesterday my channelroll broke, and began displaying the message: The server returned a SOAP-ENV:Client fault: Can't create item "." because "" is an illegal name. I think I've seen this happen on other sites, but I never got the chance to figure out what it meant until it happened to me. Here's the explanation, and the fix.
The offending URL was:
http://www.voidstar.com/rssify.php?url=http%3A%2F%2Fwebvoice.blogspot.com%2F
Some quirk involving the rssify script and the blogspot.com service was (temporarily, I guess) resulting in an empty channel-level <title> element. You can, it turns out, subscribe to a feed whose channel title is empty. But it breaks the channelroll. I've updated the script with the following bolded changes:
for adr in (@aggregatorData.services) { scratchpad.subsTried = scratchpad.subsTried + 1; try { local(title = adr^.compilation.channeltitle); local(channelUrl = adr^.compilation.channellink); local(rssUrl = nameOf(adr^)); local (l); new (listType, @l); l[0] = channelUrl; l[0] = rssUrl; t[title] = l; scratchpad.subsGot = scratchpad.subsGot + 1; } else { scratchpad.subsNotGot = nameOf(adr^) + "," + scratchpad.subsNotGot; } }
The bad URL was, in any case, apparently obselete. The current one is:
www.voidstar.com/module.php?mod=blog&op=feed&name=jbond
It strikes me that with namespace support for RSS, an element might be added that would enable aggregators to redirect in such cases. This was a problem for me when I switched from radio.weblogs.com to weblog.infoworld.com. I was stuck doing this:
<?xml version="1.0" ?> <rss version="0.92"> <channel> <title>Jon's Radio</title> <link>http://weblog.infoworld.com/udell/ </link> <description>Jon Udell's Radio Blog</description> <copyright>Copyright 2002 Jon Udell</copyright>
<item> <title>Redirection</title> <link>http://weblog.infoworld.com/udell/rss.xml </link> <description>This feed has moved to http://weblog.infoworld.com/udell/rss.xml. I've used a client-side redirect (HTTP-EQUIV="refresh") for the home page, but haven't figured out how to do the same for the RSS channel. If you see a way, please clue me in. Otherwise, if you want to keep subscribing to my feed, you'll have to switch your aggregator to the new link. Sorry for the inconvenience! - Jon</description> </item>
</channel> </rss>
I don't see any proposed modules that address this situation, but I can imagine a mod_redir that would go something like this:
<?xml version="1.0" ?> <rss version="2.0" xmlns:redir="http://purl.org/rss/1.0/modules/redir/" > <channel> <redir:rssUrl>http://weblog.infoworld.com/udell/rss.xml </redir:rssUrl> <redir:link>http://weblog.infoworld.com/udell/ </redir:link> <title>Jon's Radio</title> <link>http://radio.weblogs.com/0100887/ </link> <description>Jon Udell's Radio Blog</description> </channel> </rss>
|