From e56e8adbdf29baede3666bf731e0db6155c003ab Mon Sep 17 00:00:00 2001 From: Felix Ableitner Date: Tue, 12 Mar 2024 10:51:32 +0100 Subject: [PATCH] Fix articles created with invalid ap_id --- src/backend/api/article.rs | 4 +++- src/backend/federation/objects/article.rs | 10 ++++++---- src/main.rs | 4 ++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src/backend/api/article.rs b/src/backend/api/article.rs index 592ecce..a2c3f4b 100644 --- a/src/backend/api/article.rs +++ b/src/backend/api/article.rs @@ -49,11 +49,12 @@ pub(in crate::backend::api) async fn create_article( } let local_instance = DbInstance::read_local_instance(&data)?; + let escaped_title = create_article.title.replace(" ", "_"); let ap_id = ObjectId::parse(&format!( "{}://{}/article/{}", http_protocol_str(), extract_domain(&local_instance.ap_id), - create_article.title + escaped_title ))?; let form = DbArticleForm { title: create_article.title, @@ -75,6 +76,7 @@ pub(in crate::backend::api) async fn create_article( let _ = edit_article(Extension(user), data.reset_request_count(), Form(edit_data)).await?; let article_view = DbArticle::read_view(article.id, &data)?; + dbg!(&article_view); CreateArticle::send_to_followers(article_view.article.clone(), &data).await?; Ok(Json(article_view)) diff --git a/src/backend/federation/objects/article.rs b/src/backend/federation/objects/article.rs index 84d4503..0081c75 100644 --- a/src/backend/federation/objects/article.rs +++ b/src/backend/federation/objects/article.rs @@ -66,12 +66,14 @@ impl Object for DbArticle { expected_domain: &Url, _data: &Data, ) -> Result<(), Self::Error> { - verify_domains_match(json.id.inner(), expected_domain)?; + dbg!(&json); + dbg!(verify_domains_match(json.id.inner(), expected_domain))?; Ok(()) } async fn from_json(json: Self::Kind, data: &Data) -> Result { - let instance = json.attributed_to.dereference(data).await?; + dbg!(&json); + let instance = dbg!(json.attributed_to.dereference(data).await)?; let form = DbArticleForm { title: json.name, text: json.content, @@ -80,9 +82,9 @@ impl Object for DbArticle { instance_id: instance.id, protected: json.protected, }; - let article = DbArticle::create_or_update(form, data)?; + let article = dbg!(DbArticle::create_or_update(form, data))?; - json.edits.dereference(&article, data).await?; + dbg!(json.edits.dereference(&article, data).await)?; Ok(article) } diff --git a/src/main.rs b/src/main.rs index f5d0e4f..f010d12 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,8 +11,8 @@ pub async fn main() -> ibis_lib::backend::error::MyResult<()> { env_logger::builder() .filter_level(LevelFilter::Warn) - .filter_module("activitypub_federation", LevelFilter::Info) - .filter_module("ibis", LevelFilter::Info) + .filter_module("activitypub_federation", LevelFilter::Debug) + .filter_module("ibis", LevelFilter::Debug) .init(); let ibis_config = IbisConfig::read()?;