Change the bypass message and format code

The bypass message now indicates that the bypass is only temporary.
This commit is contained in:
gmnsii 2023-03-23 11:09:33 -07:00
parent e046144bf3
commit a0726c5903
7 changed files with 12 additions and 17 deletions

View file

@ -1,6 +1,4 @@
use std::{ use std::process::{Command, ExitStatus, Output};
process::{Command, ExitStatus, Output},
};
#[cfg(not(target_os = "windows"))] #[cfg(not(target_os = "windows"))]
use std::os::unix::process::ExitStatusExt; use std::os::unix::process::ExitStatusExt;

View file

@ -67,12 +67,12 @@ pub async fn item(req: Request<Body>) -> Result<Response<Body>, String> {
Ok(response) => { Ok(response) => {
let post = parse_post(&response[0]["data"]["children"][0]).await; let post = parse_post(&response[0]["data"]["children"][0]).await;
let req_url = req.uri().to_string(); let req_url = req.uri().to_string();
// Return landing page if this post if this Reddit deems this post // Return landing page if this post if this Reddit deems this post
// NSFW, but we have also disabled the display of NSFW content // NSFW, but we have also disabled the display of NSFW content
// or if the instance is SFW-only // or if the instance is SFW-only
if post.nsfw && crate::utils::should_be_nsfw_gated(&req, &req_url) { if post.nsfw && crate::utils::should_be_nsfw_gated(&req, &req_url) {
return Ok(nsfw_landing(req, req_url).await.unwrap_or_default()); return Ok(nsfw_landing(req, req_url).await.unwrap_or_default());
} }
let filters = get_filters(&req); let filters = get_filters(&req);
@ -234,4 +234,3 @@ async fn parse_duplicates(json: &serde_json::Value, filters: &HashSet<String>) -
let (num_posts_filtered, all_posts_filtered) = filter_posts(&mut duplicates, filters); let (num_posts_filtered, all_posts_filtered) = filter_posts(&mut duplicates, filters);
(duplicates, num_posts_filtered, all_posts_filtered) (duplicates, num_posts_filtered, all_posts_filtered)
} }

View file

@ -56,7 +56,7 @@ pub async fn item(req: Request<Body>) -> Result<Response<Body>, String> {
// Parse the JSON into Post and Comment structs // Parse the JSON into Post and Comment structs
let post = parse_post(&response[0]["data"]["children"][0]).await; let post = parse_post(&response[0]["data"]["children"][0]).await;
let req_url = req.uri().to_string(); let req_url = req.uri().to_string();
// Return landing page if this post if this Reddit deems this post // Return landing page if this post if this Reddit deems this post
// NSFW, but we have also disabled the display of NSFW content // NSFW, but we have also disabled the display of NSFW content
// or if the instance is SFW-only. // or if the instance is SFW-only.
@ -190,4 +190,3 @@ fn parse_comments(json: &serde_json::Value, post_link: &str, post_author: &str,
}) })
.collect() .collect()
} }

View file

@ -97,7 +97,7 @@ pub async fn community(req: Request<Body>) -> Result<Response<Body>, String> {
} }
}; };
let req_url = req.uri().to_string(); let req_url = req.uri().to_string();
// Return landing page if this post if this is NSFW community but the user // Return landing page if this post if this is NSFW community but the user
// has disabled the display of NSFW content or if the instance is SFW-only. // has disabled the display of NSFW content or if the instance is SFW-only.
if sub.nsfw && crate::utils::should_be_nsfw_gated(&req, &req_url) { if sub.nsfw && crate::utils::should_be_nsfw_gated(&req, &req_url) {
@ -434,4 +434,3 @@ async fn subreddit(sub: &str, quarantined: bool) -> Result<Subreddit, String> {
nsfw: res["data"]["over18"].as_bool().unwrap_or_default(), nsfw: res["data"]["over18"].as_bool().unwrap_or_default(),
}) })
} }

View file

@ -50,7 +50,7 @@ pub async fn profile(req: Request<Body>) -> Result<Response<Body>, String> {
// Retrieve info from user about page. // Retrieve info from user about page.
let user = user(&username).await.unwrap_or_default(); let user = user(&username).await.unwrap_or_default();
let req_url = req.uri().to_string(); let req_url = req.uri().to_string();
// Return landing page if this post if this Reddit deems this user NSFW, // Return landing page if this post if this Reddit deems this user NSFW,
// but we have also disabled the display of NSFW content or if the instance // but we have also disabled the display of NSFW content or if the instance
// is SFW-only. // is SFW-only.

View file

@ -895,13 +895,13 @@ pub fn sfw_only() -> bool {
// Determines if a request shoud redirect to a nsfw landing gate. // Determines if a request shoud redirect to a nsfw landing gate.
pub fn should_be_nsfw_gated(req: &Request<Body>, req_url: &String) -> bool { pub fn should_be_nsfw_gated(req: &Request<Body>, req_url: &String) -> bool {
let sfw_instance = sfw_only(); let sfw_instance = sfw_only();
let gate_nsfw = (setting(&req, "show_nsfw") != "on") || sfw_instance; let gate_nsfw = (setting(&req, "show_nsfw") != "on") || sfw_instance;
// Nsfw landing gate should not be bypassed on a sfw only instance, // Nsfw landing gate should not be bypassed on a sfw only instance,
let bypass_gate = !sfw_instance && req_url.ends_with("&bypass_nsfw_landing"); let bypass_gate = !sfw_instance && req_url.ends_with("&bypass_nsfw_landing");
gate_nsfw && !bypass_gate gate_nsfw && !bypass_gate
} }
/// Renders the landing page for NSFW content when the user has not enabled /// Renders the landing page for NSFW content when the user has not enabled

View file

@ -20,7 +20,7 @@
This instance of Libreddit is SFW-only.</p> This instance of Libreddit is SFW-only.</p>
{% else %} {% else %}
Enable "Show NSFW posts" in <a href="/settings">settings</a> to view this {% if res_type == crate::utils::ResourceType::Subreddit %}subreddit{% else if res_type == crate::utils::ResourceType::User %}user's posts or comments{% else if res_type == crate::utils::ResourceType::Post %}post{% endif %}. <br> Enable "Show NSFW posts" in <a href="/settings">settings</a> to view this {% if res_type == crate::utils::ResourceType::Subreddit %}subreddit{% else if res_type == crate::utils::ResourceType::User %}user's posts or comments{% else if res_type == crate::utils::ResourceType::Post %}post{% endif %}. <br>
{% if res_type == crate::utils::ResourceType::Post %} You can also bypass this gate by clicking on this <a href="{{url}}&bypass_nsfw_landing">link</a>.{% endif %} {% if res_type == crate::utils::ResourceType::Post %} You can also temporarily bypass this gate and view the post by clicking on this <a href="{{url}}&bypass_nsfw_landing">link</a>.{% endif %}
{% endif %} {% endif %}
</p> </p>
</div> </div>