"async-trait",
"awc",
"background-jobs",
+ "backtrace",
"base64 0.13.0",
"bcrypt",
"chrono",
thiserror = "1.0"
background-jobs = " 0.8"
reqwest = { version = "0.10", features = ["json"] }
+backtrace = "0.3"
where
T: Base + AsBase<Kind>,
{
- let actor_id = if let Some(url) = expected_domain {
- check_is_apub_id_valid(&url)?;
+ let object_id = if let Some(url) = expected_domain {
let domain = url.domain().context(location_info!())?;
apub.id(domain)?.context(location_info!())?
} else {
- let actor_id = apub.id_unchecked().context(location_info!())?;
- check_is_apub_id_valid(&actor_id)?;
- actor_id
+ apub.id_unchecked().context(location_info!())?
};
- Ok(actor_id.to_string())
+ check_is_apub_id_valid(&object_id)?;
+ Ok(object_id.to_string())
}
pub(in crate::objects) fn set_content_and_source<T, Kind1, Kind2>(
};
use activitystreams_ext::Ext1;
use anyhow::Context;
+use backtrace::Backtrace;
use lemmy_db::{
community::Community,
post::{Post, PostForm},
LemmyError,
};
use lemmy_websocket::LemmyContext;
+use log::error;
use url::Url;
#[async_trait::async_trait(?Send)]
let community =
get_or_fetch_and_upsert_community(community_actor_id, context, request_counter).await?;
+ if community.local && creator.local {
+ let page_id = page.id_unchecked().context(location_info!())?;
+ let bt = Backtrace::new();
+ error!(
+ "Lemmy is parsing a local post as remote, page id: {}, stack trace: {:?}",
+ page_id, bt
+ );
+ }
+
let thumbnail_url = match &page.inner.image() {
Some(any_image) => Image::from_any_base(
any_image