. * */ namespace Friendica\Worker; use Friendica\Core\Hook; use Friendica\Core\Logger; use Friendica\Core\Search; use Friendica\Core\Worker; use Friendica\Database\DBA; use Friendica\DI; use Friendica\Network\HTTPClient\Client\HttpClientAccept; /** * Sends updated profile data to the directory */ class Directory { public static function execute(string $url = '') { $dir = Search::getGlobalDirectory(); if (!strlen($dir)) { return; } if ($url == '') { self::updateAll(); return; } $dir .= "/submit"; $arr = ['url' => $url]; Hook::callAll('globaldir_update', $arr); Logger::info('Updating directory: ' . $arr['url']); if (strlen($arr['url'])) { DI::httpClient()->fetch($dir . '?url=' . bin2hex($arr['url']), HttpClientAccept::HTML); } return; } private static function updateAll() { $users = DBA::select('owner-view', ['url'], ['net-publish' => true, 'verified' => true, 'blocked' => false, 'account_removed' => false, 'account_expired' => false]); while ($user = DBA::fetch($users)) { Worker::add(Worker::PRIORITY_LOW, 'Directory', $user['url']); } DBA::close($users); } }