X-Git-Url: http://these/git/?a=blobdiff_plain;f=crates%2Fapub%2Fsrc%2Fobjects%2Fpost.rs;h=ea536e51fb8f138b5daf4662113111067b8711c8;hb=e4a49b6eabcf34fb4adfa7ccd4024e5ddda93d54;hp=bc1b44f54a4ef656cf38e06611f835f5a976dba4;hpb=c89006c94a4ec5aab2bf387d7605d92a565f8184;p=lemmy.git diff --git a/crates/apub/src/objects/post.rs b/crates/apub/src/objects/post.rs index bc1b44f5..ea536e51 100644 --- a/crates/apub/src/objects/post.rs +++ b/crates/apub/src/objects/post.rs @@ -4,7 +4,7 @@ use crate::{ local_instance, objects::{read_from_string_or_source_opt, verify_is_remote_object}, protocol::{ - objects::page::{Attachment, AttributedTo, Page, PageType}, + objects::page::{Attachment, AttributedTo, LanguageTag, Page, PageType}, ImageObject, Source, }, @@ -22,6 +22,7 @@ use lemmy_db_schema::{ self, source::{ community::Community, + language::Language, moderator::{ModLockPost, ModLockPostForm, ModStickyPost, ModStickyPostForm}, person::Person, post::{Post, PostForm}, @@ -98,6 +99,11 @@ impl ApubObject for ApubPost { Community::read(conn, community_id) }) .await??; + let language = self.language_id; + let language = blocking(context.pool(), move |conn| { + Language::read_from_id(conn, language) + }) + .await??; let page = Page { kind: PageType::Page, @@ -115,6 +121,7 @@ impl ApubObject for ApubPost { comments_enabled: Some(!self.locked), sensitive: Some(self.nsfw), stickied: Some(self.stickied), + language: LanguageTag::new(language), published: Some(convert_datetime(self.published)), updated: self.updated.map(convert_datetime), }; @@ -181,6 +188,11 @@ impl ApubObject for ApubPost { let body_slurs_removed = read_from_string_or_source_opt(&page.content, &page.media_type, &page.source) .map(|s| Some(remove_slurs(&s, &context.settings().slur_regex()))); + let language = page.language.map(|l| l.identifier); + let language = blocking(context.pool(), move |conn| { + Language::read_id_from_code_opt(conn, language.as_deref()) + }) + .await??; PostForm { name: page.name.clone(), @@ -201,6 +213,7 @@ impl ApubObject for ApubPost { thumbnail_url: Some(thumbnail_url), ap_id: Some(page.id.clone().into()), local: Some(false), + language_id: language, } } else { // if is mod action, only update locked/stickied fields, nothing else