diff --git a/src/Model/Contact/Relation.php b/src/Model/Contact/Relation.php index 736c4361dd..b5c6680f3e 100644 --- a/src/Model/Contact/Relation.php +++ b/src/Model/Contact/Relation.php @@ -24,6 +24,7 @@ use Friendica\Protocol\ActivityPub; use Friendica\Util\DateTimeFormat; use Friendica\Util\Network; use Friendica\Util\Strings; +use Friendica\Worker\AddContact; /** * This class provides relationship information based on the `contact-relation` table. @@ -179,7 +180,7 @@ class Relation $following_counter++; } } elseif (!Network::isUrlBlocked($contact_url)) { - Worker::add(Worker::PRIORITY_LOW, 'AddContact', 0, $contact_url); + AddContact::add(Worker::PRIORITY_LOW, 0, $contact_url); } } diff --git a/src/Worker/AddContact.php b/src/Worker/AddContact.php index 3b27c7e78d..658a1ebcd1 100644 --- a/src/Worker/AddContact.php +++ b/src/Worker/AddContact.php @@ -7,10 +7,12 @@ namespace Friendica\Worker; +use Friendica\Core\Worker; use Friendica\DI; use Friendica\Model\Contact; use Friendica\Network\HTTPException\InternalServerErrorException; use Friendica\Network\HTTPException\NotFoundException; +use Friendica\Util\Network; class AddContact { @@ -39,4 +41,20 @@ class AddContact DI::logger()->notice('Imagick not found.', ['exception' => $e, 'uid' => $uid, 'url' => $url]); } } + + /** + * @param array|int $run_parameters Priority constant or array of options described in Worker::add + * @param int $uid User ID + * @param string $url Contact link + * @return int + */ + public static function add($run_parameters, int $uid, string $url): int + { + if (Network::isUrlBlocked($url)) { + return 0; + } + + DI::logger()->debug('Add contact', ['uid' => $uid, 'url' => $url]); + return Worker::add($run_parameters, 'AddContact', 0, $url); + } }