Exemplo n.º 1
0
        public static FlairListing FromJson(JToken token)
        {
            var list = new FlairListing();

            foreach (var child in token.Children())
            {
                list.Add(Flair.FromJson(child));
            }

            return(list);
        }
Exemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="session"></param>
        /// <param name="sub"></param>
        /// <see cref="https://github.com/reddit/reddit/wiki/API%3A-flairlist"/>
        /// <returns></returns>
        public static FlairListing GetFlair(Session session, string sub, string after, string before)
        {
            // var url = "http://www.reddit.com/api/flairlist?r=" + sub + "&limit=1000&uh=" + session.ModHash;
            var url = "http://www.reddit.com/r/" + sub + "/api/flairlist.json?uh=" + session.ModHash + "&limit=1000";

            if (!string.IsNullOrEmpty(after))
            {
                url += "&after=" + after;
            }

            if (!string.IsNullOrEmpty(before))
            {
                url += "&before=" + before;
            }

            var request = new Request
            {
                Url    = url,
                Method = "GET",
                Cookie = session.Cookie
            };

            var json = string.Empty;

            if (request.Execute(out json) != System.Net.HttpStatusCode.OK)
            {
                throw new RedditException(json);
            }

            var o = JObject.Parse(json);

            // convert to a post listing
            var list = FlairListing.FromJson(o["users"]);

            list.Next = o["next"] == null ? string.Empty : o["next"].ToString();
            list.Prev = o["prev"] == null ? string.Empty : o["prev"].ToString();
            return(list);
        }