AP: Follow a note to receive all upcoming activities
[friendica.git/.git] / src / Protocol / ActivityPub / Receiver.php
index 0ab2619..e0ee1f0 100644 (file)
@@ -208,7 +208,8 @@ class Receiver
                        }
                        // We had been able to retrieve the object data - so we can trust the source
                        $trust_source = true;
-               } elseif (in_array($type, ['as:Like', 'as:Dislike'])) {
+               } elseif (in_array($type, ['as:Like', 'as:Dislike']) ||
+                       (($type == 'as:Follow') && in_array($object_type, self::CONTENT_TYPES))) {
                        // Create a mostly empty array out of the activity data (instead of the object).
                        // This way we later don't have to check for the existence of ech individual array element.
                        $object_data = self::processObject($activity);
@@ -394,6 +395,9 @@ class Receiver
                        case 'as:Follow':
                                if (in_array($object_data['object_type'], self::ACCOUNT_TYPES)) {
                                        ActivityPub\Processor::followUser($object_data);
+                               } elseif (in_array($object_data['object_type'], self::CONTENT_TYPES)) {
+                                       $object_data['reply-to-id'] = $object_data['object_id'];
+                                       ActivityPub\Processor::createActivity($object_data, ACTIVITY_FOLLOW);
                                }
                                break;