[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Fwd: [rss-public] Microsoft Feeds API Enclosure Test
Does someone who has access to an MSFT system care to take a
look at this?
>From: James M Snell <jasnell@xxxxxxxxx>
>To: rss-public@xxxxxxxxxxxxxxx
>Subject: Re: [rss-public] Microsoft Feeds API Enclosure Test
>Date: Wed, 22 Feb 2006 21:28:19 -0800
>Message-ID: <43FD47F3.6000000@xxxxxxxxx>
>List-Id: <rss-public.yahoogroups.com>
>
>Hmm.. interestingly, this API also looks as if it would stuff multiple
>enclosures in Atom also... in which case, I'd argue that the API is
>simply broken.
>
>rcade wrote:
>> Power Line has a podcast feed that includes multiple enclosures, as
>> someone pointed out earlier on this list:
>>
>> http://www.powerlineblog.com/podcasts.xml
>>
>> A cached copy of this feed is here:
>>
>> http://www.rssboard.org/files/example-multiple-enclosures.xml
>>
>> This feed contains one item with one enclosure, a second with three
>> enclosures, and a third with three enclosures (in that order).
>>
>> After subscribing to this feed in MSIE 7 and choosing automatic
>> downloads of enclosures, I wrote a VB.NET console application that
>> displays the URL of each enclosure in the feed:
>>
>> Sub Main()
>> Dim fm : fm = CreateObject("Microsoft.FeedsManager")
>> Dim fmroot = fm.RootFolder
>> Dim plfeed = fmroot.getFeed("Power Line")
>> Dim i
>> For i = 0 To plfeed.Items.Count - 1
>> Dim item = plfeed.getItem(i)
>> Console.WriteLine("Title: " + item.Title)
>> Dim plenclosure = item.Enclosure()
>> Console.WriteLine("Enclosure: " + plenclosure.Url)
>> Console.WriteLine("")
>> Console.Write(item.xml(1))
>> Console.WriteLine("")
>> Next
>> End Sub
>>
>> Here's the output of the application (with item elements other than
>> enclosure removed from the XML):
>>
>> -- BEGIN OUTPUT --
>>
>> Title: Listen to Col. Stephenson and Judge for Yourself
>> Enclosure: http://powerlineblog.com/podcasts/NA218Stephenson.mp3
>>
>> <item><enclosure
>> url="http://powerlineblog.com/podcasts/NA218Stephenson.mp3"
>> length="21455322" type="audio/mpeg"
>> xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005"
>> cf:path="C:\Documents and Settings\Rogers\Local Settings\Temporary
>> Internet Files\Enclosure\{0C1E2407-FAE4-447F-9054-FB1C7CFE6A86}\Listen
>> to Col. Stephenson and Judge for Yourself.mp3"
>> cf:downloadstatus="Downloaded"/></item>
>> -------------------------------------------------------
>> Title: New Podcast: Yesterday's Northern Alliance Radio Network
>> Enclosure: http://powerlineblog.com/podcasts/Feb111stHourPt1.mp3
>>
>> <item><enclosure
>> url="http://powerlineblog.com/podcasts/Feb111stHourPt1.mp3"
>> length="19949804" type="audio/mpeg"
>> xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005"
>> cf:path="C:\Documents and Settings\Rogers\Local Settings\Temporary
>> Internet Files\Enclosure\{0C1E2407-FAE4-447F-9054-FB1C7CFE6A86}\New
>> Podcast Yesterday's Northern Alliance Radio Network.mp3"
>> cf:downloadstatus="Downloaded"/><enclosure
>> url="http://powerlineblog.com/podcasts/Feb111stHourPt2.mp3"
>> length="8550404" type="audio/mpeg"/><enclosure
>> url="http://powerlineblog.com/podcasts/Feb112ndHour.mp3"
>> length="15032924" type="audio/mpeg"/></item>
>> -------------------------------------------------------
>> Title: Now Podcasting: The Northern Alliance Radio Network!
>> Enclosure: http://powerlineblog.com/podcasts/January21,1stHour.mp3
>>
>> <item><enclosure
>> url="http://powerlineblog.com/podcasts/January21,1stHour.mp3"
>> length="39923577" type="audio/mpeg"
>> xmlns:cf="http://www.microsoft.com/schemas/rss/core/2005"
>> cf:path="C:\Documents and Settings\Rogers\Local Settings\Temporary
>> Internet Files\Enclosure\{0C1E2407-FAE4-447F-9054-FB1C7CFE6A86}\Now
>> Podcasting The Northern Alliance Radio Network!.mp3"
>> cf:downloadstatus="Downloaded"/><enclosure
>> url="http://powerlineblog.com/podcasts/January212ndHourPt1.mp3"
>> length="14954800" type="audio/mpeg"/><enclosure
>> url="http://powerlineblog.com/podcasts/January212ndHourPt2.mp3"
>> length="12517975" type="audio/mpeg"/></item>
>> -------------------------------------------------------
>>
>> -- END OUTPUT --
>>
>> The Feeds API refers to an item enclosure singularly. The only method
>> I found reads a enclosure from an item. When multiple
>> enclosures are present, item.Enclosure() retrieves the first.
>>
>> An item's xml(1) method produces its contents as XML, with the numeric
>> 1 argument indicating that Microsoft's common format feed
>> elements, and Simple List Extensions should be included in the output.
>>
>> The XML output includes the multiple enclosures, in which the
>> cf:downloadstatus element only is present for the first enclosure in
>> each item.
>>
>> Checking the Temporary Internet Files folder where enclosures are
>> being stored, only the first enclosure in each of the three items is
>> present.
>>
>> As the Feeds API is presently implemented, publishers of RSS feeds
>> with multiple enclosures will lose two advantages of Microsoft's
>> common feed engine when their feeds are read:
>>
>> 1. Enclosures beyond an item's first are not automatically downloaded,
>> so they must be requested manually by a user.
>>
>> 2. Programmers who build on the API will have to grab the XML and get
>> these files directly.
>>
>> This is my first poke around the Feeds API and VB.NET, so it's likely
>> I may be overlooking things.
----- End forwarded message -----
Regards,
--
Aristotle Pagaltzis // <http://plasmasturm.org/>