-
Notifications
You must be signed in to change notification settings - Fork 125
Paginators
Matt Dean edited this page Jan 3, 2018
·
8 revisions
This is for version 0.9.0 and below. The documentation for v1.0.0+ can be found here
Iteration through any sort of data returned by the Reddit API is done through the Paginator
class. Paginator
is used to iterate a listing
, a data type defined by the Reddit API (see here for more). Its respective class can be found here.
Perhaps the most simplistic way to demonstrate a Paginator
is by using SubredditPaginator
. You can use this class to iterate the submissions on the front page or a subreddit.
RedditClient reddit = new RedditClient(UserAgent.of(...)));
SubredditPaginator frontPage = new SubredditPaginator(reddit);
// Adjust the request parameters
frontPage.setLimit(50); // Default is 25 (Paginator.DEFAULT_LIMIT)
frontPage.setTimePeriod(TimePeriod.MONTH); // Default is DAY (Paginator.DEFAULT_TIME_PERIOD)
frontPage.setSorting(Sorting.TOP); // Default is HOT (Paginator.DEFAULT_SORTING)
// This Paginator is now set up to retrieve the highest-scoring links submitted within the past
// month, 50 at a time
// Since Paginator implements Iterator, you can use it just how you would expect to, using next() and hasNext()
Listing<Submission> submissions = frontPage.next();
for (Submission s : submissions) {
// Print some basic stats about the posts
System.out.printf("[/r/%s - %s karma] %s\n", s.getSubredditName(), s.getScore(), s.getTitle());
}
The output for this example might look something like this:
[/r/pics - 8510 karma] Got divorced, lost my job, so me and my buddy got on our motorcycles and rode North to the Alaskan Arctic until the road ran out.
[/r/funny - 6560 karma] Man trying to return a dog's toy gets tricked into playing fetch
[/r/videos - 6557 karma] Man races train overground from one station to the next.
(...)
Paginator
and its subclasses can found in the net.dean.jraw.paginators
package.