#!/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 = <<getMessage()."\n"; exit(1); } printfnq('Updated '.Activitypub_profile::update_profile($user, $res)->getBestName()."\n"); exit(0); } elseif (!have_option('a', 'all')) { show_help(); exit(1); } $user = new Activitypub_profile(); $cnt = $user->find(); if (!empty($cnt)) { printfnq("Found {$cnt} ActivityPub profiles:\n"); } else { if (have_option('u', 'uri')) { printfnq("Couldn't find an existing ActivityPub profile with that URI.\n"); } else { printfnq("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); printfnq('Updated '.$updated_profile->getBestName()."\n"); } catch (NoProfileException $e) { printfnq('Deleted '.$user->uri."\n"); } catch (Exception $e) { // let it go } } $user->free(); unset($user);