]> git.mxchange.org Git - friendica.git/blobdiff - src/Protocol/ActivityPub/Processor.php
Merge remote-tracking branch 'upstream/develop' into item-notification
[friendica.git] / src / Protocol / ActivityPub / Processor.php
index 50e8dd91e8f5ec6726750d263c4ca99b341a2812..ad1b9d8bdf10490a2f955f04b251dba834e8a3e6 100644 (file)
@@ -4,20 +4,21 @@
  */
 namespace Friendica\Protocol\ActivityPub;
 
-use Friendica\Database\DBA;
 use Friendica\Content\Text\BBCode;
 use Friendica\Content\Text\HTML;
 use Friendica\Core\Config;
-use Friendica\Core\PConfig;
 use Friendica\Core\Logger;
+use Friendica\Core\PConfig;
 use Friendica\Core\Protocol;
-use Friendica\Model\Contact;
+use Friendica\Database\DBA;
 use Friendica\Model\APContact;
-use Friendica\Model\Item;
+use Friendica\Model\Contact;
 use Friendica\Model\Event;
+use Friendica\Model\Item;
+use Friendica\Model\Mail;
 use Friendica\Model\Term;
 use Friendica\Model\User;
-use Friendica\Model\Mail;
+use Friendica\Protocol\Activity;
 use Friendica\Protocol\ActivityPub;
 use Friendica\Util\DateTimeFormat;
 use Friendica\Util\JsonLD;
@@ -92,22 +93,21 @@ class Processor
        /**
         * Add attachment data to the item array
         *
-        * @param array   $attachments
+        * @param array   $activity
         * @param array   $item
-        * @param boolean $no_images
         *
         * @return array array
         */
-       private static function constructAttachList($attachments, $item, $no_images)
+       private static function constructAttachList($activity, $item)
        {
-               if (empty($attachments)) {
+               if (empty($activity['attachments'])) {
                        return $item;
                }
 
-               foreach ($attachments as $attach) {
+               foreach ($activity['attachments'] as $attach) {
                        $filetype = strtolower(substr($attach['mediaType'], 0, strpos($attach['mediaType'], '/')));
                        if ($filetype == 'image') {
-                               if ($no_images) {
+                               if (!empty($activity['source']) && strpos($activity['source'], $attach['url'])) {
                                        continue;
                                }
 
@@ -167,15 +167,15 @@ class Processor
        public static function createItem($activity)
        {
                $item = [];
-               $item['verb'] = ACTIVITY_POST;
+               $item['verb'] = Activity::POST;
                $item['thr-parent'] = $activity['reply-to-id'];
 
                if ($activity['reply-to-id'] == $activity['id']) {
                        $item['gravity'] = GRAVITY_PARENT;
-                       $item['object-type'] = ACTIVITY_OBJ_NOTE;
+                       $item['object-type'] = Activity\ObjectType::NOTE;
                } else {
                        $item['gravity'] = GRAVITY_COMMENT;
-                       $item['object-type'] = ACTIVITY_OBJ_COMMENT;
+                       $item['object-type'] = Activity\ObjectType::COMMENT;
                }
 
                if (empty($activity['directmessage']) && ($activity['id'] != $activity['reply-to-id']) && !Item::exists(['uri' => $activity['reply-to-id']])) {
@@ -254,7 +254,7 @@ class Processor
                $item['verb'] = $verb;
                $item['thr-parent'] = $activity['object_id'];
                $item['gravity'] = GRAVITY_ACTIVITY;
-               $item['object-type'] = ACTIVITY_OBJ_NOTE;
+               $item['object-type'] = Activity\ObjectType::NOTE;
 
                $item['diaspora_signed_text'] = $activity['diaspora:like'] ?? '';
 
@@ -406,7 +406,7 @@ class Processor
 
                $item['plink'] = $activity['alternate-url'] ?? $item['uri'];
 
-               $item = self::constructAttachList($activity['attachments'], $item, !empty($activity['source']));
+               $item = self::constructAttachList($activity, $item);
 
                $stored = false;