#!/usr/bin/env php . /** * ActivityPub implementation for GNU social * * @package GNUsocial * @author Diogo Cordeiro * @copyright 2018-2019 Free Software Foundation, Inc http://www.fsf.org * @license https://www.gnu.org/licenses/agpl.html GNU AGPL v3 or later * @link http://www.gnu.org/software/social/ */ define('INSTALLDIR', dirname(__DIR__, 3)); define('PUBLICDIR', INSTALLDIR . DIRECTORY_SEPARATOR . 'public'); $shortoptions = 'u:af'; $longoptions = ['uri=', 'all', 'force']; $helptext = <<lookup($uri); if (empty($discovery)) { echo "Bad URI\n"; exit(1); } $user = $discovery->lookup($uri)[0]; try { $res = Activitypub_explorer::get_remote_user_activity($uri); } catch (Exception $e) { echo $e->getMessage()."\n"; exit(1); } if (!$quiet) { echo "Updated ".Activitypub_profile::update_profile($user, $res)->getBestName()."\n"; } } elseif (!have_option('a', 'all')) { show_help(); exit(1); } $user = new Activitypub_profile(); $cnt = $user->find(); if (!empty($cnt)) { if (!$quiet) { echo "Found {$cnt} ActivityPub profiles:\n"; } } else { if (have_option('u', 'uri')) { if (!$quiet) { echo "Couldn't find an existing ActivityPub profile with that URI.\n"; } } else { if (!$quiet) { echo "Couldn't find any existing ActivityPub profiles.\n"; } } exit(0); } while ($user->fetch()) { try { $res = Activitypub_explorer::get_remote_user_activity($user->uri); $updated_profile = Activitypub_profile::update_profile($user, $res); if (!$quiet) { echo "Updated ".$updated_profile->getBestName()."\n"; } } catch (Exception $e) { // let it go } }