/// <summary> /// Tries to get a subreddit from the web by the display name. /// </summary> /// <returns>Returns null if the subreddit get fails.</returns> public async Task <Subreddit> GetSubredditFromWebByDisplayName(string displayName) { SubredditAbout subredditData = null; Subreddit foundSubreddit = null; try { // Make the call string jsonResponse = await m_baconMan.NetworkMan.MakeRedditGetRequestAsString($"/r/{displayName}/about/.json"); // Parse the new subreddit subredditData = await Task.Run(() => JsonConvert.DeserializeObject <SubredditAbout>(jsonResponse)); foundSubreddit = subredditData.SubredditInfo; } catch (Exception e) { m_baconMan.TelemetryMan.ReportUnExpectedEvent(this, "failed to get subreddit", e); m_baconMan.MessageMan.DebugDia("failed to get subreddit", e); } // If we found it add it to the cache. if (foundSubreddit != null) { lock (m_tempSubredditCache) { m_tempSubredditCache.Add(foundSubreddit); } // Format the subreddit foundSubreddit.Description = WebUtility.HtmlDecode(foundSubreddit.Description); } return(foundSubreddit); }
protected override async void OnNavigatedTo(NavigationEventArgs e) { _navigationHelper.OnNavigatedTo(e); string subredditName = (string)e.Parameter; Title = subredditName; Subreddit subreddit = await RedditService.Instance.GetSubredditAsync(subredditName); Posts = subreddit.Posts; About = await RedditService.Instance.GetSubredditAboutAsync(subredditName); }
public async Task <SubredditAbout> GetSubredditAboutAsync(string subredditName) { var subredditAbout = new SubredditAbout(); var response = await httpClient.GetStringAsync("http://www.reddit.com/r/" + subredditName + "/about.json"); var jObject = JObject.Parse(response); var obj = jObject["data"]; subredditAbout.SubmitText = obj["submit_text"].ToString(); subredditAbout.DisplayName = obj["display_name"].ToString(); subredditAbout.HeaderImg = obj["header_img"].ToString(); subredditAbout.DescriptionHtml = obj["description_html"].ToString(); subredditAbout.Title = obj["title"].ToString(); subredditAbout.Over18 = obj["over18"].Value <bool>(); subredditAbout.Description = obj["description"].ToString(); subredditAbout.Subscribers = obj["subscribers"].Value <long>(); subredditAbout.PublicDescription = obj["public_description"].ToString(); return(subredditAbout); }