NAME
Mojo::Snoo::Subreddit - Mojo wrapper for Reddit Subreddits
SYNOPSIS
use Mojo::Snoo::Subreddit;
# OAuth ONLY. Reddit is deprecating cookie auth soon.
my $snoo = Mojo::Snoo::Subreddit->new(
name => 'perl',
username => 'foobar',
password => 'very_secret',
client_id => 'oauth_client_id',
client_secret => 'very_secret_oauth',
);
# print each title from /r/perl post
# (OAuth not required for this action)
$snoo->things->each(sub { say $_->title });
ATTRIBUTES
name
The name of the subreddit. This is required for object instantiation. The constructor can accept a single string value or key/value pairs. Examples:
Mojo::Snoo::Subreddit->new('perl')->name;
Mojo::Snoo::Subreddit->new(name => 'perl')->name;
about
Returns the About section of a subreddit.
GET /r/$subreddit/about
Returns a monkey-patched object containing all of the keys under the JSON's "data" key. Example:
my $about = Mojo::Snoo::Subreddit->new('perl')->about;
say $about-title;
say $about->description;
say $about->description_html;
mods
Returns a list of the subreddit's moderators.
GET /r/$subreddit/about/moderators
Returns a Mojo::Collection object containing a list of monkey-patched objects. Example:
Mojo::Snoo::Subreddit->new('perl')->mods->each(
sub {
say $_->id;
say $_->name;
say $_->date;
say $_->mod_permissions;
}
);
METHODS
things
Returns a Mojo::Collection object containing a list of Mojo::Snoo::Thing objects.
GET /r/$subreddit
Accepts one argument which indicates the maximum number of Things (reddit API's limit parameter). Default is 25, max is 100.
things_new
Like "things" but sorted by new.
GET /r/$subreddit/new
things_rising
Like "things" but sorted by rising.
GET /r/$subreddit/rising
things_top
Like "things" but sorted by top (most upvoted).
GET /r/$subreddit/top
things_top_week
Like "things_top" but from the past week.
GET /r/$subreddit/top?t=week
things_top_month
Like "things_top" but from the past month.
GET /r/$subreddit/top?t=month
things_top_year
Like "things_top" but from the past year.
GET /r/$subreddit/top?t=year
things_top_all
Like "things_top" but from all time.
GET /r/$subreddit/top?t=all
things_contro
Like "things" but sorted by controversial.
GET /r/$subreddit/controversial
things_contro_week
Like "things_contro" but from the past week.
GET /r/$subreddit/controversial?t=week
things_contro_month
Like "things_contro" but from the past month.
GET /r/$subreddit/controversial?t=month
things_contro_year
Like "things_contro" but from the past year.
GET /r/$subreddit/controversial?t=year
things_contro_all
Like "things_contro" but from all time.
GET /r/$subreddit/controversial?t=all
API DOCUMENTATION
Please see the official Reddit API documentation for more details regarding the usage of endpoints. For a better idea of how OAuth works, see the Quick Start and the full documentation. There is also a lot of useful information of the redditdev subreddit.
LICENSE
The (two-clause) FreeBSD License. See LICENSE for details.