I'm embarking on a fun project this week. I'm going to start coding a Media Center Add In with the following features...
- Background Add In.
- Polls RSS feeds according to an OPML file.
- Retrieves new posts from those RSS feeds.
- Schedules TV recordings based on Click To Record document enclosures in the post.
I've got a couple of reasons...
- I want to get back to C# and managed code. HTML + JScript has been fun, but it's SO last decade.
- This could be an interesting scenario. We've got podcasts and videoblogs, what about a TVLog...?
- This could lead to even more interesting scenarios -- breaking news alerts...?
- Perhaps this could lead to a super-simple podcasting downloader?
- Exercise our SDK documentation for Media Center Add Ins in order to give feedback to our product team.
- Have an ongoing project to discuss here in the blogosphere (to date, most of my posts have been single topics).
I'm off to a great start -- just finished coding an Add In which takes this XML (learn more about the Click To Record Feature)...
<clickToRecord xmlns="urn:schemas-microsoft-com:ehome:clicktorecord">
<body>
<programRecord isRecurring="false">
<program>
<key field="urn:schemas-microsoft-com:ehome:epg:program#title">Star Trek: The Next Generation</key>
</program>
</programRecord>
</body>
</clickToRecord>
...and schedules a recording of a single show via this C# code in an On Demand Add In (learn more starting at About Media Center Add Ins)...
void IAddInEntryPoint.Launch(AddInHost host)
{
try
{
string strClickToRecordXML = string.Empty;
Television objTV = host.Television;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("ClickToRecord.c2r");
strClickToRecordXML = xmlDoc.InnerXml;
objTV.ScheduleRecording(strClickToRecordXML);
host.HostControl.Dialog("Completed ScheduleRecording Method Call", "Success", 1, 0, false);
}
catch(Exception ex)
{
host.HostControl.Dialog(ex.Message,"Exception",1,5,false);
}
}
So, I have a couple of questions for the readers of this blog...
- Are there any additional features you might like to see in this Add In?
- Do you have pointers to great documentation on consuming RSS in managed code which might be helpful?