コード例 #1
0
        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 { }
        }
コード例 #2
0
ファイル: Feed.cs プロジェクト: arnoldblinn/photo.misc
 public static Feed LoadSmugMugFeed(string userName, SmugMugFeedType smugMugFeedType)
 {
     return(Load(FeedType.SmugMug, userName + "|" + ((int)smugMugFeedType).ToString()));
 }
コード例 #3
0
ファイル: Feed.cs プロジェクト: arnoldblinn/photo.misc
        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);
        }