AdvancedLauncher.UI.Controls.NewsBlock.GetTwitterNewsAPI11 C# (CSharp) Method

GetTwitterNewsAPI11() public method

public GetTwitterNewsAPI11 ( string url ) : void
url string
return void
        public void GetTwitterNewsAPI11(string url)
        {
            TwitterStatuses.Clear();
            if (string.IsNullOrEmpty(url)) {
                TwitterStatuses.Add(new TwitterItemViewModel(LanguageManager) {
                    Title = LanguageManager.Model.NewsTwitterError + ": [ERRCODE 4 - No URL specified]",
                    Date = DateTime.Now
                });
                return;
            }
            Uri link = new Uri(url);
            string response;
            using (WebClient wc = new WebClientEx()) {
                try {
                    response = wc.DownloadString(link);
                } catch (Exception e) {
                    TwitterStatuses.Add(new TwitterItemViewModel(LanguageManager) {
                        Title = LanguageManager.Model.NewsTwitterError + ": " + e.Message + " [ERRCODE 3 - Remote Error]",
                        Date = DateTime.Now
                    });
                    return;
                }
            }

            JArray tList;
            try {
                tList = JArray.Parse(System.Web.HttpUtility.HtmlDecode(response));
            } catch {
                TwitterStatuses.Add(new TwitterItemViewModel(LanguageManager) {
                    Title = LanguageManager.Model.NewsTwitterError + " [ERRCODE 1 - Parse Error]",
                    Date = DateTime.Now
                });
                return;
            }

            List<UserStatus> statuses = new List<UserStatus>();
            List<ProfileImage> profileImages = new List<ProfileImage>();
            List<ProfileImage> currentImage;
            ProfileImage profileImage;
            for (int i = 0; i < tList.Count(); i++) {
                JObject tweet = JObject.Parse(tList[i].ToString());
                UserStatus status = new UserStatus();

                status.UserName = tweet["user"]["name"].ToString();
                status.UserScreenName = tweet["user"]["screen_name"].ToString();
                status.ProfileImageUrl = tweet["user"]["profile_image_url"].ToString();
                var retweet = tweet["retweeted_status"];
                if (retweet != null) {
                    status.UserScreenName = retweet["user"]["name"].ToString();
                    status.UserName = retweet["user"]["screen_name"].ToString();
                    status.RetweetImageUrl = retweet["user"]["profile_image_url"].ToString();
                }

                status.Status = tweet["text"].ToString();
                status.StatusId = tweet["id"].ToString();
                status.StatusDate = ParseDateTime(tweet["created_at"].ToString());

                string profile_image;
                if (status.RetweetImageUrl != null) {
                    profile_image = status.RetweetImageUrl;
                } else {
                    profile_image = status.ProfileImageUrl;
                }

                currentImage = profileImages.FindAll(im => (im.url == profile_image));
                if (currentImage.Count == 0) {
                    profileImage = new ProfileImage();
                    profileImage.url = profile_image;
                    profileImage.bitmap = GetImage(profile_image);
                    if (profileImage.bitmap != null) {
                        profileImages.Add(profileImage);
                    }
                } else {
                    profileImage = currentImage[0];
                }
                status.ProfileImageBitmap = profileImage.bitmap;
                statuses.Add(status);
            }
            foreach (UserStatus status in statuses) {
                TwitterStatuses.Add(new TwitterItemViewModel(LanguageManager) {
                    Title = status.Status,
                    Date = status.StatusDate,
                    Image = status.ProfileImageBitmap,
                    StatusLink = "https://twitter.com/statuses/" + status.StatusId,
                    UserLink = "https://twitter.com/" + status.UserScreenName,
                    UserName = status.UserName
                });
            }
        }