Windows RSS API
30.04.2007 | GunnarKoos IE7-ga tuli välja ka Microsofti RSS API, mis võimaldab IE7 blodige feed-e hallata programmiliselt. See tähendab seda, et iga programmeerija saab kirjutada vajadusel oma feed reader-i. Tegemist ei pea ilmtingimata olema blogidega, samad formaadis feed-ide abil saab edastada ka muud infot.
Kuidas suhelda feed-idega
Feed-ide lugemiseks kasutame Microsoft.Feeds.Interop nimeruumi objekte. Ukse teeb meile lahti FeedsManager, mille abil saame sirvima hakata katalooge ja nendesse kuuluvaid feed-e. FeedsManager annab meile juurkataloogi, millest algab kataloogide struktuur.
Olemas on ka kõik võimalused kataloogide ja feed-ide haldamiseks. See tähendab, et igal ajal saame objekte ka luua, muuta ja kustutada. Kataloogidega on võimalikud ka erinevad failisüsteemi operatsioonid. Näite tegin tavalise konsooli rakendusena.
RSS API kasutusnäide
Annan siinkohal ühe lihtsa näite, mis aitab ehk RSS API-ga otsad lahti teha. Näites registreerime ühe feed-i, kuvame selle ning selle esimese kande andmed ning seejärel kustutame feed-i.
using Microsoft.Feeds.Interop;
namespace rsstest
{
class Program
{
static void Main(string[] args)
{
// Loome uue manageri ning küsime selle juurkataloogi.
FeedsManager manager = new FeedsManager();
IFeedFolder folder = (IFeedFolder)manager.RootFolder;
IFeed feed;
string sTmp;
Console.ForegroundColor = ConsoleColor.Yellow;
// Kui feedi pole, siis registreerime selle. Kui feed on
// olemas, siis laeme selle.
if (!folder.ExistsFeed("DT"))
{
Console.WriteLine("Creating feed");
sTmp = "http://feeds.feedburner.com/dtblogi";
feed = (IFeed)folder.CreateFeed("DT", sTmp);
}
else
{
Console.WriteLine("Getting feed");
feed = (IFeed)folder.GetFeed("DT");
}
Console.ResetColor();
// Laeme alla viimase seisu.
feed.Download();
// Kirjutame välja feedi andmed
Console.WriteLine("Copyright: " + feed.Copyright);
Console.WriteLine("Description: " + feed.Description);
Console.WriteLine("Download URL: " + feed.DownloadUrl);
Console.WriteLine("Image: " + feed.Image);
Console.WriteLine("Interval: " + feed.Interval.ToString());
Console.WriteLine("Is list: " + feed.IsList.ToString());
Console.WriteLine("Item count: " + feed.ItemCount.ToString());
Console.WriteLine("Language: " + feed.Language);
sTmp = feed.LastBuildDate.ToString("dd.MM.yyyy");
Console.WriteLine("Last build date: " + sTmp);
sTmp = feed.LastDownloadTime.ToString("dd.MM.yyyy");
Console.WriteLine("Last download time: " + sTmp);
sTmp = feed.LastWriteTime.ToString("dd.MM.yyyy");
Console.WriteLine("Last write time: " + sTmp);
Console.WriteLine("Link: " + feed.Link);
sTmp = feed.LocalEnclosurePath;
Console.WriteLine("Local enclosure path: " + sTmp);
Console.WriteLine("Local Id: " + feed.LocalId);
sTmp = feed.MaxItemCount.ToString();
Console.WriteLine("Max item count: " + sTmp);
Console.WriteLine("Name: " + feed.Name);
Console.WriteLine("Path: " + feed.Path);
sTmp = feed.PubDate.ToString("dd.MM.yyyy");
Console.WriteLine("PubDate: " + sTmp);
Console.WriteLine("Title: " + feed.Title);
Console.WriteLine("Time to live: " + feed.Ttl.ToString());
sTmp = feed.UnreadItemCount.ToString();
Console.WriteLine("Unread item count: " + sTmp);
Console.WriteLine("Url: " + feed.Url);
Console.WriteLine("");
// Küsime esimese kande
IFeedItem item = (IFeedItem)feed.GetItem(0);
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("Item");
Console.ResetColor();
// Kirjutame välja kande andmed
Console.WriteLine("Author: " + item.Author);
Console.WriteLine("Comments: " + item.Comments);
Console.WriteLine("Download URL: " + item.DownloadUrl);
Console.WriteLine("GUID: " + item.Guid);
Console.WriteLine("Is read: " + item.IsRead.ToString());
sTmp = item.LastDownloadTime.ToString("dd.MM.yyyy");
Console.WriteLine("Last download time: " + sTmp);
Console.WriteLine("Link: " + item.Link);
Console.WriteLine("Local Id: " + item.LocalId.ToString());
sTmp = item.Modified.ToString("dd.MM.yyyy");
Console.WriteLine("Modified: " + sTmp);
sTmp = item.PubDate.ToString("dd.MM.yyyy");
Console.WriteLine("PubDate: " + sTmp);
Console.WriteLine("Title: " + item.Title);
// Kustuta feed ja oota konsoolilt nupuvajutust.
feed.Delete();
Console.ResetColor();
Console.ReadLine();
}
}
}
Viited
Infot Microsofti RSS API kohta leiab järgnevatel lehekülgedel.
- Windows RSS API (MSDN Library)
- Microsoft Team RSS Blog
