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
});
}
}