From 34b813bbfadbc4ebdb6d761e527f3a47899abf82 Mon Sep 17 00:00:00 2001 From: Michael Date: Mon, 20 Jan 2020 22:30:34 +0000 Subject: [PATCH] Fix for AP posts where the URL don't match --- src/Model/Item.php | 4 ++-- src/Protocol/ActivityPub/Processor.php | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Model/Item.php b/src/Model/Item.php index 9f2f45e74a..41c6eeb94d 100644 --- a/src/Model/Item.php +++ b/src/Model/Item.php @@ -3742,8 +3742,8 @@ class Item return $item_id; } - if (ActivityPub\Processor::fetchMissingActivity($uri)) { - $item_id = self::searchByLink($uri, $uid); + if ($fetched_uri = ActivityPub\Processor::fetchMissingActivity($uri)) { + $item_id = self::searchByLink($fetched_uri, $uid); } else { $item_id = Diaspora::fetchByURL($uri); } diff --git a/src/Protocol/ActivityPub/Processor.php b/src/Protocol/ActivityPub/Processor.php index 0d6991c072..9267943d5e 100644 --- a/src/Protocol/ActivityPub/Processor.php +++ b/src/Protocol/ActivityPub/Processor.php @@ -591,7 +591,7 @@ class Processor * * @param string $url message URL * @param array $child activity array with the child of this message - * @return boolean success + * @return string fetched message URL * @throws \Friendica\Network\HTTPException\InternalServerErrorException */ public static function fetchMissingActivity($url, $child = []) @@ -605,12 +605,12 @@ class Processor $object = ActivityPub::fetchContent($url, $uid); if (empty($object)) { Logger::log('Activity ' . $url . ' was not fetchable, aborting.'); - return false; + return ''; } if (empty($object['id'])) { Logger::log('Activity ' . $url . ' has got not id, aborting. ' . json_encode($object)); - return false; + return ''; } if (!empty($child['author'])) { @@ -648,9 +648,9 @@ class Processor $ldactivity['thread-completion'] = true; ActivityPub\Receiver::processActivity($ldactivity); - Logger::log('Activity ' . $url . ' had been fetched and processed.'); + Logger::notice('Activity had been fetched and processed.', ['url' => $url, 'object' => $activity['id']]); - return true; + return $activity['id']; } /**