Add separate timespan options for convenience
Signed-off-by: Vartan Benohanian <vartanbeno@gmail.com>
This commit is contained in:
parent
c852306cb2
commit
ff682a6e70
3 changed files with 31 additions and 38 deletions
37
search.go
37
search.go
|
@ -62,11 +62,34 @@ func SetSort(v Sort) SearchOptionSetter {
|
|||
}
|
||||
}
|
||||
|
||||
// SetTimespan sets the timespan option.
|
||||
func SetTimespan(v Timespan) SearchOptionSetter {
|
||||
return func(opts url.Values) {
|
||||
opts.Set("timespan", v.String())
|
||||
}
|
||||
// FromThePastHour sets the timespan option to return results from the past hour.
|
||||
func FromThePastHour(opts url.Values) {
|
||||
opts.Set("t", "hour")
|
||||
}
|
||||
|
||||
// FromThePastDay sets the timespan option to return results from the past day.
|
||||
func FromThePastDay(opts url.Values) {
|
||||
opts.Set("t", "day")
|
||||
}
|
||||
|
||||
// FromThePastWeek sets the timespan option to return results from the past week.
|
||||
func FromThePastWeek(opts url.Values) {
|
||||
opts.Set("t", "week")
|
||||
}
|
||||
|
||||
// FromThePastMonth sets the timespan option to return results from the past month.
|
||||
func FromThePastMonth(opts url.Values) {
|
||||
opts.Set("t", "month")
|
||||
}
|
||||
|
||||
// FromThePastYear sets the timespan option to return results from the past year.
|
||||
func FromThePastYear(opts url.Values) {
|
||||
opts.Set("t", "year")
|
||||
}
|
||||
|
||||
// FromAllTime sets the timespan option to return results from all time.
|
||||
func FromAllTime(opts url.Values) {
|
||||
opts.Set("t", "all")
|
||||
}
|
||||
|
||||
// setType sets the type option.
|
||||
|
@ -119,7 +142,7 @@ func (s *SearchService) Posts(ctx context.Context, query string, subreddits []st
|
|||
}
|
||||
|
||||
// Subreddits searches for subreddits.
|
||||
// The Sort and Timespan options don't affect the results for this search.
|
||||
// The sort and timespan options don't affect the results for this search.
|
||||
func (s *SearchService) Subreddits(ctx context.Context, query string, opts ...SearchOptionSetter) (*Subreddits, *Response, error) {
|
||||
opts = append(opts, setType("sr"), setQuery(query))
|
||||
form := newSearchOptions(opts...)
|
||||
|
@ -142,7 +165,7 @@ func (s *SearchService) Subreddits(ctx context.Context, query string, opts ...Se
|
|||
}
|
||||
|
||||
// Users searches for users.
|
||||
// The Sort and Timespan options don't affect the results for this search.
|
||||
// The sort and timespan options don't affect the results for this search.
|
||||
func (s *SearchService) Users(ctx context.Context, query string, opts ...SearchOptionSetter) (*Users, *Response, error) {
|
||||
opts = append(opts, setType("user"), setQuery(query))
|
||||
form := newSearchOptions(opts...)
|
||||
|
|
|
@ -128,6 +128,7 @@ func (s *SubredditService) Get(ctx context.Context, name string) (*Subreddit, *R
|
|||
}
|
||||
|
||||
// GetPopular returns popular subreddits.
|
||||
// todo: use search opts for this
|
||||
func (s *SubredditService) GetPopular(ctx context.Context, opts *ListOptions) (*Subreddits, *Response, error) {
|
||||
return s.getSubreddits(ctx, "subreddits/popular", opts)
|
||||
}
|
||||
|
|
31
things.go
31
things.go
|
@ -55,37 +55,6 @@ func (s Sort) String() string {
|
|||
return sorts[s]
|
||||
}
|
||||
|
||||
// Timespan is a timespan option.
|
||||
// E.g. "hour" means in the last hour, "all" means all-time.
|
||||
// It is used when conducting searches.
|
||||
type Timespan int
|
||||
|
||||
var timespans = [...]string{
|
||||
"hour",
|
||||
"day",
|
||||
"week",
|
||||
"month",
|
||||
"year",
|
||||
"all",
|
||||
}
|
||||
|
||||
// Different timespan options.
|
||||
const (
|
||||
TimespanHour Timespan = iota
|
||||
TimespanDay
|
||||
TimespanWeek
|
||||
TimespanMonth
|
||||
TimespanYear
|
||||
TimespanAll
|
||||
)
|
||||
|
||||
func (t Timespan) String() string {
|
||||
if t < TimespanHour || t > TimespanAll {
|
||||
return ""
|
||||
}
|
||||
return timespans[t]
|
||||
}
|
||||
|
||||
// Permalink is the link to a post or comment.
|
||||
type Permalink string
|
||||
|
||||
|
|
Loading…
Reference in a new issue