]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/ActivityPub/Processor.php
Merge pull request #11780 from annando/untrusted
[friendica.git] / src / Protocol / ActivityPub / Processor.php
index d012498ab2a5f777afa6c8024705f984ca7f281a..2025aba04ef83366aeae16b8f0c7ea7f530d25cf 100644 (file)
@@ -361,8 +361,6 @@ class Processor
                if (!empty($activity['raw'])) {
                        $item['source'] = $activity['raw'];
                        $item['protocol'] = Conversation::PARCEL_ACTIVITYPUB;
-                       $item['conversation-href'] = $activity['context'] ?? '';
-                       $item['conversation-uri'] = $activity['conversation'] ?? '';
 
                        if (isset($activity['push'])) {
                                $item['direction'] = $activity['push'] ? Conversation::PUSH : Conversation::PULL;
@@ -475,7 +473,19 @@ class Processor
                }
 
                // @todo To ensure that the remote system is working correctly, we can check if the "Content-Type" contains JSON
-               return in_array($curlResult->getReturnCode(), [404]);
+               if (in_array($curlResult->getReturnCode(), [404])) {
+                       return true;
+               }
+
+               $object = json_decode($curlResult->getBody(), true);
+               if (!empty($object)) {
+                       $activity = JsonLD::compact($object);
+                       if (JsonLD::fetchElement($activity, '@type') == 'as:Tombstone') {
+                               return true;
+                       }                       
+               }
+
+               return false;
        }
        /**
         * Delete items
@@ -970,7 +980,10 @@ class Processor
 
                if ($success) {
                        Queue::remove($activity);
-                       Queue::processReplyByUri($item['uri']);
+
+                       if (Queue::hasChildren($item['uri'])) {
+                               Worker::add(PRIORITY_HIGH, 'ProcessReplyByUri', $item['uri']);
+                       }
                }
 
                // Store send a follow request for every reshare - but only when the item had been stored