snoobert/examples/get-top-posts/main.go
Vartan Benohanian 78dc97a8d5 Make DefaultClient a method that returns the global default client
I made this a method to prevent other users from reassigning the
previously exported DefaultClient, e.g. doing something like:

```go
reddit.DefaultClient = nil
```

Signed-off-by: Vartan Benohanian <vartanbeno@gmail.com>
2020-11-01 22:25:13 -05:00

55 lines
1 KiB
Go

package main
import (
"context"
"fmt"
"log"
"github.com/vartanbeno/go-reddit/reddit"
)
var ctx = context.Background()
func main() {
if err := run(); err != nil {
log.Fatal(err)
}
}
func run() (err error) {
// Let's get the top 200 posts of r/golang.
// Reddit returns a maximum of 100 posts at a time,
// so we'll need to separate this into 2 requests.
posts, resp, err := reddit.DefaultClient().Subreddit.TopPosts(ctx, "golang", &reddit.ListPostOptions{
ListOptions: reddit.ListOptions{
Limit: 100,
},
Time: "all",
})
if err != nil {
return
}
for _, post := range posts {
fmt.Println(post.Title)
}
// The After option sets the id of an item that Reddit
// will use as an anchor point for the returned listing.
posts, _, err = reddit.DefaultClient().Subreddit.TopPosts(ctx, "golang", &reddit.ListPostOptions{
ListOptions: reddit.ListOptions{
Limit: 100,
After: resp.After,
},
Time: "all",
})
if err != nil {
return
}
for _, post := range posts {
fmt.Println(post.Title)
}
return
}