Cleaning optional post bodies. Fixes #2039

pull/2043/head
Dessalines 2022-01-17 11:00:50 -05:00
parent eea3308906
commit 194269fd3c
5 changed files with 24 additions and 10 deletions

View File

@ -26,7 +26,13 @@ use lemmy_db_schema::{
};
use lemmy_utils::{
request::fetch_site_data,
utils::{check_slurs, check_slurs_opt, clean_url_params, is_valid_post_title},
utils::{
check_slurs,
check_slurs_opt,
clean_optional_text,
clean_url_params,
is_valid_post_title,
},
ConnectionId,
LemmyError,
};
@ -72,7 +78,7 @@ impl PerformCrud for CreatePost {
let post_form = PostForm {
name: data.name.trim().to_owned(),
url: data_url.map(|u| clean_url_params(u.to_owned()).into()),
body: data.body.to_owned(),
body: clean_optional_text(&data.body),
community_id: data.community_id,
creator_id: local_user_view.person.id,
nsfw: data.nsfw,

View File

@ -18,7 +18,7 @@ use lemmy_db_schema::{
};
use lemmy_utils::{
request::fetch_site_data,
utils::{check_slurs_opt, clean_url_params, is_valid_post_title},
utils::{check_slurs_opt, clean_optional_text, clean_url_params, is_valid_post_title},
ConnectionId,
LemmyError,
};
@ -79,7 +79,7 @@ impl PerformCrud for EditPost {
community_id: orig_post.community_id,
name: data.name.to_owned().unwrap_or(orig_post.name),
url: data_url.map(|u| clean_url_params(u.to_owned()).into()),
body: data.body.to_owned(),
body: clean_optional_text(&data.body),
nsfw: data.nsfw,
updated: Some(naive_now()),
embed_title,

View File

@ -161,7 +161,7 @@ where
#[allow(clippy::to_string_in_display)]
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
// Use to_string here because Url.display is not useful for us
write!(f, "{}", self.0.to_string())
write!(f, "{}", self.0)
}
}

View File

@ -97,11 +97,7 @@ async fn get_feed_data(
let mut channel_builder = ChannelBuilder::default();
channel_builder
.namespaces(RSS_NAMESPACE.to_owned())
.title(&format!(
"{} - {}",
site_view.site.name,
listing_type.to_string()
))
.title(&format!("{} - {}", site_view.site.name, listing_type))
.link(context.settings().get_protocol_and_hostname())
.items(items);

View File

@ -175,6 +175,18 @@ pub fn clean_url_params(mut url: Url) -> Url {
url
}
pub fn clean_optional_text(text: &Option<String>) -> Option<String> {
if let Some(text) = text {
if text.trim().is_empty() {
None
} else {
Some(text.trim().to_owned())
}
} else {
None
}
}
#[cfg(test)]
mod tests {
use crate::utils::{clean_url_params, is_valid_post_title};