From c959c91d0d8dd8777fa5213d172cd801531b74e4 Mon Sep 17 00:00:00 2001 From: long Date: Tue, 26 May 2026 01:50:49 -0500 Subject: [PATCH] added nsfw flag to search functions --- examples/search/main.go | 19 ++++--------------- reddit/reddit.go | 4 ++++ reddit/subreddit.go | 4 ++-- 3 files changed, 10 insertions(+), 17 deletions(-) diff --git a/examples/search/main.go b/examples/search/main.go index e067961..1bd308a 100644 --- a/examples/search/main.go +++ b/examples/search/main.go @@ -2,7 +2,6 @@ package main import ( "context" - "encoding/json" "log/slog" "os" @@ -29,25 +28,15 @@ func run(logger *slog.Logger) error { if err != nil { return err } - subs, _, err := client.Subreddit.Search(ctx, "hentai", nil) + subs, _, err := client.Subreddit.Search(ctx, "hentai", &reddit.ListSubredditOptions{IncludeNsfw: true}) if err != nil { return err } - logger.Info("Searching subreddits successful", "subreddits", subs) - posts, _, err := client.Subreddit.SearchPosts(ctx, "psylocke", "hentai", nil) + logger.Info("Searching subreddits successful", "count", len(subs)) + posts, _, err := client.Subreddit.SearchPosts(ctx, "psylocke", "hentai", &reddit.ListPostSearchOptions{IncludeNsfw: true}) if err != nil { return err } - logger.Info("Searching posts successful", "posts", posts, "count", len(posts)) - data, err := json.Marshal(posts) - if err != nil { - return err - } - var new_posts []*Post - err = json.Unmarshal(data, &new_posts) - if err != nil { - return err - } - logger.Info("Unmarshalled post subclass", "posts", new_posts) + logger.Info("Searching posts successful", "count", len(posts)) return nil } diff --git a/reddit/reddit.go b/reddit/reddit.go index efcaa32..726f49a 100644 --- a/reddit/reddit.go +++ b/reddit/reddit.go @@ -558,6 +558,8 @@ type ListSubredditOptions struct { ListOptions // One of: relevance, activity. Sort string `url:"sort,omitempty"` + + IncludeNsfw bool `url:"include_over_18,omitempty"` } // ListPostOptions defines possible options used when getting posts from a subreddit. @@ -572,6 +574,8 @@ type ListPostSearchOptions struct { ListPostOptions // One of: relevance, hot, top, new, comments. Sort string `url:"sort,omitempty"` + + IncludeNsfw bool `url:"include_over_18,omitempty"` } // ListUserOverviewOptions defines possible options used when getting a user's post and/or comments. diff --git a/reddit/subreddit.go b/reddit/subreddit.go index d329b1c..dc94838 100644 --- a/reddit/subreddit.go +++ b/reddit/subreddit.go @@ -499,7 +499,7 @@ func (s *SubredditService) Unfavorite(ctx context.Context, subreddit string) (*R // Search for subreddits. func (s *SubredditService) Search(ctx context.Context, query string, opts *ListSubredditOptions) ([]*Subreddit, *Response, error) { - path := fmt.Sprintf("subreddits/search?q=%s&include_over_18=on", query) + path := fmt.Sprintf("subreddits/search?q=%s", query) l, resp, err := s.client.getListing(ctx, path, opts) if err != nil { return nil, resp, err @@ -533,7 +533,7 @@ func (s *SubredditService) SearchPosts(ctx context.Context, query string, subred subreddit = "all" } - path := fmt.Sprintf("r/%s/search?include_over_18=on", subreddit) + path := fmt.Sprintf("r/%s/search", subreddit) path, err := addOptions(path, opts) if err != nil { return nil, nil, err