fix: exclude NSFW posts from search, discover, trending, hashtag pages - only allow in following feed + own profile
This commit is contained in:
parent
27b48128fe
commit
8ea63edf8c
|
|
@ -165,7 +165,20 @@ func (r *PostRepository) GetFeed(ctx context.Context, userID string, categorySlu
|
||||||
AND NOT public.has_block_between(p.author_id, CASE WHEN $4::text != '' THEN $4::text::uuid ELSE NULL END)
|
AND NOT public.has_block_between(p.author_id, CASE WHEN $4::text != '' THEN $4::text::uuid ELSE NULL END)
|
||||||
AND ($3 = FALSE OR (COALESCE(p.video_url, '') <> '' OR (COALESCE(p.image_url, '') ILIKE '%.mp4')))
|
AND ($3 = FALSE OR (COALESCE(p.video_url, '') <> '' OR (COALESCE(p.image_url, '') ILIKE '%.mp4')))
|
||||||
AND ($5 = '' OR c.slug = $5)
|
AND ($5 = '' OR c.slug = $5)
|
||||||
AND ($6 = TRUE OR COALESCE(p.is_nsfw, FALSE) = FALSE)
|
AND (
|
||||||
|
COALESCE(p.is_nsfw, FALSE) = FALSE
|
||||||
|
OR (
|
||||||
|
$6 = TRUE
|
||||||
|
AND (
|
||||||
|
p.author_id = CASE WHEN $4::text != '' THEN $4::text::uuid ELSE NULL END
|
||||||
|
OR EXISTS (
|
||||||
|
SELECT 1 FROM public.follows f
|
||||||
|
WHERE f.follower_id = CASE WHEN $4::text != '' THEN $4::text::uuid ELSE NULL END
|
||||||
|
AND f.following_id = p.author_id AND f.status = 'accepted'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
|
)
|
||||||
ORDER BY p.created_at DESC
|
ORDER BY p.created_at DESC
|
||||||
LIMIT $1 OFFSET $2
|
LIMIT $1 OFFSET $2
|
||||||
`
|
`
|
||||||
|
|
@ -758,6 +771,7 @@ func (r *PostRepository) SearchPosts(ctx context.Context, query string, viewerID
|
||||||
OR $1 = ANY(p.tags)
|
OR $1 = ANY(p.tags)
|
||||||
)
|
)
|
||||||
AND p.deleted_at IS NULL AND p.status = 'active'
|
AND p.deleted_at IS NULL AND p.status = 'active'
|
||||||
|
AND COALESCE(p.is_nsfw, FALSE) = FALSE
|
||||||
AND (
|
AND (
|
||||||
p.author_id = CASE WHEN $3 != '' THEN $3::uuid ELSE NULL END
|
p.author_id = CASE WHEN $3 != '' THEN $3::uuid ELSE NULL END
|
||||||
OR pr.is_private = FALSE
|
OR pr.is_private = FALSE
|
||||||
|
|
@ -1307,6 +1321,7 @@ func (r *PostRepository) GetPopularPublicPosts(ctx context.Context, viewerID str
|
||||||
WHERE p.deleted_at IS NULL AND p.status = 'active'
|
WHERE p.deleted_at IS NULL AND p.status = 'active'
|
||||||
AND pr.is_private = FALSE
|
AND pr.is_private = FALSE
|
||||||
AND p.visibility = 'public'
|
AND p.visibility = 'public'
|
||||||
|
AND COALESCE(p.is_nsfw, FALSE) = FALSE
|
||||||
ORDER BY (COALESCE(m.like_count, 0) * 2 + COALESCE(m.comment_count, 0) * 5) DESC, p.created_at DESC
|
ORDER BY (COALESCE(m.like_count, 0) * 2 + COALESCE(m.comment_count, 0) * 5) DESC, p.created_at DESC
|
||||||
LIMIT $1
|
LIMIT $1
|
||||||
`
|
`
|
||||||
|
|
|
||||||
|
|
@ -201,6 +201,7 @@ func (r *TagRepository) GetPostsByHashtag(ctx context.Context, hashtagName, view
|
||||||
WHERE h.name = $1
|
WHERE h.name = $1
|
||||||
AND p.deleted_at IS NULL
|
AND p.deleted_at IS NULL
|
||||||
AND p.status = 'active'
|
AND p.status = 'active'
|
||||||
|
AND COALESCE(p.is_nsfw, FALSE) = FALSE
|
||||||
ORDER BY p.created_at DESC
|
ORDER BY p.created_at DESC
|
||||||
LIMIT $4 OFFSET $5
|
LIMIT $4 OFFSET $5
|
||||||
`, normalized, normalized, viewerID, limit, offset)
|
`, normalized, normalized, viewerID, limit, offset)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue