%@ Page Language="C#" %>
<%@ Assembly Name="imsfeeds" %>
<%@ Import Namespace="Microsoft.Feeds.Interop" %>
<%@ Import Namespace="System.IO" %>
<%@ Import Namespace="System.Xml" %>
<%
if (Request.Params.Get("feed") == null) {
%>
Feed Normalizer for Atom and RSS
FEED Normalizer
for Atom and RSS
<%
} else {
string url = Request.Params.Get("feed");
FeedsManager fm = new FeedsManagerClass();
IFeedFolder rootFolder = (IFeedFolder)fm.RootFolder;
IFeed feed = null;
if (!fm.IsSubscribed(url)) {
feed = (IFeed)rootFolder.CreateFeed(url, url);
} else {
feed = (IFeed)fm.GetFeedByUrl(url);
}
feed.Download();
string xml = feed.Xml(feed.itemCount,
FEEDS_XML_SORT_PROPERTY.FXSP_PUBDATE,
FEEDS_XML_SORT_ORDER.FXSD_DESCENDING,
FEEDS_XML_FILTER_FLAGS.FXFF_ALL,
FEEDS_XML_INCLUDE_FLAGS.FXIF_CF_EXTENSIONS);
if (Request.Params.Get("pretty") != null) {
try {
// based on http://dotnet.editme.com/codePrettyPrintXML
MemoryStream MS = new MemoryStream();
XmlTextWriter W = new XmlTextWriter(MS, Encoding.Unicode);
XmlDocument D = new XmlDocument();
D.LoadXml(xml);
W.Formatting = Formatting.Indented;
D.WriteContentTo(W);
W.Flush();
MS.Flush();
MS.Position = 0;
StreamReader SR = new StreamReader(MS);
xml = SR.ReadToEnd();
} catch (XmlException) {
}
}
Response.ContentType = "application/xml";
Response.Write(xml);
feed.Delete();
}
%>