Пример #1
0
        public async Task <Listing> Next(Listing listing)
        {
            ListingParameters parameters = new ListingParameters
            {
                After = listing.After,
                Count = (listing.Parameters?.Count ?? 0) + listing.Children.Count,
                Limit = listing.Parameters?.Limit
            };

            return(await GetListing(listing.NextPath, parameters));
        }
Пример #2
0
        private async Task <Listing> GetListing(string path, ListingParameters parameters)
        {
            StringBuilder pathBuilder = new StringBuilder(path);

            pathBuilder.Append("?show=all");

            if (parameters != null)
            {
                if (!String.IsNullOrEmpty(parameters.After))
                {
                    pathBuilder.AppendFormat("&after={0}", parameters.After);
                }

                if (parameters.Count.HasValue)
                {
                    pathBuilder.AppendFormat("&count={0}", parameters.Count.Value);
                }

                if (parameters.Limit.HasValue)
                {
                    pathBuilder.AppendFormat("&limit={0}", parameters.Limit.Value);
                }
            }

            string pathWithParameters = pathBuilder.ToString();

            await CheckToken();

            Item response = await Get <Item>(pathWithParameters);

            if (response.Kind != ItemKind.Listing)
            {
                throw new Exception(String.Format("Expected Listing. Recieved '{0}' : {1}", response.KindString, response.Kind));
            }

            Listing listing = response.Data.ToObject <Listing>();

            listing.Reddit     = this;
            listing.NextPath   = path;
            listing.Parameters = parameters;
            return(listing);
        }
Пример #3
0
        public async Task <Listing> ModQueue(string subreddit, ListingParameters parameters = null)
        {
            string path = String.IsNullOrEmpty(subreddit) ? "about/modqueue" : String.Format("r/{0}/about/modqueue", subreddit);

            return(await GetListing(path, parameters));
        }