]> Untitled Git - lemmy.git/blobdiff - crates/apub/src/objects/comment.rs
implement language tags for site/community in db and api (#2434)
[lemmy.git] / crates / apub / src / objects / comment.rs
index 41d7f19da0a28521fef7e47b706896c09b129f47..e292d2b671ac58b13349d4bf9e703fe1507c8235 100644 (file)
@@ -23,7 +23,6 @@ use lemmy_db_schema::{
   source::{
     comment::{Comment, CommentForm},
     community::Community,
-    language::Language,
     person::Person,
     post::Post,
   },
@@ -109,11 +108,7 @@ impl ApubObject for ApubComment {
     } else {
       ObjectId::<PostOrComment>::new(post.ap_id)
     };
-    let language = self.language_id;
-    let language = blocking(context.pool(), move |conn| {
-      Language::read_from_id(conn, language)
-    })
-    .await??;
+    let language = LanguageTag::new_single(self.language_id, context.pool()).await?;
     let maa =
       collect_non_local_mentions(&self, ObjectId::new(community.actor_id), context, &mut 0).await?;
 
@@ -131,7 +126,7 @@ impl ApubObject for ApubComment {
       updated: self.updated.map(convert_datetime),
       tag: maa.tags,
       distinguished: Some(self.distinguished),
-      language: LanguageTag::new(language),
+      language,
     };
 
     Ok(note)
@@ -185,12 +180,7 @@ impl ApubObject for ApubComment {
 
     let content = read_from_string_or_source(&note.content, &note.media_type, &note.source);
     let content_slurs_removed = remove_slurs(&content, &context.settings().slur_regex());
-
-    let language = note.language.map(|l| l.identifier);
-    let language = blocking(context.pool(), move |conn| {
-      Language::read_id_from_code_opt(conn, language.as_deref())
-    })
-    .await??;
+    let language_id = LanguageTag::to_language_id_single(note.language, context.pool()).await?;
 
     let form = CommentForm {
       creator_id: creator.id,
@@ -203,7 +193,7 @@ impl ApubObject for ApubComment {
       ap_id: Some(note.id.into()),
       distinguished: note.distinguished,
       local: Some(false),
-      language_id: language,
+      language_id,
     };
     let parent_comment_path = parent_comment.map(|t| t.0.path);
     let comment = blocking(context.pool(), move |conn| {