public override void LoadDataFromXmlNode(XmlNode node) { base.LoadDataFromXmlNode(node); try { this.userName = node.SelectSingleNode("UserName").InnerText; } catch { } try { this.smugMugFeedType = (SmugMugFeedType)Convert.ToInt32(node.SelectSingleNode("SmugMugFeedType").InnerText); } catch { } }
public static Feed LoadSmugMugFeed(string userName, SmugMugFeedType smugMugFeedType) { return(Load(FeedType.SmugMug, userName + "|" + ((int)smugMugFeedType).ToString())); }
public List <FeedItem> GetFeedItems(DateTime dateContext, bool bypassCaches) { if (this.items == null || bypassCaches || this.itemsInvalidDate > dateContext) { List <FeedItem> items = new List <FeedItem>(); if (this.feedType == FeedType.Rss) { string[] fields = this.data.Split('|'); string rssFeedUrl = fields[0]; RssChannelPriority priority = (RssChannelPriority)Convert.ToInt32(fields[1]); AddRssFeed(items, rssFeedUrl, priority, dateContext); } else if (this.feedType == FeedType.Facebook) { string sessionKey = this.data; AddFacebookFeed(items, sessionKey, dateContext); } else if (this.feedType == FeedType.WebPage) { string url = this.data; AddWebPageItems(items, url, dateContext); } else if (this.feedType == FeedType.SmugMug) { string[] fields = this.data.Split('|'); string userName = fields[0]; SmugMugFeedType smugMugFeedType = (SmugMugFeedType)Convert.ToInt32(fields[1]); string rssFeedUrl; if (smugMugFeedType == SmugMugFeedType.Popular) { rssFeedUrl = "http://api.smugmug.com/hack/feed.mg?Type=nicknamePopular&Data=" + userName + "&format=rss"; } else // default is most recent { rssFeedUrl = "http://api.smugmug.com/hack/feed.mg?Type=nicknameRecent&Data=" + userName + "&format=rss"; } AddRssFeed(items, rssFeedUrl, RssChannelPriority.Image, dateContext); } else if (this.feedType == FeedType.Flickr) { string userName = this.data; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("http://api.flickr.com/services/rest/?method=flickr.people.findByUsername&username="******"&api_key=9c870e813907c4a318a0941e70d2fa7a"); string rssFeedUrl = "http://api.flickr.com/services/feeds/photos_public.gne?id=" + xmlDoc.SelectSingleNode("rsp/user/@nsid").Value + "&lang=en-us&format=rss_200"; AddRssFeed(items, rssFeedUrl, RssChannelPriority.Image, dateContext); } else if (this.feedType == FeedType.Space) { string[] fields = this.data.Split('|'); string spaceName = fields[0]; string albumId = fields[1]; if (!String.IsNullOrEmpty(albumId)) { AddAlbumId(items, spaceName, albumId, dateContext); } else { Dictionary <string, string> albums = SpaceChannel.GetAlbums(spaceName); foreach (string key in albums.Keys) { string albumId2 = albums[key]; AddAlbumId(items, spaceName, albumId2, dateContext); } } } this.isDirty = true; this.itemsDate = dateContext; this.itemsInvalidDate = dateContext.AddMinutes(defaultFetchItemsTTL); this.items = items; } return(this.items); }