From 0128a21ec55dcc0a2fbf4081dadb4c4737735ba1 Mon Sep 17 00:00:00 2001
From: Yassine Doghri <yassine@doghri.fr>
Date: Thu, 3 Feb 2022 12:11:01 +0000
Subject: [PATCH] fix(activitypub): add target_actor_id for create activity to
 broadcast post reply

---
 .../Fediverse/Controllers/SchedulerController.php  | 14 ++++++++------
 modules/Fediverse/Models/PostModel.php             |  2 +-
 modules/Fediverse/Objects/NoteObject.php           |  2 ++
 3 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/modules/Fediverse/Controllers/SchedulerController.php b/modules/Fediverse/Controllers/SchedulerController.php
index 3f723fa997..9be4db346d 100644
--- a/modules/Fediverse/Controllers/SchedulerController.php
+++ b/modules/Fediverse/Controllers/SchedulerController.php
@@ -28,12 +28,14 @@ class SchedulerController extends Controller
         // Send activity to all followers
         foreach ($scheduledActivities as $scheduledActivity) {
             if ($scheduledActivity->target_actor_id !== null) {
-                // send activity to targeted actor
-                send_activity_to_actor(
-                    $scheduledActivity->actor,
-                    $scheduledActivity->targetActor,
-                    json_encode($scheduledActivity->payload, JSON_THROW_ON_ERROR)
-                );
+                if ($scheduledActivity->actor_id !== $scheduledActivity->target_actor_id) {
+                    // send activity to targeted actor
+                    send_activity_to_actor(
+                        $scheduledActivity->actor,
+                        $scheduledActivity->targetActor,
+                        json_encode($scheduledActivity->payload, JSON_THROW_ON_ERROR)
+                    );
+                }
             } else {
                 // send activity to all actor followers
                 send_activity_to_followers(
diff --git a/modules/Fediverse/Models/PostModel.php b/modules/Fediverse/Models/PostModel.php
index dc6c07a70f..41540f8074 100644
--- a/modules/Fediverse/Models/PostModel.php
+++ b/modules/Fediverse/Models/PostModel.php
@@ -299,7 +299,7 @@ class PostModel extends BaseUuidModel
                 ->newActivity(
                     'Create',
                     $post->actor_id,
-                    null,
+                    $post->in_reply_to_id === null ? null : $post->reply_to_post->actor_id,
                     $newPostId,
                     $createActivity->toJSON(),
                     $post->published_at,
diff --git a/modules/Fediverse/Objects/NoteObject.php b/modules/Fediverse/Objects/NoteObject.php
index eee250d344..e9da65d614 100644
--- a/modules/Fediverse/Objects/NoteObject.php
+++ b/modules/Fediverse/Objects/NoteObject.php
@@ -39,6 +39,8 @@ class NoteObject extends ObjectType
         $this->attributedTo = $post->actor->uri;
 
         if ($post->in_reply_to_id !== null) {
+            $this->to[] = $post->reply_to_post->actor->uri;
+
             $this->inReplyTo = $post->reply_to_post->uri;
         }
 
-- 
GitLab