示例#1
0
        /// <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);
        }
示例#2
0
        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);
        }
示例#3
0
        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);
        }