]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/Diaspora.php
Merge pull request #9652 from annando/issue-9584
[friendica.git] / src / Protocol / Diaspora.php
index 9e9f1a574beafa6568a34f1e8dca0cb78bd63a0d..54a8d1c1bafc8dc908e515074253df4ac298f419 100644 (file)
@@ -1565,7 +1565,6 @@ class Diaspora
                $datarray["gravity"] = GRAVITY_COMMENT;
 
                $datarray['thr-parent'] = $thr_parent ?: $toplevel_parent_item['uri'];
-               $datarray['parent-uri'] = $toplevel_parent_item['uri'];
 
                $datarray["object-type"] = Activity\ObjectType::COMMENT;
 
@@ -1963,7 +1962,6 @@ class Diaspora
                $datarray["verb"] = Activity::FOLLOW;
                $datarray["gravity"] = GRAVITY_ACTIVITY;
                $datarray['thr-parent'] = $toplevel_parent_item['uri'];
-               $datarray['parent-uri'] = $toplevel_parent_item['parent-uri'];
 
                $datarray["object-type"] = Activity\ObjectType::NOTE;
 
@@ -2356,7 +2354,6 @@ class Diaspora
                $datarray['guid'] = $parent['guid'] . '-' . $guid;
                $datarray['uri'] = self::getUriFromGuid($author, $datarray['guid']);
                $datarray['thr-parent'] = $parent['uri'];
-               $datarray['parent-uri'] = $parent['parent-uri'];
 
                $datarray['verb'] = $datarray['body'] = Activity::ANNOUNCE;
                $datarray['gravity'] = GRAVITY_ACTIVITY;
@@ -3034,7 +3031,18 @@ class Diaspora
                        $owner['uprvkey'] = $owner['prvkey'];
                }
 
-               $envelope = self::buildMessage($msg, $owner, $contact, $owner['uprvkey'], $contact['pubkey'], $public_batch);
+               // When sending content to Friendica contacts using the Diaspora protocol
+               // we have to fetch the public key from the fcontact.
+               // This is due to the fact that legacy DFRN had unique keys for every contact.
+               $pubkey = $contact['pubkey'];
+               if (!empty($contact['addr'])) {
+                       $fcontact = FContact::getByURL($contact['addr']);
+                       if (!empty($fcontact)) {
+                               $pubkey = $fcontact['pubkey'];
+                       }
+               }
+
+               $envelope = self::buildMessage($msg, $owner, $contact, $owner['uprvkey'], $pubkey, $public_batch);
 
                $return_code = self::transmit($owner, $contact, $envelope, $public_batch, $guid);