mirror of
https://github.com/LemmyNet/lemmy.git
synced 2024-12-25 01:10:32 +00:00
parent
81aa39ba68
commit
e094989a4c
4 changed files with 22 additions and 8 deletions
|
@ -14,6 +14,7 @@ use lemmy_apub_lib::{
|
||||||
};
|
};
|
||||||
use lemmy_utils::LemmyError;
|
use lemmy_utils::LemmyError;
|
||||||
use lemmy_websocket::LemmyContext;
|
use lemmy_websocket::LemmyContext;
|
||||||
|
use tracing::info;
|
||||||
|
|
||||||
#[async_trait::async_trait(?Send)]
|
#[async_trait::async_trait(?Send)]
|
||||||
pub(crate) trait GetCommunity {
|
pub(crate) trait GetCommunity {
|
||||||
|
@ -51,6 +52,14 @@ impl AnnounceActivity {
|
||||||
context: &LemmyContext,
|
context: &LemmyContext,
|
||||||
) -> Result<(), LemmyError> {
|
) -> Result<(), LemmyError> {
|
||||||
let announce = AnnounceActivity::new(object.clone(), community, context)?;
|
let announce = AnnounceActivity::new(object.clone(), community, context)?;
|
||||||
|
// temporary hack to get activity id of object
|
||||||
|
let object_fields: ActivityCommonFields =
|
||||||
|
serde_json::from_value(serde_json::to_value(&object)?)?;
|
||||||
|
info!(
|
||||||
|
"Announcing activity {} as {}",
|
||||||
|
object_fields.id, announce.id
|
||||||
|
);
|
||||||
|
|
||||||
let inboxes = community.get_follower_inboxes(context).await?;
|
let inboxes = community.get_follower_inboxes(context).await?;
|
||||||
send_lemmy_activity(
|
send_lemmy_activity(
|
||||||
context,
|
context,
|
||||||
|
|
|
@ -26,6 +26,7 @@ use lemmy_db_schema::{
|
||||||
};
|
};
|
||||||
use lemmy_utils::LemmyError;
|
use lemmy_utils::LemmyError;
|
||||||
use lemmy_websocket::{send::send_comment_ws_message, LemmyContext, UserOperationCrud};
|
use lemmy_websocket::{send::send_comment_ws_message, LemmyContext, UserOperationCrud};
|
||||||
|
use tracing::info;
|
||||||
|
|
||||||
impl CreateOrUpdateComment {
|
impl CreateOrUpdateComment {
|
||||||
#[tracing::instrument(skip(comment, actor, kind, context))]
|
#[tracing::instrument(skip(comment, actor, kind, context))]
|
||||||
|
@ -50,6 +51,7 @@ impl CreateOrUpdateComment {
|
||||||
kind.clone(),
|
kind.clone(),
|
||||||
&context.settings().get_protocol_and_hostname(),
|
&context.settings().get_protocol_and_hostname(),
|
||||||
)?;
|
)?;
|
||||||
|
info!("Sending Create/Comment for {} as {}", comment.ap_id, id);
|
||||||
let note = comment.into_apub(context).await?;
|
let note = comment.into_apub(context).await?;
|
||||||
|
|
||||||
let create_or_update = CreateOrUpdateComment {
|
let create_or_update = CreateOrUpdateComment {
|
||||||
|
|
|
@ -6,6 +6,7 @@ use crate::{
|
||||||
objects::{community::ApubCommunity, person::ApubPerson},
|
objects::{community::ApubCommunity, person::ApubPerson},
|
||||||
};
|
};
|
||||||
use activitystreams_kinds::public;
|
use activitystreams_kinds::public;
|
||||||
|
use itertools::Itertools;
|
||||||
use lemmy_api_common::blocking;
|
use lemmy_api_common::blocking;
|
||||||
use lemmy_apub_lib::{
|
use lemmy_apub_lib::{
|
||||||
activity_queue::send_activity,
|
activity_queue::send_activity,
|
||||||
|
@ -170,8 +171,6 @@ async fn send_lemmy_activity<T: Serialize>(
|
||||||
}
|
}
|
||||||
let activity = WithContext::new(activity);
|
let activity = WithContext::new(activity);
|
||||||
|
|
||||||
info!("Sending activity {}", activity_id.to_string());
|
|
||||||
|
|
||||||
// Don't send anything to ourselves
|
// Don't send anything to ourselves
|
||||||
// TODO: this should be a debug assert
|
// TODO: this should be a debug assert
|
||||||
let hostname = context.settings().get_hostname_without_port()?;
|
let hostname = context.settings().get_hostname_without_port()?;
|
||||||
|
@ -180,6 +179,12 @@ async fn send_lemmy_activity<T: Serialize>(
|
||||||
.filter(|i| i.domain().expect("valid inbox url") != hostname)
|
.filter(|i| i.domain().expect("valid inbox url") != hostname)
|
||||||
.collect();
|
.collect();
|
||||||
|
|
||||||
|
info!(
|
||||||
|
"Sending activity {} to [{}]",
|
||||||
|
activity_id.to_string(),
|
||||||
|
inboxes.iter().join(",")
|
||||||
|
);
|
||||||
|
|
||||||
let serialised_activity = serde_json::to_string(&activity)?;
|
let serialised_activity = serde_json::to_string(&activity)?;
|
||||||
|
|
||||||
let object_value = serde_json::to_value(&activity)?;
|
let object_value = serde_json::to_value(&activity)?;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
use crate::{signatures::sign_and_send, traits::ActorType};
|
use crate::{signatures::sign_and_send, traits::ActorType};
|
||||||
use anyhow::{anyhow, Context, Error};
|
use anyhow::{Context, Error};
|
||||||
use background_jobs::{
|
use background_jobs::{
|
||||||
memory_storage::Storage,
|
memory_storage::Storage,
|
||||||
ActixJob,
|
ActixJob,
|
||||||
|
@ -90,12 +90,10 @@ async fn do_send(task: SendActivityTask, client: &ClientWithMiddleware) -> Resul
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Err(e) => {
|
Err(e) => {
|
||||||
return Err(anyhow!(
|
warn!(
|
||||||
"Failed to send activity {} to {}: {}",
|
"Failed to send activity {} to {}: {}",
|
||||||
&task.activity_id,
|
&task.activity_id, task.inbox, e
|
||||||
task.inbox,
|
);
|
||||||
e
|
|
||||||
));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
Loading…
Reference in a new issue