]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/ActivityPub/Processor.php
Merge pull request #7339 from annando/gcontact-update
[friendica.git] / src / Protocol / ActivityPub / Processor.php
index 1ac29d9e9f90f6fd794d994443092cd51b056e6b..6ba0c8f8486179110fd7f2a02432aca50ef864d7 100644 (file)
@@ -142,7 +142,7 @@ class Processor
                }
 
                $item['changed'] = DateTimeFormat::utcNow();
-               $item['edited'] = $activity['updated'];
+               $item['edited'] = DateTimeFormat::utc($activity['updated']);
 
                $item = self::processContent($activity, $item);
                if (empty($item)) {
@@ -370,20 +370,23 @@ class Processor
                $item['private'] = !in_array(0, $activity['receiver']);
                $item['author-link'] = $activity['author'];
                $item['author-id'] = Contact::getIdForURL($activity['author'], 0, true);
+               $item['owner-link'] = $activity['actor'];
+               $item['owner-id'] = Contact::getIdForURL($activity['actor'], 0, true);
 
-               if (empty($activity['thread-completion'])) {
-                       $item['owner-link'] = $activity['actor'];
-                       $item['owner-id'] = Contact::getIdForURL($activity['actor'], 0, true);
-               } else {
-                       Logger::info('Ignoring actor because of thread completion.');
+               if (!empty($activity['thread-completion'])) {
+                       // Store the original actor in the "causer" fields to enable the check for ignored or blocked contacts
+                       $item['causer-link'] = $item['owner-link'];
+                       $item['causer-id'] = $item['owner-id'];
+
+                       Logger::info('Ignoring actor because of thread completion.', ['actor' => $item['owner-link']]);
                        $item['owner-link'] = $item['author-link'];
                        $item['owner-id'] = $item['author-id'];
                }
 
                $item['uri'] = $activity['id'];
 
-               $item['created'] = $activity['published'];
-               $item['edited'] = $activity['updated'];
+               $item['created'] = DateTimeFormat::utc($activity['published']);
+               $item['edited'] = DateTimeFormat::utc($activity['updated']);
                $item['guid'] = $activity['diaspora:guid'];
 
                $item = self::processContent($activity, $item);
@@ -608,7 +611,7 @@ class Processor
                }
 
                Logger::log('Updating profile for ' . $activity['object_id'], Logger::DEBUG);
-               APContact::getByURL($activity['object_id'], true);
+               Contact::updateFromProbeByURL($activity['object_id'], true);
        }
 
        /**