Fix 'all_posts_hidden_nsfw' when there are no posts.

If a search query yielded no results and the user set nsfw posts to be
hidden, libreddit would show 'All posts are hidden because they are NSFW.
Enable "Show NSFW posts" in settings to view'. This is fixed by
verifying tnat posts.len > 0 before setting 'all_posts_hidden_nsfw' to
true.
This commit is contained in:
gmnsii 2022-12-19 13:59:59 -08:00
parent 37d1939dc0
commit 6a0d0f0e5e
No known key found for this signature in database
GPG Key ID: 13B5ECF7DDFDA0DC
3 changed files with 3 additions and 3 deletions

View File

@ -108,7 +108,7 @@ pub async fn find(req: Request<Body>) -> Result<Response<Body>, String> {
match Post::fetch(&path, quarantined).await {
Ok((mut posts, after)) => {
let (_, all_posts_filtered) = filter_posts(&mut posts, &filters);
let all_posts_hidden_nsfw = posts.iter().all(|p| p.flags.nsfw) && setting(&req, "show_nsfw") != "on";
let all_posts_hidden_nsfw = posts.len() > 0 && (posts.iter().all(|p| p.flags.nsfw) && setting(&req, "show_nsfw") != "on");
template(SearchTemplate {
posts,
subreddits,

View File

@ -119,7 +119,7 @@ pub async fn community(req: Request<Body>) -> Result<Response<Body>, String> {
match Post::fetch(&path, quarantined).await {
Ok((mut posts, after)) => {
let (_, all_posts_filtered) = filter_posts(&mut posts, &filters);
let all_posts_hidden_nsfw = posts.iter().all(|p| p.flags.nsfw) && setting(&req, "show_nsfw") != "on";
let all_posts_hidden_nsfw = posts.len() > 0 && (posts.iter().all(|p| p.flags.nsfw) && setting(&req, "show_nsfw") != "on");
template(SubredditTemplate {
sub,
posts,

View File

@ -67,7 +67,7 @@ pub async fn profile(req: Request<Body>) -> Result<Response<Body>, String> {
match Post::fetch(&path, false).await {
Ok((mut posts, after)) => {
let (_, all_posts_filtered) = filter_posts(&mut posts, &filters);
let all_posts_hidden_nsfw = posts.iter().all(|p| p.flags.nsfw) && setting(&req, "show_nsfw") != "on";
let all_posts_hidden_nsfw = posts.len() > 0 && (posts.iter().all(|p| p.flags.nsfw) && setting(&req, "show_nsfw") != "on");
template(UserTemplate {
user,
posts,