. * * @category Plugin * @package GNUsocial * @author Diogo Cordeiro * @author Daniel Supernault * @copyright 2018 Free Software Foundation http://fsf.org * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0 * @link https://www.gnu.org/software/social/ */ if (!defined ('GNUSOCIAL')) { exit(1); } // Get valid Object profile try { $object_profile = new Activitypub_Discovery; $object_profile = $object_profile->lookup ($data->object); } catch(Exception $e) { ActivityPubReturn::error ("Invalid Object Actor URL.", 404); } try { if (!Subscription::exists ($actor_profile, $object_profile)) { Subscription::start ($actor_profile, $object_profile); ActivityPubReturn::answer ("You are now following this person."); } else { ActivityPubReturn::error ("Already following.", 409); } } catch(Exception $ex) { ActivityPubReturn::error ("Invalid Object Actor URL.", 404); }