use Exception;
use Friendica\Content\Widget;
use Friendica\Core\Protocol;
+use Friendica\Core\Worker;
use Friendica\Database\Database;
use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Protocol\Activity;
use Friendica\Protocol\ActivityPub;
use Friendica\Util\DateTimeFormat;
+use Friendica\Util\Network;
use Friendica\Util\Strings;
/**
$following_counter = 0;
DI::logger()->info('Discover contacts', ['id' => $target, 'url' => $url, 'contacts' => count($contacts)]);
- foreach ($contacts as $contact) {
- $actor = Contact::getIdForURL($contact);
- if (!empty($actor)) {
- if (in_array($contact, $followers)) {
- $fields = ['cid' => $target, 'relation-cid' => $actor, 'follows' => true, 'follow-updated' => DateTimeFormat::utcNow()];
+ foreach ($contacts as $contact_url) {
+ $contact = Contact::getByURL($contact_url, false, ['id']);
+ if (!empty($contact['id'])) {
+ if (in_array($contact_url, $followers)) {
+ $fields = ['cid' => $target, 'relation-cid' => $contact['id'], 'follows' => true, 'follow-updated' => DateTimeFormat::utcNow()];
DBA::insert('contact-relation', $fields, Database::INSERT_UPDATE);
$follower_counter++;
}
- if (in_array($contact, $followings)) {
- $fields = ['cid' => $actor, 'relation-cid' => $target, 'follows' => true, 'follow-updated' => DateTimeFormat::utcNow()];
+ if (in_array($contact_url, $followings)) {
+ $fields = ['cid' => $contact['id'], 'relation-cid' => $target, 'follows' => true, 'follow-updated' => DateTimeFormat::utcNow()];
DBA::insert('contact-relation', $fields, Database::INSERT_UPDATE);
$following_counter++;
}
+ } elseif (!Network::isUrlBlocked($contact_url)) {
+ Worker::add(Worker::PRIORITY_LOW, 'AddContact', 0, $contact_url);
}
}