Make changes on content
field backwards compatible
This commit is contained in:
parent
2b5feca806
commit
f070b1823d
2 changed files with 29 additions and 19 deletions
|
@ -7,11 +7,7 @@ use activitystreams::{
|
||||||
};
|
};
|
||||||
use anyhow::{anyhow, Context};
|
use anyhow::{anyhow, Context};
|
||||||
use chrono::NaiveDateTime;
|
use chrono::NaiveDateTime;
|
||||||
use lemmy_utils::{
|
use lemmy_utils::{location_info, utils::convert_datetime, LemmyError};
|
||||||
location_info,
|
|
||||||
utils::{convert_datetime, markdown_to_html},
|
|
||||||
LemmyError,
|
|
||||||
};
|
|
||||||
use url::Url;
|
use url::Url;
|
||||||
|
|
||||||
pub(crate) mod comment;
|
pub(crate) mod comment;
|
||||||
|
@ -69,14 +65,19 @@ pub(in crate::objects) fn set_content_and_source<T, Kind1, Kind2>(
|
||||||
markdown_text: &str,
|
markdown_text: &str,
|
||||||
) -> Result<(), LemmyError>
|
) -> Result<(), LemmyError>
|
||||||
where
|
where
|
||||||
T: ApObjectExt<Kind1> + ObjectExt<Kind2>,
|
T: ApObjectExt<Kind1> + ObjectExt<Kind2> + AsBase<Kind2>,
|
||||||
{
|
{
|
||||||
let mut source = Object::<()>::new_none_type();
|
let mut source = Object::<()>::new_none_type();
|
||||||
source
|
source
|
||||||
.set_content(markdown_text)
|
.set_content(markdown_text)
|
||||||
.set_media_type(mime_markdown()?);
|
.set_media_type(mime_markdown()?);
|
||||||
object.set_source(source.into_any_base()?);
|
object.set_source(source.into_any_base()?);
|
||||||
object.set_content(markdown_to_html(markdown_text));
|
|
||||||
|
// set `content` to markdown for compatibility with older Lemmy versions
|
||||||
|
// TODO: change this to HTML in a while
|
||||||
|
object.set_content(markdown_text);
|
||||||
|
object.set_media_type(mime_markdown()?);
|
||||||
|
//object.set_content(markdown_to_html(markdown_text));
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -84,7 +85,7 @@ pub(in crate::objects) fn get_source_markdown_value<T, Kind1, Kind2>(
|
||||||
object: &T,
|
object: &T,
|
||||||
) -> Result<Option<String>, LemmyError>
|
) -> Result<Option<String>, LemmyError>
|
||||||
where
|
where
|
||||||
T: ApObjectExt<Kind1> + ObjectExt<Kind2>,
|
T: ApObjectExt<Kind1> + ObjectExt<Kind2> + AsBase<Kind2>,
|
||||||
{
|
{
|
||||||
let content = object
|
let content = object
|
||||||
.content()
|
.content()
|
||||||
|
@ -92,16 +93,24 @@ where
|
||||||
.flatten()
|
.flatten()
|
||||||
.map(|s| s.to_string());
|
.map(|s| s.to_string());
|
||||||
if content.is_some() {
|
if content.is_some() {
|
||||||
let source = object.source().context(location_info!())?;
|
let source = object.source();
|
||||||
let source = Object::<()>::from_any_base(source.to_owned())?.context(location_info!())?;
|
// updated lemmy version, read markdown from `source.content`
|
||||||
check_is_markdown(source.media_type())?;
|
if let Some(source) = source {
|
||||||
let source_content = source
|
let source = Object::<()>::from_any_base(source.to_owned())?.context(location_info!())?;
|
||||||
.content()
|
check_is_markdown(source.media_type())?;
|
||||||
.map(|s| s.as_single_xsd_string())
|
let source_content = source
|
||||||
.flatten()
|
.content()
|
||||||
.context(location_info!())?
|
.map(|s| s.as_single_xsd_string())
|
||||||
.to_string();
|
.flatten()
|
||||||
return Ok(Some(source_content));
|
.context(location_info!())?
|
||||||
|
.to_string();
|
||||||
|
return Ok(Some(source_content));
|
||||||
|
}
|
||||||
|
// older lemmy version, read markdown from `content`
|
||||||
|
// TODO: remove this after a while
|
||||||
|
else {
|
||||||
|
return Ok(content);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Ok(None)
|
Ok(None)
|
||||||
}
|
}
|
||||||
|
|
|
@ -54,7 +54,8 @@ impl ToApub for User_ {
|
||||||
|
|
||||||
if let Some(bio) = &self.bio {
|
if let Some(bio) = &self.bio {
|
||||||
set_content_and_source(&mut person, bio)?;
|
set_content_and_source(&mut person, bio)?;
|
||||||
// Also set summary for compatibility with older Lemmy versions. Remove this after a while.
|
// Also set summary for compatibility with older Lemmy versions.
|
||||||
|
// TODO: remove this after a while.
|
||||||
person.set_summary(bio.to_owned());
|
person.set_summary(bio.to_owned());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue