示例#1
0
        public static void ReadMobFoxAdResponse(Uri rssUri, Action<List<AdWebResponse>, Exception> callback)
        {
            callback.CheckNotNullThrowException();

            Network.GetStringFromURL(rssUri, (results, ex) =>
            {
                if (ex != null || results.Contains("<error>") || results.Contains("<request type=\"noAd\">"))
                {
                    if (ex == null)
                    {
                        if (results.Contains("<error>"))
                        {
                            ex = new Exception("Publisher ID incorrect");
                        }
                        else
                        {
                            ex = new Exception("No Ad Served");
                        }
                    }
                    callback(null, ex);
                    return;
                }
                try
                {
                    var xdoc = XDocument.Parse(results);

                    List<AdWebResponse> AdWebResponse = (from item in xdoc.Descendants("request")
                                                         select new AdWebResponse()
                                                         {
                                                             URL = item.IfNullEmptyString("clickurl"),
                                                             ImageURL = string.IsNullOrEmpty(item.IfNullEmptyString("imageurl")) ? item.ifNullHTMLImageSource("htmlString") : item.IfNullEmptyString("imageurl")
                                                         }).ToList();

                    callback(AdWebResponse, null);
                }
                catch (Exception e)
                {

                    callback(null, e);
                }
            });
        }
        public void GetBlogCategories(Action<List<CatFeedItem>, Exception> callback)
        {
            callback.CheckNotNullThrowException();

            var uri = new Uri(app.SiteURL + "?feed=categories");
            network.GetStringFromURL(uri, (results, ex) =>
            {
                if (ex != null)
                    callback(null, ex);

                XDocument xdoc = XDocument.Parse(results);
                List<CatFeedItem> catFeedItems = (from item in xdoc.Descendants("item")
                                                  select new CatFeedItem()
                                                  {
                                                      Title = item.IfNullEmptyString("title"),
                                                      ID = item.IfNullEmptyString("id"),
                                                      subTitle = ""
                                                  }).Take(10).ToList();
                callback(catFeedItems, null);
            });
        }
        public void ReadRssComments(string PostId, Action<List<RSSCommentItem>, Exception> callback)
        {
            callback.CheckNotNullThrowException();

            var uri = new Uri(string.Format("{0}?feed=get_comments_feed&post_id={1}&timestamp={2}", app.SiteURL, PostId, DateTime.Now.Ticks));
            network.GetStringFromURL(uri, (results, ex) =>
            {
                if (ex != null)
                    callback(null, ex);

                XDocument xdoc = XDocument.Parse(results);

                List<RSSCommentItem> rssCommentItems = (from item in xdoc.Descendants("item")
                                                        select new RSSCommentItem()
                                                        {
                                                            Author = item.Element("author").Value.Trim(),
                                                            Email = item.Element("email").Value.Trim(),
                                                            Comment = item.Element("comment").Value.Trim()
                                                        }).Take(30).ToList();
                callback(rssCommentItems, null);
            });
        }
示例#4
0
        public static void ReadInnerActiveAdResponse(Uri rssUri, Action<List<AdWebResponse>, Exception> callback)
        {
            callback.CheckNotNullThrowException();

            Network.GetStringFromURL(rssUri, (results, ex) =>
            {
                if (ex != null)
                {
                    callback(null, ex);
                    return;
                }
                try
                {
                    results = results.Replace("tns:", "");

                    var xdoc = XDocument.Parse(results);
                    var AdError = xdoc.Root.Attribute("Error").Value;
                    var AdClientID = xdoc.Root.Element("Client").FirstAttribute.Value;
                    List<AdWebResponse> AdWebResponse = (from item in xdoc.Descendants("Ad")
                                                         select new AdWebResponse()
                                                       {
                                                           Error = AdError,
                                                           ClientID = AdClientID,
                                                           Text = item.IfNullEmptyString("Text"),
                                                           URL = item.IfNullEmptyString("URL"),
                                                           ImageURL = item.IfNullEmptyString("Image")
                                                       }).ToList();

                    callback(AdWebResponse, null);
                }
                catch (Exception e)
                {
                    callback(null, e);
                }
            });
        }
        protected internal void ReadRss(Uri rssUri, Action<List<RSSFeedItem>, Exception> callback)
        {
            callback.CheckNotNullThrowException();

            network.GetStringFromURL(rssUri,(results, ex) =>
                {
                    if (ex != null)
                    {
                        callback(null, ex);
                        return;
                    }

                    var xdoc = XDocument.Parse(results);
                    List<RSSFeedItem> RSSFeedItems = (from item in xdoc.Descendants("item")
                                                      select new RSSFeedItem()
                                                      {
                                                          Title = item.IfNullEmptyString("title"),
                                                          Author = item.IfNullEmptyString("author"),
                                                          Description = item.IfNullEmptyString("description"),
                                                          Tags = item.IfNullEmptyString("tags"),
                                                          ID = item.IfNullEmptyString("id"),
                                                          Date = item.IfNullEmptyString("pubDate"),
                                                          subTitle = String.Format("{0} | {1} | {2}", item.IfNullEmptyString("author"), item.IfNullEmptyString("pubDate"), item.IfNullEmptyString("tags")),
                                                      }).Take(10).ToList();
                    callback(RSSFeedItems, null);
                });
        }
        public void ReadUserinfo(Action<List<UserInfo>, Exception> callback)
        {
            callback.CheckNotNullThrowException();

            var uri = new Uri(String.Format("{0}?feed=user_info&user_id={1}datetime={2}", app.SiteURL, app.SiteAuthorBlogUserID, DateTime.Now.Ticks));
            network.GetStringFromURL(uri, (results, ex) =>
                {
                    if (ex != null)
                    {
                        callback(null, ex);
                        return;
                    }

                    XDocument xdoc = XDocument.Parse(results);
                    List<UserInfo> blogInfo = (from item in xdoc.Descendants("UserInfo")
                                               select new UserInfo()
                                               {
                                                   ID = item.IfNullEmptyString("UserID"),
                                                   displayName = item.IfNullEmptyString("DisplayName"),
                                                   Email = item.IfNullEmptyString("EmailAddress"),
                                                   Avatar = item.IfNullEmptyString("Gravatar"),
                                                   Bio = item.IfNullEmptyString("Bio"),
                                               }).Take(10).ToList();
                    callback(blogInfo, null);
                });
        }