]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/ActivityPub/Processor.php
New fields in contact table / don't update on probe
[friendica.git] / src / Protocol / ActivityPub / Processor.php
index 9eb1506a2878deba0a71064205f189732960087d..101942642ec11261f69fa925a00a567be7e5b6dc 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);
@@ -442,8 +445,8 @@ class Processor
         *
         * @param array $activity Activity data
         * @param array $item     item array
+        * @return int|bool New mail table row id or false on error
         * @throws \Friendica\Network\HTTPException\InternalServerErrorException
-        * @throws \ImagickException
         */
        private static function postMail($activity, $item)
        {
@@ -497,7 +500,7 @@ class Processor
                }
                $msg['body'] = $item['body'];
 
-                Mail::insert($msg);
+               return Mail::insert($msg);
        }
 
        /**
@@ -609,6 +612,7 @@ class Processor
 
                Logger::log('Updating profile for ' . $activity['object_id'], Logger::DEBUG);
                APContact::getByURL($activity['object_id'], true);
+//             Contact::updateFromProbe($activity['object_id'], $network = '', $force = false)
        }
 
        /**